# PS3.7

## DICOM PS3.7 2015a - Message Exchange

### DICOM Standards Committee

Copyright © 2015 NEMA

List of Figures

6.1-1. DICOM Network Protocol Architecture
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

# Notice and Disclaimer

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.

# Foreword

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 3].

# 1 Scope and Field of Application

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).

This Part specifies:

- a set of service primitives provided by the DIMSE Application Service Element

- the parameters that are passed in each service primitive

- any necessary information for the semantic description of each service primitive

- the procedures applicable to the service primitives

- 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 Association requirements of 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

# 2 Normative References

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.

[ISO/IEC Directives, Part 3] ISO/IEC. 1989. Drafting and presentation of International Standards.

ISO 7498-1, Information Processing Systems - Open Systems Interconnection - Basic Reference Model

ISO/TR 8509, Information Processing Systems - Open Systems Interconnection - Service Conventions

ISO 8649, Information Processing Systems - Open Systems Interconnection - Service Definition for the Association Control Service Element

ISO 8822, Information Processing Systems - Open Systems Interconnection - Connection-Oriented Presentation Service Definition

ISO/IEC 9595:1991, Information Technology - Open Systems Interconnection - Common Management Information Service Definition

ISO/IEC 9834-1, Information technology - Open Systems Interconnection - Procedures for the operation of OSI Registration Authorities: General procedures and top arcs of the ASN.1 Object Identifier tree

RFC-1510 The Kerberos Network Authentication Service (V5)

RFC-2289 A One-Time Password System

SAML Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0 OASIS Standard, 15 March 2005

# 3 Definitions

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:

1. Application Entity

2. Application Process

3. Protocol or Layer Protocol

4. Protocol Data Unit or Layer Protocol Data Unit

5. Service or Layer Service

6. Transfer Syntax

## 3.2 Service Conventions Definitions

This part of the Standard makes use of the following terms defined in ISO/TR 8509:

1. Service Provider

2. Service User

3. Confirmed Service

4. Non-confirmed Service

5. Primitive

6. Request (Primitive)

7. Indication (Primitive)

8. Response (Primitive)

9. Confirm (Primitive)

## 3.3 Presentation Service Definitions

This part of the Standard makes use of the following terms defined in ISO 8822:

1. Abstract Syntax

2. Abstract Syntax Name

3. Presentation Context

4. Presentation Data Values

## 3.4 ACSE Service Definitions

This part of the Standard makes use of the following terms defined in ISO 8649:

1. Association or Application Association

2. Application Context

3. Association Control Service Element

4. Association Initiator

## 3.5 CMIS Service Definitions

This part of the Standard makes use of the following terms defined in ISO 9595:

1. Functional Unit

2. Kernel Functional Unit

## 3.6 DICOM Introduction and Overview Definitions

This part of the Standard makes use of the following terms defined in PS3.1:

1. Attribute

2. Command

3. Command Stream

4. Data Stream

5. Message

## 3.7 DICOM Upper Layer Service Definitions

This part of the Standard makes use of the following terms defined in PS3.8:

1. Unique Identifier (UID)

2. DICOM Upper Layer

## 3.8 DICOM Service Class Definitions

This part of the Standard makes use of the following terms defined in PS3.4:

1. Service Class

2. Service Class User (SCU)

3. Service Class Provider (SCP)

4. Service-Object Pair (SOP) Class

5. Service-Object Pair (SOP) Instance

6. Related General SOP Class

## 3.9 DICOM Data Structures and Encoding Definitions

This part of the Standard makes use of the following terms defined in PS3.5:

1. Data Element

2. Data Set

## 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-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.

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.

# 4 Symbols and Abbreviations

The following symbols and abbreviations are used in this part of the Standard.

ACR

  American College of Radiology

ACSE

  Association Control Service Element

ASCII

  American Standard Code for Information Interchange

AE

  Application Entity

ANSI

  American National Standards Institute

CEN TC251

  Comite Europeen de Normalisation - Technical Committee 251 - Medical Informatics

CMIS

  Common Management Information Service

CMISE

  Common Management Information Service Element

DICOM

  Digital Imaging and Communications in Medicine

DIMSE

  DICOM Message Service Element

DIMSE-C

  DICOM Message Service Element - Composite

DIMSE-N

  DICOM Message Service Element - Normalized

HL7

  Health Level 7

IEEE

  Institute of Electrical and Electronics Engineers

ISO

  International Standards Organization

JIRA

  Japan Medical Imaging and Radiological Systems Industries Association

NEMA

  National Electrical Manufacturers Association

OSI

  Open Systems Interconnection

PDU

  Protocol Data Unit

PDV

  Protocol Data Value

SOP

  Service-Object Pair

TCP/IP

  Transmission Control Protocol/Internet Protocol

VM

  Value Multiplicity

VR

  Value Representation

UID

  Unique Identifier

UL

  Upper Layers

# 5 Conventions

The following conventions are used for the service description tables shown in this part of the Standard.

(=)

  The value of the parameter is equal to the value of the parameter in the column to the left.

-

  Not applicable. The parameter shall not be present.

C

  The parameter is conditional. The condition(s) are defined by the text that describes the parameter.

M

  Mandatory usage

MF

  Mandatory with a fixed value

U

  The use of this parameter is a DIMSE-service-user option

UF

  User Option with a fixed value

# 6 Service Context

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.

## 6.1 DICOM and the OSI Basic Reference Model

The OSI Basic Reference Model is used to model the interconnection of medical imaging equipment. As shown in Figure 6.1-1 seven 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.

Figure 6.1-1. DICOM Network Protocol Architecture

## 6.2 The DICOM Application Layer Structure

A DICOM Application Entity and the Service Elements it includes are shown in Figure 6.2-1.

### Note

Annexes of this part define certain aspects of the DICOM Application Entity.

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.

Figure 6.2-1. DICOM Application Layer Structure

The DIMSE-C and DIMSE-N services are supported by a single DIMSE protocol that uses the DICOM-specific Message formatting and encoding.

## 6.3 DICOM Message Structure and Command Set

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.

Figure 6.3-1. DICOM Message Structure

### 6.3.1 Command Set Structure

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

1. The use of Private Command Elements has been retired in this version of the DICOM Standard.

2. 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

1. 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.

2. 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.

# 7 Service Overview

The DICOM Message Service Element supports communication between peer DIMSE-service-users. A DIMSE-service-user acts in one of two roles:

1. invoking DIMSE-service-user

2. performing DIMSE-service-user

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:

1. request primitive

2. indication primitive

3. response primitive

4. confirmation primitive

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.

## 7.1 Service Types

DIMSE provides two types of information transfer services that are used by DICOM Application Entities:

1. a notification service

2. an operation service

Figure 7-1. DIMSE Service Primitives

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.

## 7.2 DIMSE-Service-User Interaction

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:

1. 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.

2. 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

1. Role a) (called the Agent role in ISO terminology) is used by an implementation that conforms to a DICOM Service Class as an SCP.

2. Role b) (called the Manager role in ISO terminology) is used by an implementation that conforms to a DICOM Service Class as an SCU.

Figure 7.2-1. Operation and Notification Flow

## 7.3 Service Modes

Operations and notifications, on an Association, are used in one of the following two modes:

1. synchronous

2. asynchronous

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.

## 7.4 Association Services

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:

- Application context

- Presentation and session requirements

- DIMSE-specific user information

- Application Association Information

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.

### 7.4.1 Association Establishment

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.

### 7.4.2 Association Release

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.

Figure 7.4-1. DICOM Application Entity and Association

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:

- DIMSE-service-provider

- DIMSE-service-user

Reference PS3.8 for more information on the A-RELEASE and A-ABORT services.

## 7.5 DIMSE 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:

- DIMSE-N: those services applicable to Normalized SOP Instances

- DIMSE-C: those services applicable to Composite SOP Instances

Table 7.5-1. DIMSE Services

Name | Group | Type
C-STORE | DIMSE-C | operation
C-GET | DIMSE-C | operation
C-MOVE | DIMSE-C | operation
C-FIND | DIMSE-C | operation
C-ECHO | DIMSE-C | operation
N-EVENT-REPORT | DIMSE-N | notification
N-GET | DIMSE-N | operation
N-SET | DIMSE-N | operation
N-ACTION | DIMSE-N | operation
N-CREATE | DIMSE-N | operation
N-DELETE | DIMSE-N | operation

### Note

Use of the Dialog command, supported in previous versions of this Standard, has been retired.

### 7.5.1 DIMSE-C Services

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.

#### 7.5.1.1 Operation Services

DIMSE-C provides the following operation services that are all confirmed services and as such a response is expected:

1. 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.

2. 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.

3. 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.

4. 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

5. The C-ECHO service is invoked by a DIMSE-service-user to verify end-to-end communications with a peer DIMSE-service-user.

### Note

1. The major differences between a C-GET and a C-MOVE operation are that the:

   1. 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.

   2. 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).

2. 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.

### 7.5.2 DIMSE-N Services

The DIMSE-N services provide both notification and operation services applicable to Normalized SOP Instances.

#### 7.5.2.1 Notification Service

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.

#### 7.5.2.2 Operation Services

DIMSE-N provides the following operation services that are all confirmed services and as such a response is expected:

1. The N-GET service is invoked by a DIMSE-service-user to request the retrieval of information from a peer DIMSE-service-user.

2. The N-SET service is invoked by a DIMSE-service-user to request the modification of information by a peer DIMSE-service-user.

3. The N-ACTION service is invoked by a DIMSE-service-user to request a peer DIMSE-service-user to perform an action.

4. 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.

5. 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.

### 7.5.3 DIMSE Procedures

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.

#### 7.5.3.1 Sub-Operations

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.

#### 7.5.3.2 Multiple Responses

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.

#### 7.5.3.3 Cancellation

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.

Table 7.5-2. DIMSE Services and Procedures

Name | Sub-Operations | Multiple Responses | Cancel
C-STORE | - | - | -
C-GET | M | C | M
C-MOVE | M | C | M
C-FIND | - | C | M
C-ECHO | - | - | -
N-EVENT-REPORT | - | - | -
N-GET | - | - | -
N-SET | - | - | -
N-ACTION | - | - | -
N-CREATE | - | - | -
N-DELETE | - | - | -

# 8 Protocol Overview

## 8.1 DIMSE Protocol

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.

## 8.2 Association Protocol

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.

## 8.3 Conformance

Implementers conform to the DIMSE protocol only by conformance to a SOP class as defined in PS3.2 and PS3.4. Implementers do not conform directly to the DIMSE protocol, and are not required to include a statement about DIMSE conformance in conformance statements except as required in PS3.4.

# 9 DIMSE-C

## 9.1 Services

### 9.1.1 C-STORE Service

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.

#### 9.1.1.1 C-STORE Parameters

Table 9.1-1 lists the parameters of this service.

Table 9.1-1. C-STORE Parameters

DIMSE-C Parameter Name | Req/Ind | Rsp/Conf
Message ID | M | U
Message ID Being Responded To | - | M
Affected SOP Class UID | M | U(=)
Affected SOP Instance UID | M | U(=)
Priority | M | -
Move Originator Application Entity Title | U | -
Move Originator Message ID | U | -
Data Set | M | -
Status | - | M

##### 9.1.1.1.1 Message ID

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

1. 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.

2. The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

##### 9.1.1.1.2 Message ID Being Responded To

This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.

##### 9.1.1.1.3 Affected SOP Class UID

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.

##### 9.1.1.1.4 Affected SOP Instance UID

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.

##### 9.1.1.1.5 Priority

This parameter specifies the priority of the C-STORE operation. It shall be one of LOW, MEDIUM, or HIGH.

##### 9.1.1.1.6 Move Originator Application Entity Title

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.

##### 9.1.1.1.7 Move Originator Message ID

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.

##### 9.1.1.1.8 Data Set

The Data Set accompanying the C-STORE primitive contains the Attributes of the Composite SOP Instance to be stored.

##### 9.1.1.1.9 Status

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:

1. Refused: Out of Resources - This indicates that the peer DIMSE-service-user was unable to store the composite SOP Instance because it was out of resources.

2. Refused: SOP Class Not Supported - This indicates that the peer DIMSE-service-user was unable to store the composite SOP Instance because the SOP Class is not supported,

3. Error: Cannot Understand - This indicates that the peer DIMSE-service-user was unable to store the composite SOP Instance because it cannot understand certain Data Elements.

4. Error: Data Set does not match SOP Class - 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.

5. Warning - This indicates that the peer DIMSE-service-user was able to store the composite SOP Instance, but detected a probable error.

6. Success - This indicates that the composite SOP Instance was successfully stored.

7. Refused:Duplicate Invocation- Indicates that the Message ID (0000,0110) specified is allocated to another notification or operation.

8. Refused:Invalid SOP Instance- Indicates that the SOP Instance UID specified implied a violation of the UID construction rules.

9. Refused:Mistyped argument- Indicates that one of the parameters supplied has not been agreed for use on the Association between the DIMSE-service-users.

10. Refused:Unrecognized Operation- Indicates that the operation is not one of those agreed between the DIMSE-service-users.

11. Refused:Not Authorized- Indicates that the peer DIMSE-service-user was not authorized to store the composite SOP Instance.

#### 9.1.1.2 C-STORE Service Procedures

The following C-STORE procedures apply:

1. 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.

2. The DIMSE-service-provider issues a C-STORE indication primitive to the performing DIMSE-service-user.

3. 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,

4. 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.

### Note

Such an occurrence of a "Failed" response is often called an early failed response.

### 9.1.2 C-FIND Service

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.

#### 9.1.2.1 C-FIND Parameters

See Table 9.1-2.

Table 9.1-2. C-FIND Parameters

DIMSE-C Parameter Name | Req/Ind | Rsp/Conf | CnclReq/CnclInd
Message ID | M | U | -
Message ID Being Responded To | - | M | M
Affected SOP Class UID | M | U(=) | -
Priority | M | - | -
Identifier | M | C | -
Status | - | M | -

##### 9.1.2.1.1 Message ID

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

1. 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.

2. The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

##### 9.1.2.1.2 Message ID Being Responded To

This parameter specifies the Message ID (0000,0110) of the request/indication to which this response/confirmation applies.

##### 9.1.2.1.3 Affected SOP Class UID

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.

##### 9.1.2.1.4 Priority

This parameter specifies the priority of the C-FIND operation. It shall be one of LOW, MEDIUM, or HIGH.

##### 9.1.2.1.5 Identifier

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.

###### 9.1.2.1.5 Status

Indicates the status of the response. It may have any of the following values:

1. Success-This indicates that processing of the matches is complete. It shall not contain a matching Identifier.

2. Pending-This indicates that processing of the matches is initiated or continuing. It shall contain a matching Identifier.

3. Refused: Out of Resources-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.

4. Refused: SOP Class Not Supported - 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.

5. Cancel-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.

6. Failed-Indicates that the C-FIND operation failed at the performing DIMSE-service-user.

#### 9.1.2.2 C-FIND Service Procedures

The following C-FIND service procedures apply to the invoking DIMSE-service user:

1. 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.

2. 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.

3. 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.

4. The invoking DIMSE-service-user receives a final C-FIND confirmation primitive.

### Note

In the above procedures, (c) may precede (b).

The following C-FIND service procedures apply to the performing DIMSE-service-user:

1. 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.

2. At any time following the C-FIND indication, the performing DIMSE-service-user may receive a C-FIND cancel indication.

3. 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.

4. 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.

5. For each match, the performing DIMSE-service-user issues a C-FIND response with the status set to Pending and a matching Identifier.

6. 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:

1. 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.

2. 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.

3. 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.

### Note

Such an occurrence of a "Failed" response is often called an early failed response.

### 9.1.3 C-GET Service

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.

#### 9.1.3.1 C-GET Parameters

See Table 9.1-3.

Table 9.1-3. C-GET Parameters

DIMSE-C Parameter Name | Req/Ind | Rsp/Conf | CnclReq/CnclInd
Message ID | M | U | -
Message ID Being Responded To | - | M | M
Affected SOP Class UID | M | U(=) | -
Priority | M | - | -
Identifier | M | U | -
Status | - | M | -
Number of Remaining Sub-operations | - | C | -
Number of Completed Sub-operations | - | C | -
Number of Failed Sub-operations | - | C | -
Number of Warning Sub-operations | - | C | -

##### 9.1.3.1.1 Message ID

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

1. 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.

2. The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

##### 9.1.3.1.2 Message ID Being Responded To

This parameter specifies the Message ID (0000,0110) of the request/indication to which this response/confirmation applies.

##### 9.1.3.1.3 Affected SOP Class UID

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.

##### 9.1.3.1.4 Priority

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.

##### 9.1.3.1.5 Identifier

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.

##### 9.1.3.1.6 Status

Indicates the status of the response. It may have any of the following values:

1. Success - This indicates that processing of the matches and all sub-operations are complete.

2. Pending - This indicates that processing of the matches and sub-operations is initiated or continuing.

3. Refused: Out of Resources - 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.

4. Refused: SOP Class Not Supported - Indicates that processing of the C-GET has been terminated because the SOP Class was not supported.

5. Cancel - Indicates that processing of the C-GET has been terminated due to a C-GET Cancel indication primitive.

6. Failed- Indicates that the C‑GET operation failed at the performing DIMSE-service-user.

7. Refused:Duplicate Invocation- Indicates that the Message ID (0000,0110) specified is allocated to another notification or operation.

8. Refused:Mistyped argument- Indicates that one of the parameters supplied has not been agreed for use on the Association between the DIMSE-service-users.

9. Refused:Unrecognized Operation- Indicates that the operation is not one of those agreed between the DIMSE-service-users.

10. Refused:Not Authorized- Indicates that the peer DIMSE-service-user was not authorized to invoke the C-FIND operation.

##### 9.1.3.1.7 Number of Remaining Sub-Operations

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.

##### 9.1.3.1.8 Number of Completed Sub-Operations

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.

##### 9.1.3.1.9 Number of Failed Sub-Operations

This specifies the number of C-STORE sub-operations invoked by this C-GET operation that have failed. It may be included in any response/confirmation and shall be included if the status is equal to Pending.

##### 9.1.3.1.10 Number of Warning Sub-Operations

This specifies the number of C-STORE sub-operation invoked by this C-GET operation that generated Warning responses. It may be included in any response/confirmation and shall be included if the status is equal to Pending.

#### 9.1.3.2 C-GET Service Procedures

The following C-GET service procedures apply to the invoking DIMSE-service user:

1. 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.

2. 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.

3. The invoking DIMSE-service-user may receive C-GET confirmation primitives with status of Pending during the processing of the C-GET operation.

4. The invoking DIMSE-service-user receives a final C-GET confirmation primitive.

### Note

In the above procedures, (c) may precede (b).

The following C-GET service procedures apply to the performing DIMSE-service-user:

1. 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.

2. At any time following the C-GET indication, the performing DIMSE-service-user may receive a C-GET cancel indication.

3. 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.

4. 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.

5. 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.

6. During the processing of the C-GET operation, the performing DIMSE-service-user may issue C-GET response primitives with a status of Pending.

7. 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:

1. 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.

2. 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.

3. 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.

### Note

Such an occurrence of a "Failed" response is often called an early failed response.

### 9.1.4 C-MOVE Service

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.

#### 9.1.4.1 C-MOVE Parameters

See Table 9.1-4.

Table 9.1-4. C-MOVE Parameters

DIMSE-C Parameter Name | Req/Ind | Rsp/Conf | CnclReq/CnclInd
Message ID | M | U | -
Message ID Being Responded To | - | M | M
Affected SOP Class UID | M | U(=) | -
Priority | M | - | -
Move Destination | M | - | -
Identifier | M | U | -
Status | - | M | -
Number of Remaining Sub-operations | - | C | -
Number of Completed Sub-operations | - | C | -
Number of Failed Sub-operations | - | C | -
Number of Warning Sub-operations | - | C | -

##### 9.1.4.1.1 Message ID

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

1. 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.

2. The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

##### 9.1.4.1.2 Message ID Being Responded To

This parameter specifies the Message ID (0000,0110) of the request/indication to which this response/confirmation applies.

##### 9.1.4.1.3 Affected SOP Class UID

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.

##### 9.1.4.1.4 Priority

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.

##### 9.1.4.1.5 Move Destination

This parameter specifies the DICOM AE Title of the destination DICOM AE to which the C-STORE sub-operations are being performed.

##### 9.1.4.1.6 Identifier

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.

##### 9.1.4.1.7 Status

Indicates the status of the response. It may have any of the following values:

1. Success - This indicates that processing of the matches and all sub-operations are complete.

2. Pending - This indicates that procession of the matches and sub-operations is initiated or continuing.

3. Refused: Out of Resources - 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.

4. Refused: SOP Class Not Supported - Indicates that processing of the C-MOVE has been terminated because the SOP Class was not supported.

5. Refused: Move Destination Unknown - Indicates that processing of the C-MOVE has been terminated because the Move destination was unknown.

6. Cancel- Indicates that processing of the C-MOVE has been terminated due to a C-MOVE Cancel indication primitive.

7. Failed - Indicates that the C‑MOVE operation failed at the performing DIMSE-service-user.

8. Refused:Duplicate Invocation- Indicates that the Message ID (0000,0110) specified is allocated to another notification or operation.

9. Refused:Mistyped argument- Indicates that one of the parameters supplied has not been agreed for use on the Association between the DIMSE-service-users.

10. Refused:Unrecognized Operation- Indicates that the operation is not one of those agreed between the DIMSE-service-users.

11. Refused:Not Authorized- Indicates that the peer DIMSE-service-user was not authorized to invoke the C-MOVE operation.

##### 9.1.4.1.8 Number of Remaining Sub-Operations

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.

##### 9.1.4.1.9 Number of Completed Sub-Operations

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.

##### 9.1.4.1.10 Number of Failed Sub-Operations

This specifies the number of C-STORE sub-operations invoked by this C-MOVE operation that have failed. It may be included in any response/confirmation and shall be included if the status is equal to Pending.

##### 9.1.4.1.11 Number of Warning Sub-Operations

This specifies the number of C-STORE sub-operation invoked by this C-MOVE operation that generated Warning responses. It may be included in any response/confirmation and shall be included if the status is equal to Pending.

#### 9.1.4.2 C-MOVE Service Procedures

The following C-MOVE service procedures apply to the invoking DIMSE-service user:

1. 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.

2. 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.

3. The invoking DIMSE-service-user may receive C-MOVE confirmation primitives with status of Pending during the processing of the C-MOVE operation.

4. The invoking DIMSE-service-user receives a final C-MOVE confirmation primitive.

### Note

in the above procedures, (c) may precede (b).

The following C-MOVE service procedures apply to the performing DIMSE-service-user:

1. 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.

2. At any time following the C-MOVE indication, the performing DIMSE-service-user may receive a C-MOVE cancel indication.

3. 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.

4. 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.

5. 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.

6. During the processing of the C-MOVE operation, the performing DIMSE-service-user may issue C-MOVE response primitives with a status of Pending.

7. 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:

1. 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.

2. 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.

3. 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.

### Note

1. Notes: Such an occurrence of a "Failed" response is often called an early failed response.

### 9.1.5 C-ECHO Service

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.

#### 9.1.5.1 C-ECHO Parameters

Table 9.1-5. C-ECHO Parameters

DIMSE-C Parameter Name | Req/Ind | Rsp/Conf
Message ID | M | U
Message ID Being Responded To | - | M
Affected SOP Class UID | M | U(=)
Status | - | M

##### 9.1.5.1.1 Message ID

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

1. 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.

2. The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

##### 9.1.5.1.2 Message ID Being Responded To

This parameter specifies the Message ID (0000,0110) of the request/indication to which this response/ confirmation applies.

##### 9.1.5.1.3 Affected SOP Class UID

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.

##### 9.1.5.1.4 Status

Indicates the status of the response. It may have any of the following values:

1. Success

2. Refused:SOP Class Not Supported -Indicates that a different SOP Class than the Verification SOP Class was specified, which was not supported.

3. Refused:Duplicate Invocation - Indicates that the Message ID (0000,0110) specified is allocated to another notification or operation.

4. Refused:Mistyped argument - Indicates that one of the parameters supplied has not been agreed for use on the Association between the DIMSE-service-users.

5. Refused:Unrecognized Operation - Indicates that a different SOP Class than the Verification SOP Class was specified, which does not recognize a C-ECHO operation.

#### 9.1.5.2 C-ECHO Service Procedures

The following C-ECHO procedures apply:

1. 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.

2. The DIMSE-service-provider issues a C-ECHO indication primitive to the performing DIMSE-service-user.

3. The performing DIMSE-service-user verifies communication by issuing a C-ECHO response primitive to the DIMSE-service-provider.

4. The DIMSE-service-provider issues a C-ECHO confirmation primitive to the invoking DIMSE-service-user, completing the C-ECHO operation.

## 9.2 Sequencing

### 9.2.1 Types of Services

All operation and notifications shall be confirmed services.

### 9.2.2 Usage Restrictions

These services may only be invoked within the context of an established Association.

### 9.2.3 Disrupted Procedures

These services do not disrupt any other service procedure.

### 9.2.4 Disrupting Procedures

These services are disrupted by the A-ABORT service procedure.

## 9.3 Protocol

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.

### 9.3.1 C-STORE Protocol

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.

#### 9.3.1.1 C-STORE-RQ

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

Message Field | Tag | VR | VM | Description of Field
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID of the SOP Instance to be stored.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE‑C operation conveyed by this Message. The value of this field shall be set to 0001H for the C-STORE-RQ Message.
Message ID | (0000,0110) | US | 1 | Implementation-specific value. It distinguishes this Message from other Messages.
Priority | (0000,0700) | US | 1 | The priority shall be set to one of the following values: LOW = 0002H MEDIUM = 0000H HIGH = 0001H
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that a Data Set is present in the Message. It shall be set to any value other than 0101H (Null).
Affected SOP Instance UID | (0000,1000) | UI | 1 | Contains the UID of the SOP Instance to be stored.
Move Originator Application Entity Title | (0000,1030) | AE | 1 | 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.
Move Originator Message ID | (0000,1031) | US | 1 | Contains the Message ID (0000,0110) of the C-MOVE-RQ Message from which this C-STORE sub-operations is being performed.
Data Set | (no tag) | - | - | Application-specific Data Set.

### Note

The contents of Composite Information Object Definitions, encoded as a series of Data Elements, are defined in PS3.3 and PS3.4

#### 9.3.1.2 C-STORE-RSP

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

Message Field | Tag | VR | VM | Description of Field
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | Contains the SOP Class of the SOP Instance stored.
Command Field | (0000,0100) | US | 1 | 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.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated C-STORE-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that no Data Set is present in the Message and shall be set to a value of 0101H (Null).
Status | (0000,0900) | US | 1 | The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition.
Affected SOP Instance UID | (0000,1000) | UI | 1 | Contains the UID of the SOP Instance stored.

#### 9.3.1.3 C-STORE Protocol Procedures

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:

- construct a Message conveying the C-STORE-RQ

- send the Message using the P-DATA request service (see 8.1)

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:

- construct a Message conveying the C-STORE-RSP

- send the Message using the P-DATA request service (see 8.1)

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.

### 9.3.2 C-FIND Protocol

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.

#### 9.3.2.1 C-FIND-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID associated with this operation.
Command Field | (0000,0100) | US | 1 | 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.
Message ID | (0000,0110) | US | 1 | Implementation-specific value that distinguishes this Message from other Messages.
Priority | (0000,0700) | US | 1 | The priority shall be set to one of the following values: LOW = 0002H MEDIUM = 0000H HIGH = 0001H
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that a Data Set is present in the Message. It shall be set to any value other than 0101H (Null).
Identifier | (no tag) | - | - | A Data Set that encodes the Identifier to be matched. See Section 9.1.2.1.5.

### Note

Implementations that require compatibility to previous versions of this Standard must set the Command Data Set Type (0000,0800) Field to 0102H (Identifier).

#### 9.3.2.2 C-FIND-RSP

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID associated with the operation.
Command Field | (0000,0100) | US | 1 | 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.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated C-FIND-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | 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.
Status | (0000,0900) | US | 1 | The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition.
Identifier | (no tag) | - | - | A Data Set that encodes the Identifier that was matched. See Section 9.1.2.1.5.

#### 9.3.2.3 C-CANCEL-FIND-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE‑C operation conveyed by this Message. The value of this field shall be set to 0FFFH for the C-CANCEL-FIND-RQ Message.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated C-FIND-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that no Data Set is present in the Message and shall be set to a value of 0101H.

#### 9.3.2.4 C-FIND Protocol Procedures

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:

- construct a Message conveying the C-FIND-RQ

- send the Message using the P-DATA request service (see 8.1)

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:

  1. construct a Message conveying the (Pending) C-FIND-RSP

  2. send the Message using the P-DATA request service (see 8.1)

- for the C-FIND response primitive containing the final status the DIMSE-C protocol machine shall:

  1. construct a Message conveying the (final) C-FIND-RSP

  2. end the Message using the P-DATA request service (see 8.1)

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.

### 9.3.3 C-GET Protocol

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.

#### 9.3.3.1 C-GET-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID associated with this operation.
Command Field | (0000,0100) | US | 1 | 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.
Message ID | (0000,0110) | US | 1 | Implementation-specific value that distinguishes this Message from other Messages.
Priority | (0000,0700) | US | 1 | The priority shall be set to one of the following values: LOW = 0002H MEDIUM = 0000H HIGH = 0001H
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that a Data Set is present in the Message. It shall be set to any value other than 0101H (Null).
Identifier | (no tag) | - | - | A Data Set that encodes attributes providing status information about the C-GET operation. See Section 9.1.3.1.5.

### Note

Implementations that require compatibility to previous versions of this Standard must set the Command Data Set Type (0000,0800) Field to 0102H (Identifier).

#### 9.3.3.2 C-GET-RSP

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID associated with the operation.
Command Field | (0000,0100) | US | 1 | 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.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated C-GET-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | 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.
Status | (0000,0900) | US | 1 | The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition.
Number of Remaining Sub-operations | (0000,1020) | US | 1 | The number of remaining C-STORE sub-operations to be invoked for this C-GET operation.
Number of Completed Sub-operations | (0000,1021) | US | 1 | The number of C-STORE sub-operations invoked by this C-GET operation that have completed successfully.
Number of Failed Sub-operations | (0000,1022) | US | 1 | The number of C-STORE sub-operations invoked by this C-GET operation that have failed.
Number of Warning Sub-operations | (0000,1023) | US | 1 | The number of C-STORE sub-operations invoked by this C-GET operation that generated warning responses.
Identifier | (no tag) | - | - | 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.

#### 9.3.3.3 C-CANCEL-GET-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE‑C operation conveyed by this Message. The value of this field shall be set to 0FFFH for the C-CANCEL-GET-RQ Message.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated C-GET-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that no Data Set is present in the Message and shall be set to a value of 0101H.

#### 9.3.3.4 C-GET Protocol Procedures

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:

- construct a Message conveying the C-GET-RQ

- send the Message using the P-DATA request service (see 8.1).

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:

  1. construct a Message conveying the (Pending) C-GET-RSP

  2. send the Message using the P-DATA request service (see 8.1)

- for the C-GET response primitive containing the final status the DIMSE-C protocol machine shall:

  1. construct a Message conveying the (final) C-GET-RSP

  2. send the Message using the P-DATA request service (see 8.1)

### 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.

### 9.3.4 C-MOVE Protocol

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.

#### 9.3.4.1 C-MOVE-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID associated with this operation.
Command Field | (0000,0100) | US | 1 | 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.
Message ID | (0000,0110) | US | 1 | Implementation-specific value that distinguishes this Message from other Messages.
Priority | (0000,0700) | US | 1 | The priority shall be set to one of the following values: LOW = 0002H MEDIUM = 0000H HIGH = 0001H
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that a Data Set is present in the Message. It shall be set to any value other than 0101H (Null).
Move Destination | (0000,0600) | AE | 1 | Shall be set to the DICOM AE Title of the destination DICOM AE to which the C-STORE sub-operations are being performed.
Identifier | (no tag) | - | - | A Data Set that encodes the Identifier to be matched. See Section 9.1.4.1.6.

### Note

Implementations that require compatibility to previous versions of this Standard must set the Command Data Set Type (0000,0800) Field to 0102H (Identifier).

#### 9.3.4.2 C-MOVE-RSP

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID associated with the operation.
Command Field | (0000,0100) | US | 1 | 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.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated C-MOVE Message.
Command Data Set Type | (0000,0800) | US | 1 | 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.
Status | (0000,0900) | US | 1 | The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition.
Number of Remaining Sub-operations | (0000,1020) | US | 1 | The number of remaining sub-operations to be invoked for this C-MOVE operation.
Number of Complete Sub-operations | (0000,1021) | US | 1 | The number of C-STORE sub-operations invoked by this C-MOVE operation that have completed successfully.
Number of Failed Sub-operations | (0000,1022) | US | 1 | The number of C-STORE sub-operations invoked by this C-MOVE operation that have failed.
Number of Warning Sub-operations | (0000,1023) | US | 1 | The number of C-STORE sub-operations invoked by this C-MOVE operation that generated warning responses.
Identifier | (no tag) | - | - | A Data Set that encodes attributes providing status information about the C-MOVE operation. See Section 9.1.4.1.6.

#### 9.3.4.3 C-CANCEL-MOVE-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE‑C operation conveyed by this Message. The value of this field shall be set to 0FFFH for the C-CANCEL-MOVE-RQ Message.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated C-MOVE-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that no Data Set is present in the Message and shall be set to a value of 0101H.

#### 9.3.4.4 C-MOVE Protocol Procedures

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:

- construct a Message conveying the C-MOVE-RQ

- send the Message using the P-DATA request service (see 8.1)

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:

  1. construct a Message conveying the (Pending) C-MOVE-RSP

  2. send the Message using the P-DATA request service (see 8.1)

- for the C-MOVE response primitive containing the final status the DIMSE-C protocol machine shall:

  1. construct a Message conveying the (final) C-MOVE-RSP

  2. send the Message using the P-DATA request service (see 8.1)

### Note

The C-MOVE indication primitive initiates a sub-operation identical to the C-STORE operation.

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.

### 9.3.5 C-ECHO Protocol

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.

#### 9.3.5.1 C-ECHO-RQ

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-13 are required by the DIMSE-C protocol.

Table 9.3-12. C-ECHO-RQ Message Fields

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID associated with this operation.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE‑C operation conveyed by this Message. The value of this field shall be set to 0030H for the C-ECHO-RQ Message.
Message ID | (0000,0110) | US | 1 | Implementation-specific value that distinguishes this Message from other Messages.
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that no Data Set is present in the Message and shall be set to a value of 0101H.

#### 9.3.5.2 C-ECHO-RSP

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID associated with the operation.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE‑C operation conveyed by this Message. The value of this field shall be set to 8030H for the C-ECHO-RSP Message.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated C-ECHO-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that no Data Set is present in the Message and shall be set to a value of 0101H.
Status | (0000,0900) | US | 1 | Indicates the status of the response. It shall have a value of Success.

#### 9.3.5.3 C-ECHO Protocol Procedures

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:

- construct a Message conveying the C-ECHO-RQ

- send the Message using the P-DATA request service (see 8.1)

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:

- construct a Message conveying the C-ECHO-RSP

- send the Message using the P-DATA request service (see 8.1)

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.

# 10 DIMSE-N

## 10.1 Services

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.

### 10.1.1 N-EVENT-REPORT Service

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.

#### 10.1.1.1 N-EVENT-REPORT Parameters

Table 10.1-1 lists the parameters for this service.

Table 10.1-1. N-EVENT-REPORT Parameters

DIMSE Parameter Name | Req/Ind | Rsp/Conf
--- | --- | ---
Message ID | M | -
Message ID Being Responded To | - | M
Affected SOP Class UID | M | U(=)
Affected SOP Instance UID | M | U(=)
Event Type ID | M | C(=)
Event Information | U | -
Event Reply | - | C
Status | - | M

##### 10.1.1.1.1 Message ID

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

The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

##### 10.1.1.1.2 Message ID Being Responded To

This parameter specifies the Message ID (0000,0110) of the notification request/indication to which this response/confirmation applies.

##### 10.1.1.1.3 Affected SOP Class UID

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.

##### 10.1.1.1.4 Affected SOP Instance UID

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.

##### 10.1.1.1.5 Event Type ID

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.

##### 10.1.1.1.6 Event Information

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.

##### 10.1.1.1.7 Event Reply

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.

##### 10.1.1.1.8 Status

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:

- class-instance conflict: the specified SOP Instance is not a member of the specified SOP class.

- duplicate invocation: the Message ID (0000,0110) specified is allocated to another notification or operation.

- invalid argument value: the event information value specified was out of range or otherwise inappropriate.

- invalid SOP Instance: the SOP Instance UID specified implied a violation of the UID construction rules.

- mistyped argument: one of the parameters supplied has not been agreed for use on the Association between the DIMSE-service-users.

- no such argument: the event information specified was not recognized.

- no such event type: the event type specified was not recognized.

- no such SOP class: the SOP Class was not recognized.

- no such SOP Instance: the SOP Instance was not recognized.

- processing failure: a general failure in processing the operation was encountered.

- resource limitation: the operation was not performed due to resource limitation.

- success: successful notification.

- unrecognized operation: the operation is not one of those agreed between the DIMSE-service-users.

#### 10.1.1.2 N-EVENT-REPORT Service Procedures

The following N-EVENT-REPORT procedures apply:

1. 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.

2. The DIMSE-service-provider issues an N-EVENT-REPORT indication primitive to the performing DIMSE-service-user.

3. 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.

4. 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.

### Note

Such an occurrence of a "Failed" response is often called an early failed response.

### 10.1.2 N-GET Service

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.

#### 10.1.2.1 N-GET Parameters

Table 10.1-2 lists the parameters for this service.

Table 10.1-2. N-GET Parameters

DIMSE Parameter Name | Req/Ind | Rsp/Conf
--- | --- | ---
Message ID | M | -
Message ID Being Responded To | - | M
Requested SOP Class UID | M | -
Requested SOP Instance UID | M | -
Attribute Identifier List | U | -
Affected SOP Class UID | - | U
Affected SOP Instance UID | - | U
Attribute List | - | C
Status | - | M

##### 10.1.2.1.1 Message ID

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

The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

##### 10.1.2.1.2 Message ID Being Responded To

This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.

##### 10.1.2.1.3 Requested SOP Class UID

This parameter specifies the SOP Class for which Attribute Values are to be retrieved.

##### 10.1.2.1.4 Requested SOP Instance UID

This parameter specifies the SOP Instance for which Attribute Values are to be retrieved.

##### 10.1.2.1.5 Attribute Identifier List

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.

##### 10.1.2.1.6 Affected SOP Class UID

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.

##### 10.1.2.1.7 Affected SOP Instance UID

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.

##### 10.1.2.1.8 Attribute List

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.

##### 10.1.2.1.9 Status

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:

- attribute list error: 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: the specified SOP Instance is not a member of the specified SOP Class.

- duplicate invocation: the Message ID (0000,0110) specified is allocated to another notification or operation.

- invalid SOP Instance: the SOP Instance UID specified implied a violation of the UID construction rules.

- mistyped argument: one of the parameters supplied has not been agreed for use on the Association between the DIMSE-service-users.

- no such SOP class: the SOP Class was not recognized.

- no such SOP Instance: the SOP Instance was not recognized.

- processing failure: a general failure in processing the operation was encountered.

- resource limitation: the operation was not performed due to resource limitation.

- success: successful operation.

- unrecognized operation: the operation is not one of those agreed between the DIMSE-service-users.

- not authorized:the DIMSE-service-user was not authorized to invoke the operation

#### 10.1.2.2 N-GET Service Procedures

The following N-GET procedures apply;

1. 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.

2. The DIMSE-service-provider issues an N-GET indication primitive to the performing DIMSE-service-user.

3. 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.

4. 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.

5. The DIMSE-service-provider issues an N-GET confirmation primitive to the invoking DIMSE-service-user, completing the N-GET operation.

### 10.1.3 N-SET Service

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.

#### 10.1.3.1 N-SET Parameters

Table 10.1-3 lists the parameters for this service.

Table 10.1-3. N-SET Parameters

DIMSE Parameter Name | Req/Ind | Rsp/Conf
--- | --- | ---
Message ID | M | -
Message ID Being Responded To | - | M
Requested SOP Class UID | M | -
Requested SOP Instance UID | M | -
Modification List | M | -
Attribute List | - | U
Affected SOP Class UID | - | U
Affected SOP Instance UID | - | U
Status | - | M

##### 10.1.3.1.1 Message ID

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

The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

##### 10.1.3.1.2 Message ID Being Responded To

This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.

##### 10.1.3.1.3 Requested SOP Class UID

This parameter specifies the SOP Class for which Attribute Values are to be modified.

##### 10.1.3.1.4 Requested SOP Instance UID

This parameter specifies the SOP Instance for which Attribute Values are to be modified.

##### 10.1.3.1.5 Modification List

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.

##### 10.1.3.1.6 Attribute List

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.

##### 10.1.3.1.7 Affected SOP Class UID

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.

##### 10.1.3.1.8 Affected SOP Instance UID

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.

##### 10.1.3.1.9 Status

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:

- class-instance conflict: the specified SOP Instance is not a member of the specified SOP Class.

- duplicate invocation: the Message ID (0000,0110) specified is allocated to another notification or operation.

- invalid Attribute Value: the Attribute Value specified was out of range or otherwise inappropriate.

- Attribute Value out of range:theAttributeValuespecifiedwasoutofrangeorotherwiseinappropriate.TheAttributeValuesthatcouldbemodifiedweremodified.

- mistyped argument: one of the parameters supplied has not been agreed for use on the Association between the DIMSE-service-users.

- invalid SOP Instance: the SOP Instance UID specified implied a violation of the UID construction rules.

- missing Attribute Value: a required Attribute Value was not supplied.

- no such Attribute: the Tag for the specified Attribute was not recognized.

- Attribute list error:oneormoreAttributeValueswerenotmodifiedbecausethespecifiedAttributeswerenotrecognized.TheAttributeValuesthatcouldbemodifiedweremodified.

- no such SOP class: the SOP Class was not recognized.

- no such SOP Instance: the SOP Instance was not recognized.

- processing failure: a general failure in processing the operation was encountered.

- resource limitation: the operation was not performed due to resource limitation.

- success: successful operation.

- unrecognized operation: the operation is not one of those agreed between the DIMSE-service-users.

- not authorized:the DIMSE-service-user was not authorized to invoke the operation.

#### 10.1.3.2 N-SET Service Procedures

The following N-SET procedures apply:

1. 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.

2. The DIMSE-service provider issues an N-SET indication primitive to the performing DIMSE-service-user.

3. 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.

4. 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.

5. 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.

### Note

Such an occurrence of a "Failed" response is often called an early failed response.

### 10.1.4 N-ACTION Service

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.

#### 10.1.4.1 N-ACTION Parameters

Table 10.1-4 lists the parameters for this service.

Table 10.1-4. N-ACTION Parameters

DIMSE Parameter Name | Req/Ind | Rsp/Conf
--- | --- | ---
Message ID | M | -
Message ID Being Responded To | - | M
Requested SOP Class UID | M | -
Requested SOP Instance UID | M | -
Action Type ID | M | C(=)
Action Information | U | -
Affected SOP Class UID | - | U
Affected SOP Instance UID | - | U
Action Reply | - | C
Status | - | M

##### 10.1.4.1.1 Message ID

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

The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

##### 10.1.4.1.2 Message ID Being Responded To

This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.

##### 10.1.4.1.3 Requested SOP Class UID

This parameter specifies the SOP Class for which the action is to be performed.

##### 10.1.4.1.4 Requested SOP Instance UID

This parameter specifies the SOP Instance on which the action is to be performed.

##### 10.1.4.1.5 Action Type ID

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.

##### 10.1.4.1.6 Action Information

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.

##### 10.1.4.1.7 Affected SOP Class UID

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.

##### 10.1.4.1.8 Affected SOP Instance UID

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.

##### 10.1.4.1.9 Action Reply

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.

##### 10.1.4.1.10 Status

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:

- class-instance conflict: the specified SOP Instance is not a member of the specified SOP Class.

- duplicate invocation: the Message ID (0000,0110) specified is allocated to another notification or operation.

- invalid argument value: the action information value specified was out of range or otherwise inappropriate.

- invalid SOP Instance: the SOP Instance UID specified implied a violation of the UID construction rules.

- mistyped argument: one of the parameters supplied has not been agreed for use on the Association between the DIMSE-service-users.

- no such action: the action type specified was not supported.

- no such argument: the action information specified was not supported.

- no such SOP class: the SOP Class was not recognized.

- no such SOP Instance: the SOP Instance was not recognized.

- processing failure: a general failure in processing the operation was encountered.

- resource limitation: the operation was not performed due to resource limitation.

- success: successful operation.

- unrecognized operation: the operation is not one of those agreed between the DIMSE-service-users.

- not authorized:the DIMSE-service-user was not authorized to invoke the operation.

#### 10.1.4.2 N-ACTION Service Procedures

The following N-ACTION procedures apply:

1. 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.

2. The DIMSE-service provider issues an N-ACTION indication primitive to the performing DIMSE-service-user.

3. 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.

4. 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.

5. 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.

### Note

Such an occurrence of a "Failed" response is often called an early failed response.

### 10.1.5 N-CREATE Service

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.

#### 10.1.5.1 N-CREATE Parameters

Table 10.1-5 lists the parameters for this service.

Table 10.1-5. N-CREATE Parameters

DIMSE Parameter Name | Req/Ind | Rsp/Conf
--- | --- | ---
Message ID | M | -
Message ID Being Responded To | - | M
Affected SOP Class UID | M | U(=)
Affected SOP Instance UID | U | C
Attribute List | U | U
Status | - | M

##### 10.1.5.1.1 Message ID

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

The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

##### 10.1.5.1.2 Message ID Being Responded To

This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.

##### 10.1.5.1.3 Affected SOP Class UID

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.

##### 10.1.5.1.4 Affected SOP Instance UID

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.

##### 10.1.5.1.5 Attribute List

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.

##### 10.1.5.1.6 Status

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:

- duplicate invocation: the Message ID (0000,0110) specified is allocated to another notification or operation.

- duplicate SOP Instance: 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: the Attribute Value specified was out of range or otherwise inappropriate.

- Attribute Value out of range: 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: the SOP Instance UID specified implied a violation of the UID construction rules.

- missing Attribute: a required Attribute was not supplied.

- missing Attribute Value: a required Attribute Value was not supplied and a default value was not available.

- mistyped argument: one of the parameters supplied has not been agreed for use on the Association between the DIMSE-service-users.

- no such Attribute: the Tag for the specified Attribute was not recognized.

- Attribute list error:one or more specified Attributes were not recognized and not included in the created instance.

- no such SOP class: the SOP Class was not recognized.

- processing failure: a general failure in processing the operation was encountered.

- resource limitation: the operation was not performed due to resource limitation.

- success: successful operation.

- unrecognized operation: the operation is not one of those agreed between the DIMSE-service-users.

- not authorized:the DIMSE-service-user was not authorized to invoke the operation.

#### 10.1.5.2 N-CREATE Service Procedures

The following N-CREATE procedures apply:

1. 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.

2. The DIMSE-service provider issues an N-CREATE indication primitive to the performing DIMSE-service-user.

3. 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.

4. 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.

5. 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.

### Note

Such an occurrence of a "Failed" response is often called an early failed response.

### 10.1.6 N-DELETE Service

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.

#### 10.1.6.1 N-DELETE Parameters

Table 10.1-6 lists the parameters for this service.

Table 10.1-6. N-DELETE Parameters

DIMSE Parameter Name | Req/Ind | Rsp/Conf
--- | --- | ---
Message ID | M | -
Message ID Being Responded To | - | M
Requested SOP Class UID | M | -
Requested SOP Instance UID | M | -
Affected SOP Class UID | - | U
Affected SOP Instance UID | - | U
Status | - | M

##### 10.1.6.1.1 Message ID

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

The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

##### 10.1.6.1.2 Message ID Being Responded To

This parameter specifies the Message ID (0000,0110) of the operation request/indication to which this response/confirmation applies.

##### 10.1.6.1.3 Requested SOP Class UID

This parameter specifies the SOP Class that is to be deleted.

##### 10.1.6.1.4 Requested SOP Instance UID

This parameter specifies the SOP Instance that is to be deleted.

##### 10.1.6.1.5 Affected SOP Class UID

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.

##### 10.1.6.1.6 Affected SOP Instance UID

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.

##### 10.1.6.1.7 Status

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

- class-instance conflict: the specified SOP Instance is not a member of the specified SOP Class

- duplicate invocation: the Message ID (0000,0110) specified is allocated to another notification or operation

- invalid SOP Instance: the SOP Instance UID specified implied a violation of the UID construction rules

- mistyped argument: one of the parameters supplied has not been agreed for use on the Association between the DIMSE-service-users

- no such SOP class: the SOP Class was not recognized

- no such SOP Instance: the SOP Instance was not recognized

- processing failure: a general failure in processing the operation was encountered

- resource limitation: the operation was not performed due to resource limitation

- success: successful operation

- unrecognized operation: the operation is not one of those agreed between the DIMSE-service-users

- not authorized:the DIMSE-service-user was not authorized to invoke the operation.

#### 10.1.6.2 N-DELETE Service Procedures

The following N-DELETE procedures apply:

1. 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.

2. The DIMSE-service provider issues an N-DELETE indication primitive to the performing DIMSE-service-user.

3. 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.

4. 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.

5. The DIMSE-service-provider issues an N-DELETE confirmation primitive to the invoking DIMSE-service-user, completing the N-DELETE operation.

## 10.2 Sequencing

### 10.2.1 Types of Services

All operation and notifications shall be confirmed services.

### 10.2.2 Usage Restrictions

These services may only be invoked within the context of an established Association.

### 10.2.3 Disrupted Procedures

These services do not disrupt any other service procedure.

### 10.2.4 Disrupting Procedures

These services are disrupted by the A-ABORT service procedure.

## 10.3 Protocol

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.

### 10.3.1 N-EVENT-REPORT Protocol

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.

#### 10.3.1.1 N-EVENT-REPORT-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID of the SOP Instance for which this event occurred.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE-N notification conveyed by this Message. The value of this field shall be set to 0100H for the N-EVENT-REPORT-RQ Message.
Message ID | (0000,0110) | US | 1 | Implementation-specific value that distinguishes this Message from other Messages.
Command Data Set Type | (0000,0800) | US | 1 | 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.
Affected SOP Instance UID | (0000,1000) | UI | 1 | Contains the UID of the SOP Instance for which this event occurred.
Event Type ID | (0000,1002) | US | 1 | Values for this field are application-specific.
Event Information | (no tag) | - | - | Application-specific Data Set containing additional information related to the operation.

### Note

1. Service Class Specifications contained in PS3.4 defines the values needed for the Event Type ID parameter.

2. Service Class Specifications contained in PS3.4 defines the Data Set needed for the Event Information parameter.

#### 10.3.1.2 N-EVENT-REPORT-RSP

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID of the SOP Instance for which this event occurred.
Command Field | (0000,0100) | US | 1 | 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.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated N-EVENT-REPORT-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | 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.
Status | (0000,0900) | US | 1 | The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition.
Affected SOP Instance UID | (0000,1000) | UI | 1 | Contains the UID of the SOP Instance for which this event occurred.
Event Type ID | (0000,1002) | US | 1 | Values for this field are application-specific.
Event Reply | (no tag) | - | - | Application-specific Data Set containing additional information related to the operation.

### Note

1. Service Class Specifications contained in PS3.4 defines the values needed for the Event Type ID parameter.

2. Service Class Specifications contained in PS3.4 defines the Data Set needed for the Event Reply parameter related to each defined Event Type ID.

#### 10.3.1.3 N-EVENT-REPORT Protocol Procedures

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:

- construct a Message conveying the N-EVENT-REPORT-RQ

- send the Message using the P-DATA request service (see 8.1)

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:

- construct a Message conveying the N-EVENT-REPORT-RSP

- 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.

### 10.3.2 N-GET Protocol

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.

#### 10.3.2.1 N-GET-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Requested SOP Class UID | (0000,0003) | UI | 1 | SOP Class UID of the SOP Instance for which Attribute Values are to be retrieved.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE-N operation conveyed by this Message. The value of this field shall be set to 0110H for the N-GET-RQ Message.
Message ID | (0000,0110) | US | 1 | Implementation-specific value that distinguishes this Message from other Messages.
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that no Data Set shall be present in the Message. This field shall be set to the value of 0101H).
Requested SOP Instance UID | (0000,1001) | UI | 1 | Contains the UID of the SOP Instance for which Attribute Values are to be retrieved.
Attribute Identifier List | (0000,1005) | AT | 1-n | This field contains an Attribute Tag for each of the n Attributes applicable to the N-GET operation.

#### 10.3.2.2 N-GET-RSP

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID of the SOP Instance for which Attribute Values are returned.
Command Field | (0000,0100) | US | 1 | 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.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated N-GET-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | 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.
Status | (0000,0900) | US | 1 | The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition.
Affected SOP Instance UID | (0000,1000) | UI | 1 | Contains the UID of the SOP Instance for which Attribute Values are returned.
Attribute List | (no tag) | - | - | T his field is encoded as a Data Set. One Data Element is encoded for each Attribute Value returned.

### Note

The permitted contents of Attribute List, encoded as a series of Data Elements, are defined in the Information Object Definition (PS3.3) and Service Class Specifications (PS3.4).

#### 10.3.2.3 N-GET Protocol Procedures

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:

- construct a Message conveying the N-GET-RQ

- send the Message using the P-DATA request service (see 8.1)

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:

- construct a Message conveying the N-GET-RSP

- send the Message using the P-DATA request service (see 8.1)

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.

### 10.3.3 N-SET Protocol

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.

#### 10.3.3.1 N-SET-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Requested SOP Class UID | (0000,0003) | UI | 1 | SOP Class UID of the SOP Instance for which Attribute values are to be modified.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE-N operation conveyed by this Message. The value of this field shall be set to 0120H for the N-SET-RQ Message.
Message ID | (0000,0110) | US | 1 | Implementation-specific value that distinguishes this Message from other Messages.
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that a Data Set is present in the Message. It shall be set to any value other than 0101H (Null).
Requested SOP Instance UID | (0000,1001) | UI | 1 | Contains the UID of the SOP Instance for which Attribute values are to be modified.
Modification List | (no tag) | - | - | This field is encoded as a Data Set. One Data Element is encoded for each Attribute and Attribute Value applicable to the operation.

### Note

The permitted contents of Modification List, encoded as a series of Data Elements, are defined in the Information Object Definition (PS3.3) and Service Class Specifications (PS3.4).

#### 10.3.3.2 N-SET-RSP

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID of the SOP Instance for which Attribute Values were modified.
Command Field | (0000,0100) | US | 1 | 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.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated N-SET-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | 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.
Status | (0000,0900) | US | 1 | The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition.
Affected SOP Instance UID | (0000,1000) | UI | 1 | Contains the UID of the SOP Instance for which Attribute Values were modified.
Attribute List | (no tag) | - | - | This field is encoded as a Data Set. One Data Element is encoded for each Attribute and Attribute Value applicable to the operation.

### Note

The permitted contents of Attribute List, encoded as a series of Data Elements, are defined in the Information Object Definition (PS3.3) and Service Class Specifications (PS3.4).

#### 10.3.3.3 N-SET Protocol Procedures

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:

- construct a Message conveying the N-SET-RQ

- send the Message using the P-DATA request service (see 8.1)

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:

- construct a Message conveying the N-SET-RSP

- send the Message using the P-DATA request service (see 8.1)

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.

### 10.3.4 N-ACTION Protocol

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.

#### 10.3.4.1 N-ACTION-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Requested SOP Class UID | (0000,0003) | UI | 1 | SOP Class UID of the SOP Instance for which the action is to be performed.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE-N operation conveyed by this Message. The value of this field shall be set to 0130H for the N-ACTION-RQ Message.
Message ID | (0000,0110) | US | 1 | Implementation-specific value that distinguishes this Message from other Messages.
Command Data Set Type | (0000,0800) | US | 1 | 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.
Requested SOP Instance UID | (0000,1001) | UI | 1 | Contains the UID of the SOP Instance for which the action is to be performed.
Action Type ID | (0000,1008) | US | 1 | Values for this field are application-specific.
Action Information | (no tag) | - | - | Application-specific Data Set containing additional information related to the operation.

### Note

1. Service Class Specifications contained in PS3.4 define the values needed for the Action Type ID (0000,1008) parameter.

2. Service Class Specifications contained in PS3.4 define the Data Set needed for the Action Information parameter.

#### 10.3.4.2 N-ACTION-RSP

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID of the SOP Instance for which the action was performed.
Command Field | (0000,0100) | US | 1 | 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.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated N-ACTION-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | 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.
Status | (0000,0900) | US | 1 | The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition.
Affected SOP Instance UID | (0000,1000) | UI | 1 | Contains the UID of the SOP Instance for which the action was performed.
Action Type ID | (0000,1008) | US | 1 | Values for this field are application-specific.
Action Reply | (no tag) | - | - | Application-specific Data Set containing additional information related to the operation.

### Note

1. Service Class Specifications contained in PS3.4 define the values needed for the Action Type ID (0000,1008) parameter.

2. Service Class Specifications contained in PS3.4 define the Data Set needed for the Action Reply parameter related to each defined Action Type ID.

3. Service Class Specifications contained in PS3.4 define the encoding of the Action Reply parameter.

#### 10.3.4.3 N-ACTION Protocol Procedures

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:

- construct a Message conveying the N-ACTION-RQ

- send the Message using the P-DATA request service (see 8.1)

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:

- construct a Message conveying the N-ACTION-RSP

- send the Message using the P-DATA request service (see 8.1)

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.

### 10.3.5 N-CREATE Protocol

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.

#### 10.3.5.1 N-CREATE-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID of the SOP Instance to be created.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE-N operation conveyed by this Message. The value of this field shall be set to 0140H for the N-CREATE-RQ Message.
Message ID | (0000,0110) | US | 1 | Implementation-specific value that distinguishes this Message from other Messages.
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that 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.
Affected SOP Instance UID | (0000,1000) | UI | 1 | Contains the UID of the SOP Instance to be created.
Attribute List | (no tag) | - | - | This field is encoded as a Data Set. One Data Element is encoded for each Attribute and Attribute Value applicable to the operation.

### Note

The permitted contents of Attribute List, encoded as a series of Data Elements, are defined in the Information Object Definition (PS3.3) and Service Class Specifications (PS3.4).

#### 10.3.5.2 N-CREATE-RSP

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID of the SOP Instance that was created.
Command Field | (0000,0100) | US | 1 | 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.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated N-CREATE-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | 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.
Status | (0000,0900) | US | 1 | The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition.
Affected SOP Instance UID | (0000,1000) | UI | 1 | Contains the UID of the SOP Instance that was created.
Attribute List | (no tag) | - | - | This field is encoded as a Data Set. One Data Element is encoded for each Attribute and Attribute Value applicable to the operation.

### Note

The permitted contents of Attribute List, encoded as a series of Data Elements, are defined in the Information Object Definition (PS3.3) and Service Class Specifications (PS3.4).

#### 10.3.5.3 N-CREATE Protocol Procedures

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:

- construct a Message conveying the N-CREATE-RQ

- send the Message using the P-DATA request service (see 8.1)

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:

- construct a Message conveying the N-CREATE-RSP

- send the Message using the P-DATA request service (see 8.1)

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.

### 10.3.6 N-DELETE Protocol

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.

#### 10.3.6.1 N-DELETE-RQ

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Requested SOP Class UID | (0000,0003) | UI | 1 | SOP Class UID of the SOP Instance to be deleted.
Command Field | (0000,0100) | US | 1 | This field distinguishes the DIMSE-N operation conveyed by this Message. The value of this field shall be set to 0150H for the N-DELETE-RQ Message.
Message ID | (0000,0110) | US | 1 | Implementation-specific value that distinguishes this Message from other Messages.
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that no Data Set is present in the Message. It shall be set to the value of 0101H.
Requested SOP Instance UID | (0000,1001) | UI | 1 | Contains the UID of the SOP Instance to be deleted.

#### 10.3.6.2 N-DELETE-RSP

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

Message Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Command Group Length | (0000,0000) | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID | (0000,0002) | UI | 1 | SOP Class UID of the SOP Instance that was deleted.
Command Field | (0000,0100) | US | 1 | 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.
Message ID Being Responded To | (0000,0120) | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated N-DELETE-RQ Message.
Command Data Set Type | (0000,0800) | US | 1 | This field indicates that no Data Set is present in the Message. This field shall be set to the value of 0101H).
Status | (0000,0900) | US | 1 | The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition.
Affected SOP Instance UID | (0000,1000) | UI | 1 | Contains the UID of the SOP Instance that was deleted.

#### 10.3.6.3 N-DELETE Protocol Procedures

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:

- construct a Message conveying the N-DELETE-RQ

- end the Message using the P-DATA request service (see 8.1)

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:

- construct a Message conveying the N-DELETE-RSP

- send the Message using the P-DATA request service (see 8.1)

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.

# A Application Context Usage (Normative)

## A.1 Application Context Definition

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.

## A.2 DICOM Application Context Name Encoding and Registration

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.

### A.2.1 DICOM Registered Application Context Names

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"

### A.2.2 Privately Defined Application Context Names

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.

## A.3 Association Initialization for DICOM Application Entity

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.

## A.4 Operation/Notification for DICOM Application Entity

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.

## A.5 Association Release for DICOM AE

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.

## A.6 Association Abort for DICOM AE

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.

# B Index to Application Context Name UIDs (Informative)

Retired.

# C Status Type Encoding (Normative)

The following sections define the encoding for the Status Types supported by the DIMSE services. The 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.

### Note

The Status (0000,0900) Command Element is required for all Status Types.

All Status Codes are assigned according to the following Status Class convention:

Success | 0000
Warning | 0001 or Bxxx
Failure | Axxx or Cxxx
Cancel | FE00
Pending | FF00 and FF01
PS3.7 Annex C assigned Warning and Failure | 01xx and 02xx

## C.1 Success Status Class

Statuses in this Status Class convey that the operation/notification completed successfully.

### C.1.1 Success

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0000H.

## C.2 Pending Status Class

Statuses in this Status Class convey that the operation/notification is continuing and additional Statuses are expected.

### C.2.1 Pending

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4.

## C.3 Cancel Status Class

Statuses in this Status Class convey that the operation/notification has been canceled.

### C.3.1 Cancel

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to FE00H.

## C.4 Warning Status Class

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.

### C.4.1 Warning

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4.
Offending Element | (0000,0901) | AT | 1-n | This optional field contains a list of the elements in which the error was detected.
Error Comment | (0000,0902) | LO | 1 | This optional field contains an application-specific text description of the error detected.

### C.4.2 Attribute List Error

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Affected SOP Class UID | (0000,0002) | UI | 1 | This optional field contains the SOP Class UID for which Attributes were not recognized.
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0107H.
Affected SOP Instance UID | (0000,1000) | UI | 1 | This optional field contains the UID of the SOP Instance for which Attributes were not recognized.
Attribute Identifier List | (0000,1005) | AT | 1-n | This optional field contains an Attribute Tag for each Attribute that was not recognized.

### C.4.3 Attribute Value Out of Range

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0116H.
Modification List/Attribute List | (no tag) | - | - | Optionally contains the application specific Data Set to only encode the invalid Attribute Values conveyed in the Modification List of the N-SET-RQ or the Attribute List of the N-CREATE-RQ.

## C.5 Failure Status Class

Statuses in this Status Class convey that the operation/notification failed and was not performed.

### C.5.1 Error: Cannot Understand

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4.
Offending Element | (0000,0901) | AT | 1-n | This optional field contains a list of the elements in which the error was detected.
Error Comment | (0000,0902) | LO | 1 | This optional field contains an application-specific text description of the error detected.

### C.5.2 Error: Data Set Does Not Match SOP Class

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4.
Offending Element | (0000,0901) | AT | 1-n | This optional field contains a list of the elements in which the error was detected.
Error Comment | (0000,0902) | LO | 1 | This optional field contains an application-specific text description of the error detected.

### C.5.3 Failed

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4.
Offending Element | (0000,0901) | AT | 1-n | This optional field contains a list of the elements in which the error was detected.
Error Comment | (0000,0902) | LO | 1 | This optional field contains an application-specific text description of the error detected.

### C.5.4 Refused: Move Destination Unknown

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4.
Error Comment | (0000,0902) | LO | 1 | This optional field contains an application-specific text description of the error detected.

### C.5.5 Refused: Out of Resources

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field is Service Class specific and defined in PS3.4.
Error Comment | (0000,0902) | LO | 1 | This optional field contains an application-specific text description of the error detected.

### C.5.6 Refused: SOP Class Not Supported

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0122H.
Error Comment | (0000,0902) | LO | 1 | This optional field contains an application-specific text description of the error detected.

### C.5.7 Class-Instance Conflict

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Affected SOP Class UID | (0000,0002) | UI | 1 | This optional field contains the SOP Class UID for which the SOP Instance was not a member.
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0119H.
Affected SOP Instance UID | (0000,1000) | UI | 1 | This optional field contains the SOP Instance that was not a member of the specified SOP Class.

### C.5.8 Duplicate SOP Instance

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0111H.
Affected SOP Instance UID | (0000,1000) | UI | 1 | This optional field contains the SOP Instance UID that was already allocated to another SOP Instance.

### C.5.9 Duplicate Invocation

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0210H.

### C.5.10 Invalid Argument Value

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0115H.
Affected SOP Class UID | (0000,0002) | UI | 1 | This optional field contains the SOP Class UID for which an argument value was in error.
Affected SOP Instance UID | (0000,1000) | UI | 1 | This optional field contains the ID of the SOP Instance for which an argument value was in error.
Event Type ID | (0000,1002) | US | 1 | This optional field contains the UID of the Event Type that was not recognized. Permitted only in the N-EVENT-RSP.
Event Information | (no tag) | - | - | Optionally contains the application specific Data Set to only encode the invalid argument values conveyed in the Event Information of the request. Permitted only in the N-EVENT-REPORT-RSP.
Action Type ID | (0000,1008) | US | 1 | This optional field contains the ID of the Action Type that was not recognized. Permitted only in the N-ACTION-RSP.
Action Information | (no tag) | - | - | Optionally contains the application specific Data Set to only encode the invalid argument values conveyed in the N-ACTION-RQ. Permitted only in the N-ACTION-RSP.

### C.5.11 Invalid Attribute Value

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0106H.
Modification List/Attribute List | (no tag) | - | - | Optionally contains the application specific Data Set to only encode the invalid Attribute Values conveyed in the Modification List of the N-SET -RQ or the Attribute List of the N-CREATE-RQ.

### C.5.12 Invalid Object Instance

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0117H.
Affected SOP Instance UID | (0000,1000) | UI | 1 | This optional field contains the SOP Instance UID that violated the UID construction rules.

### C.5.13 Missing Attribute

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0120H.
Attribute Identifier List | (0000,1005) | AT | 1-n | This optional field contains an Attribute Tag for each Attribute that was not recognized.

### C.5.14 Missing Attribute Value

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0121H.
Modification List/Attribute List | (no tag) | - | - | Optionally contains the application specific Data Set to only encode missing Attribute Values conveyed Modification List of the N-SET -RQ or the Attribute List of the N-CREATE-RQ..

### C.5.15 Mistyped Argument

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0212H.

### C.5.16 No Such Argument

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Affected SOP Class UID | (0000,0002) | UI | 1 | This optional field shall optionally contain the SOP Class UID for which the argument does not exist.
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0114H.
Event Type ID | (0000,1002) | US | 1 | This optional field contains the ID of the Event Type for which the argument does not exist. Permitted only in the N-EVENT-REPORT-RSP.
Action Type ID | (0000,1008) | US | 1 | This optional field contains the ID of the Action Type for which the argument does not exist. Permitted only in the N-ACTION-RSP.

### C.5.17 No Such Attribute

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0105H.
Attribute Identifier List | (0000,1005) | AT | 1-n | This optional field contains an Attribute Tag for each Attribute that was not recognized.

### C.5.18 No Such Event Type

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Affected SOP Class UID | (0000,0002) | UI | 1 | This optional field contains the SOP Class UID for which the event type does not exist.
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0113H.
Event Type ID | (0000,1002) | US | 1 | This optional field contains the ID of the Event Type that does not exist.

### C.5.19 No Such SOP Instance

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0112H.
Affected SOP Instance UID | (0000,1000) | UI | 1 | This optional field contains the SOP Instance UID that did not exist.

### C.5.20 No Such SOP Class

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Affected SOP Class UID | (0000,0002) | UI | 1 | This optional field contains the SOP Class UID that does not exist.
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0118H.

### C.5.21 Processing Failure

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Affected SOP Class UID | (0000,0002) | UI | 1 | This optional field contains the SOP Class UID on which the processing failure occurred.
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0110H.
Error Comment | (0000,0902) | LO | 1 | This optional field contains an application-specific text description of the error detected.
Error ID | (0000,0903) | US | 1 | This optional field contains an application-specific error code.
Affected SOP Instance UID | (0000,1000) | UI | 1 | This optional field shall optionally contain the UID of the SOP Instance on which the processing failure occurred.

### C.5.22 Resource Limitation

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0213H.

### C.5.23 Unrecognized Operation

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0211H.

### C.5.24 No Such Action Type

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Affected SOP Class UID | (0000,0002) | UI | 1 | This optional field contains the SOP Class UID for which the action type does not exist.
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0123H.
Action Type ID | (0000,1008) | US | 1 | This optional field contains the ID of the Action Type that does not exist.

### C.5.25 Refused: Not Authorized

Status Field | Tag | VR | VM | Description of Field
--- | --- | --- | --- | ---
Status | (0000,0900) | US | 1 | Confirmation status of the operation. The value of this required field shall be set to 0124H.
Error Comment | (0000,0902) | LO | 1 | This optional field contains an application-specific text description of the error detected.

# D Association Negotiation (Normative)

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.

## D.1 Abstract Syntax

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

- a Service-Object Pair Class UID

- a Meta Service-Object Pair Group UID

### D.1.1 Service-Object Pair Class UID

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

- The IOD defines the data structures

- The DSG defines the operations and/or notifications that can be performed on this data structure.

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.

Figure D.1-1. Service Class, IOD, DSG and SOP Class Relationships

### Note

1. 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.

2. 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.

### D.1.2 Meta Service-Object Pair Group UID

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.

Figure D.1-2. SOP Class UIDs and Meta SOP Class UIDs and Abstract Syntax Names

## D.2 Transfer Syntaxes

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.).

## D.3 Association Establishment

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.

### D.3.1 Application Context

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.

### D.3.2 Presentation Contexts Negotiation

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:

1. the Association-requester may offer multiple Presentation Contexts per Association.

2. each Presentation Context supports one Abstract Syntax (related to a SOP Class or Meta SOP Class) and one or more Transfer Syntaxes.

3. the Association-acceptor may accept or reject each Presentation Context individually.

4. the Association-acceptor selects a suitable Transfer Syntax for each Presentation Context accepted.

Figure D.3-1. Presentation Contexts Negotiation

### D.3.3 DICOM Application Association Information

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.

#### D.3.3.1 Maximum Length Application PDU Notification

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.

Figure D.3-2. Maximum Length PDU Negotiation

#### D.3.3.2 Implementation Identification Notification

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:

- Implementation Class UID (required)

- Implementation Version Name (optional)

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.

Figure D.3-3. 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).

##### D.3.3.2.1 Implementation Class UID Sub-Item Structure (A-ASSOCIATE-RQ)

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.

Figure D.3-4. Implementation Version Name Notification

Table D.3-1. Implementation Class UID Sub-Item Fields (A-ASSOCIATE-RQ)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 52H
2 | Reserved | This reserved field shall be sent with a value 00H but not tested to this value when received.
3 - 4 | Item-length | 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.
5 - xxx | Implementation-class-uid | 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.

##### D.3.3.2.2 Implementation Class UID Sub-Item Structure (A-ASSOCIATE-AC)

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)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 52H
2 | Reserved | This reserved field shall be sent with a value 00H but not tested to this value when received.
3 - 4 | Item-length | 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.
5 - xxx | Implementation-class-uid | 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.

##### D.3.3.2.3 Implementation Version Name Structure (A-ASSOCIATE-RQ)

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)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 55H
2 | Reserved | This reserved field shall be sent with a value 00H but not tested to this value when received.
3 - 4 | Item-length | 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.
5 - xxx | Implementation-version-name | 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.

##### D.3.3.2.4 Implementation Version Name Structure (A-ASSOCIATE-AC)

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)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 55H
2 | Reserved | This reserved field shall be sent with a value 00H but not tested to this value when received.
3 - 4 | Item-length | 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.
5 - xxx | Implementation-version-name | 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.

#### D.3.3.3 Asynchronous Operations (And Sub-Operations) Window Negotiation

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 support 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. 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")

##### D.3.3.3.1 Asynchronous Operations Window Sub-Item Structure (A-ASSOCIATE-RQ)

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)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 53H
2 | Reserved | This reserved field shall be sent with a value 00H but not tested to this value when received.
3 - 4 | Item-length | 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.
5 - 6 | Maximum-number-operations-invoked | 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.
7-8 | Maximum-number-operations-performed | 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.

##### D.3.3.3.2 Asynchronous Operations Window Sub-Item Structure (A-ASSOCIATE-AC)

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)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 53H
2 | Reserved | This reserved field shall be sent with a value 00H but not tested to this value when received.
3 - 4 | Item-length | 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.
5-6 | Maximum-number-operations-invoked | 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.
7-8 | Maximum-number-operations-performed | 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.

#### D.3.3.4 SCP/SCU Role Selection Negotiation

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:

- Association-requester is SCU only

- Association-requester is SCP only

- Association-requester is both SCU and SCP

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

1. 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.

2. 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).

Figure D.3-7. SCU/SCP Role Negotiation

### Note

1. 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".

2. Both DICOM AEs may be SCU and SCP for the Storage-CT SOP.

3. 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.

##### D.3.3.4.1 SCP/SCU Role Selection Sub-Item Structure (A-ASSOCIATE-RQ)

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)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 54H
2 | Reserved | This reserved field shall be sent with a value 00H but not tested to this value when received.
3 - 4 | Item-length | 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.
5-6 | UID-length | 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.
7 -xxx | SOP-class-uid | 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.
xxx | SCU-role | 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: 0 - non support of the SCU role 1 - support of the SCU role
xxx | SCP-role | 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: 0 - non support of the SCP role 1 - support of the SCP role.

##### D.3.3.4.2 SCP/SCU Role Selection Sub-Item Structure (A-ASSOCIATE-AC)

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)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 54H
2 | Reserved | This reserved field shall be sent with a value 00H but not tested to this value when received.
3-4 | Item-length | 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.
5-6 | UID-length | 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.
7-xxx | SOP-class-uid | 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.
xxx | SCU-role | 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
xxx | SCP-role | 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

#### D.3.3.5 Service-Object Pair (SOP) Class Extended Negotiation

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:

- semantics of the application information (including the negotiation rules)

- encoding of the application information

- conditions for which the application information is mandatory and/or optional

- default conditions of the application information

### 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 item for each SOP Class UID or Meta SOP Class that is present in the A-ASSOCIATE request.

If the SOP Class Extended Negotiation items do not exist in the A-ASSOCIATE indication they shall be omitted in the A-ASSOCIATE response.

##### D.3.3.5.1 SOP Class Extended Negotiation Sub-Item Structure (A-ASSOCIATE-RQ)

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)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 56H
2 | Reserved | This reserved field shall be sent with a value 00H but not tested to this value when received.
3-4 | Item-Length | 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.
5-6 | SOP-class-uid-length | 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.
7-xxx | SOP-class-uid | The SOP Class or Meta SOP Class identifier encoded as a UID as defined in PS3.5.
xxx-xxx | Service-class-application-information | 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.

##### D.3.3.5.2 SOP Class Extended Negotiation Sub-Item Structure (A-ASSOCIATE-AC)

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.

#### D.3.3.6 Service-Object Pair (SOP) Class Common Extended Negotiation

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

1. 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:

   - SOP Class UID: 1.2.840.10008.5.1.4.1.1.88.40 Procedure Log

   - Service Class UID: 1.2.840.10008.4.2 Storage Service Class

   - Related General SOP Class UID: 1.2.840.10008.5.1.4.1.1.88.22 Enhanced SR

2. 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:

   - SOP Class UID: 1.2.840.10008.5.1.4.1.1.7.1 MF Single Bit SC Image Storage

   - Service Class UID: 1.2.840.10008.4.2 Storage Service Class

   - Related General SOP Class UID: (none)

The Association-requester may only offer one SOP Class Common Extended Negotiation 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 items shall be omitted in the A-ASSOCIATE response.

##### D.3.3.6.1 SOP Class Common Extended Negotiation Sub-Item Structure (A-ASSOCIATE-RQ)

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)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 57H
2 | Sub-item-version | 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.
3-4 | Item-Length | 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.
5-6 | SOP-class-uid-length | 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.
7-x | SOP-class-uid | The SOP Class identifier encoded as a UID as defined in PS3.5.
(x+1) - (x+2) | Service-class-uid-length | 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.
(x+3) - y | Service-class-uid | The Service Class identifier encoded as a UID as defined in PS3.5.
(y+1) - (y+2) | Related-general-sop-class-identification-length | 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.
(y+3) - z | Related-general-sop-class-identification | 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
(z+1) - k | Reserved | 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

Bytes | Sub-Field Name | Description of Sub-Field
--- | --- | ---
1-2 | Related-general-sop-class-uid-length | 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.
3-n | Related-general-sop-class-uid | The Related General SOP Class identifier encoded as a UID as defined in PS3.5.

#### D.3.3.7 User Identity Negotiation

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 form of user identity being provided, either a username, username and passcode, a Kerberos service ticket, or a SAML assertion.

- an indication whether a positive server response is requested.

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

1. 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.

2. 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.

Figure D.3-8. User Identity Negotiation (With Server Positive Response Requested)

Figure D.3-9. User Identity Negotiation (Application Entity "A" Provides Username Identity)

##### D.3.3.7.1 User Identity Sub-Item Structure (A-ASSOCIATE-RQ)

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)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 58H
2 | Reserved | This reserved field shall be sent with a value 00H but not tested to this value when received.
3 - 4 | Item-length | This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the last field sent. It shall be encoded as an unsigned binary number.
5 | User-Identity-Type | Field value shall be in the range 1 to 4 with the following meanings: 1 - Username as a string in UTF-8 2 - Username as a string in UTF-8 and passcode 3 - Kerberos Service ticket 4 - SAML Assertion Other values are reserved for future standardization.
6 | Positive-response-requested | Field value: 0 - no response requested 1 - positive response requested
7-8 | Primary-field-length | The User-Identity-Length shall contain the length of the User-Identity value.
9-n | Primary-field | This field shall convey the user identity, either the username as a series of characters, or the Kerberos Service ticket encoded in accordance with RFC-1510.
n+1-n+2 | Secondary-field-length | This field shall be non-zero only if User-Identity-Type has the value 2. It shall contain the length of the secondary-field.
n+3-m | Secondary-field | This field shall be present only if User-Identity-Type has the value 2. It shall contain the Passcode value.

##### D.3.3.7.2 User Identity Sub-Item Structure (A-ASSOCIATE-AC)

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)

Item Bytes | Field Name | Description of Field
--- | --- | ---
1 | Item-type | 59H
2 | Reserved | This reserved field shall be sent with a value 00H but not tested to this value when received.
3 - 4 | Item-length | This Item-length shall be the number of bytes from the first byte of the following field to the last byte of the final field. It shall be encoded as an unsigned binary number.
5-6 | Server-response-length | This field shall contain the number of bytes in the Server-response. May be zero.
7-n | Server-response | This field shall contain the Kerberos Server ticket, encoded in accordance with RFC-1510, if the User-Identity-Type value in the A-ASSOCIATE-RQ was 3. This field shall contain the SAML response if the User-Identity-Type value in the A-ASSOCIATE-RQ was 4. This field shall be zero length if the value of the User-Identity-Type in the A-ASSOCIATE-RQ was 1 or 2.

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).

##### D.3.3.7.3 User Identity Rejection

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.

# E Command Dictionary (Normative)

## E.1 Registry of DICOM Command Elements

Table E.1-1. Command Fields

Tag | Message Field | Keyword | VR | VM | Description of Field
--- | --- | --- | --- | --- | ---
(0000,0000) | Command Group Length | CommandGroupLength | UL | 1 | The even number of bytes from the end of the value field to the beginning of the next group.
(0000,0002) | Affected SOP Class UID | AffectedSOPClassUID | UI | 1 | The affected SOP Class UID associated with the operation.
(0000,0003) | Requested SOP Class UID | RequestedSOPClassUID | UI | 1 | The requested SOP Class UID associated with the operation.
(0000,0100) | Command Field | CommandField | US | 1 | This field distinguishes the DIMSE operation conveyed by this Message. This field shall be set to one of the following values: 0001H C-STORE-RQ 8001H C-STORE-RSP 0010H C-GET-RQ 8010H C-GET-RSP 0020H C-FIND-RQ 8020H C-FIND-RSP 0021HC-MOVE-RQ 8021H C-MOVE-RSP 0030H C-ECHO-RQ 8030H C-ECHO-RSP 0100H N-EVENT-REPORT-RQ 8100H N-EVENT-REPORT-RSP 0110H N-GET-RQ 8110H N-GET-RSP 0120H N-SET-RQ 8120H N-SET-RSP 0130H N-ACTION-RQ 8130H N-ACTION-RSP 0140H N-CREATE-RQ 8140H N-CREATE-RSP 0150H N-DELETE-RQ 8150H N-DELETE-RSP 0FFFH C-CANCEL-RQ
(0000,0110) | Message ID | MessageID | US | 1 | Implementation-specific value that distinguishes this Message from other Messages.
(0000,0120) | Message ID Being Responded To | MessageIDBeingRespondedTo | US | 1 | Shall be set to the value of the Message ID (0000,0110) field used in associated request Message.
(0000,0600) | Move Destination | MoveDestination | AE | 1 | Shall be set to the DICOM AE Title of the destination DICOM AE to which the C-STORE sub-operations are being performed.
(0000,0700) | Priority | Priority | US | 1 | The priority shall be set to one of the following values: LOW = 0002H MEDIUM = 0000H HIGH = 0001H
(0000,0800) | Command Data Set Type | CommandDataSetType | US | 1 | 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.
(0000,0900) | Status | Status | US | 1 | Confirmation status of the operation. See Annex C.
(0000,0901) | Offending Element | OffendingElement | AT | 1-n | If status is Cxxx, then this field contains a list of the elements in which the error was detected.
(0000,0902) | Error Comment | ErrorComment | LO | 1 | This field contains an application-specific text description of the error detected.
(0000,0903) | Error ID | ErrorID | US | 1 | This field shall optionally contain an application-specific error code.
(0000,1000) | Affected SOP Instance UID | AffectedSOPInstanceUID | UI | 1 | Contains the UID of the SOP Instance for which this operation occurred.
(0000,1001) | Requested SOP Instance UID | RequestedSOPInstanceUID | UI | 1 | Contains the UID of the SOP Instance for which this operation occurred.
(0000,1002) | Event Type ID | EventTypeID | US | 1 | Values for this field are application-specific.
(0000,1005) | Attribute Identifier List | AttributeIdentifierList | AT | 1-n | This field contains an Attribute Tag for each of the n Attributes applicable.
(0000,1008) | Action Type ID | ActionTypeID | US | 1 | Values for this field are application-specific.
(0000,1020) | Number of Remaining Sub-operations | NumberOfRemainingSuboperations | US | 1 | The number of remaining C-STORE sub-operations to be invoked for the operation.
(0000,1021) | Number of Completed Sub-operations | NumberOfCompletedSuboperations | US | 1 | The number of C-STORE sub-operations associated with this operation that have completed successfully.
(0000,1022) | Number of Failed Sub-operations | NumberOfFailedSuboperations | US | 1 | The number of C-STORE sub-operations associated with this operation that have failed.
(0000,1023) | Number of Warning Sub-operations | NumberOfWarningSuboperations | US | 1 | The number of C-STORE sub-operations associated with this operation that generated warning responses.
(0000,1030) | Move Originator Application Entity Title | MoveOriginatorApplicationEntityTitle | AE | 1 | 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.
(0000,1031) | Move Originator Message ID | MoveOriginatorMessageID | US | 1 | Contains the Message ID (0000,0110) of the C-MOVE-RQ Message from which this C-STORE sub-operation is being performed.

## E.2 Retired Command Fields

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.

Table E.2-1. Retired Command Fields

Tag | Message Field | Keyword | VR | VM
--- | --- | --- | --- | ---
(0000,0001) | Command Length to End | CommandLengthToEnd | UL | 1
(0000,0010) | Command Recognition Code | CommandRecognitionCode | SH | 1
(0000,0200) | Initiator | Initiator | AE | 1
(0000,0300) | Receiver | Receiver | AE | 1
(0000,0400) | Find Location | FindLocation | AE | 1
(0000,0850) | Number of Matches | NumberOfMatches | US | 1
(0000,0860) | Response Sequence Number | ResponseSequenceNumber | US | 1
(0000,4000) | Dialog Receiver | DialogReceiver | LT | 1
(0000,4010) | Terminal Type | TerminalType | LT | 1
(0000,5010) | Message Set ID | MessageSetID | SH | 1
(0000,5020) | End Message ID | EndMessageID | SH | 1
(0000,5110) | Display Format | DisplayFormat | LT | 1
(0000,5120) | Page Position ID | PagePositionID | LT | 1
(0000,5130) | Text Format ID | TextFormatID | CS | 1
(0000,5140) | Normal/Reverse | NormalReverse | CS | 1
(0000,5150) | Add Gray Scale | AddGrayScale | CS | 1
(0000,5160) | Borders | Borders | CS | 1
(0000,5170) | Copies | Copies | IS | 1
(0000,5180) | Command Magnification Type | CommandMagnificationType | CS | 1
(0000,5190) | Erase | Erase | CS | 1
(0000,51A0) | Print | Print | CS | 1
(0000,51B0) | Overlays | Overlays | US | 1-n

### 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 versions 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.

# F Usage of the P-DATA Service By the DICOM Application Entity (Normative)

How DICOM messages are encapsulated into the P‑DATA Service by the DICOM Application Entity is specified in PS3.8.

### Note

Identical text to that in PS3.8 was formerly duplicated here.