DIMSE (DICOM Message Service Element) is the application-layer protocol that defines the command structures and data encoding rules for network operations like C-STORE, C-FIND, and C-MOVE over an established TCP/IP association. It provides the standardized messaging framework enabling interoperability between medical imaging devices.
Glossary
DIMSE

What is DIMSE?
The legacy network protocol defining the command and data structures for DICOM operations over a TCP/IP association.
DIMSE specifies two service types: DIMSE-C for composite operations on normalized information objects (e.g., querying a PACS archive) and DIMSE-N for normalized operations on legacy data structures. Each command is paired with a specific SOP Class to form a complete service definition, with the Association Negotiation process determining which DIMSE services and Transfer Syntaxes are supported between the SCU and SCP.
Core DIMSE-C Service Commands
The DIMSE-C (Composite) protocol defines the command structures that enable peer-to-peer medical image networking over an established DICOM Association. Each command maps to a specific clinical workflow, from image storage to complex query and retrieval operations.
C-STORE: Image Persistence
The C-STORE command initiates the transfer of a single DICOM SOP Instance from a Service Class User (SCU) to a Service Class Provider (SCP). It is the fundamental operation for sending images from a modality to a PACS archive. The command includes the SOP Class UID and SOP Instance UID to uniquely identify the object being stored.
- Workflow: A CT scanner (SCU) sends reconstructed slices to a central PACS server (SCP).
- Confirmation: The SCP returns a C-STORE-RSP with a status code (e.g.,
0x0000for Success) after verifying data integrity. - Storage Commitment: Often followed by a separate N-ACTION request to confirm the SCP has taken permanent custody of the image.
C-FIND: Metadata Query
The C-FIND command performs a hierarchical search against the SCP's database using a set of matching key attributes. The SCU sends a request containing populated DICOM Tags as search criteria, and the SCP returns a sequence of matching identifiers.
- Query/Retrieve Levels: The search scope is defined by the Query/Retrieve Level (Patient, Study, Series, or Image).
- Matching Keys: Supports single-value matching, universal matching (empty value), and range matching for date/time attributes.
- Use Case: A radiologist's workstation queries the PACS for all CT studies for a specific patient performed within the last year.
C-MOVE: Initiated Retrieval
The C-MOVE command instructs the SCP to initiate a new C-STORE sub-operation to transfer all matching SOP Instances to a third-party destination Application Entity Title (AET). The SCU specifies the retrieval destination, and the SCP acts as a temporary SCU to push the images.
- Three-Party Operation: Involves the requesting SCU, the source SCP, and the destination AET.
- Status Updates: The SCP sends pending C-MOVE-RSP messages for each transferred instance, allowing the requester to track progress.
- Contrast with C-GET: Unlike C-GET, the data channel does not need to traverse the same association as the command channel.
C-GET: Inline Retrieval
The C-GET command retrieves SOP Instances directly over the same DICOM Association used for the request. The SCP sends the matching images back to the requesting SCU on the existing connection.
- Simplified Firewall Traversal: Only requires a single outbound connection from the SCU, making it preferable for teleradiology across firewalls compared to C-MOVE.
- Negotiation Requirement: Both the C-GET SCP role and the required C-STORE SCP role must be successfully negotiated during Association Negotiation.
- Behavior: The SCP pushes images using C-STORE sub-operations on the open association.
C-ECHO: Connectivity Verification
The C-ECHO command implements the DICOM Verification SOP Class. It is a simple ping-like mechanism used to confirm network connectivity and basic DICOM compliance between two Application Entities before initiating clinical operations.
- Handshake: The SCU sends a C-ECHO-RQ, and the SCP responds with a C-ECHO-RSP containing a Success status.
- No Data Transfer: No SOP Instances or patient data are exchanged; it strictly validates the association layer.
- Troubleshooting: Often the first step in debugging a failed DICOM integration to verify that the IP, port, and AET configurations are correct.
C-CANCEL: Operation Abortion
The C-CANCEL command allows an SCU to request the graceful termination of an outstanding C-FIND, C-MOVE, or C-GET operation. It prevents the SCP from continuing to process a long-running or erroneous query.
- Graceful Termination: The SCP stops sending pending responses and issues a final response with a status of
0xFE00(Canceled). - Resource Management: Critical for preventing a typo in a C-FIND query from locking up the SCP's database resources.
- Message ID: The C-CANCEL request must reference the Message ID of the original operation to be terminated.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Frequently Asked Questions
Clear answers to common technical questions about the DICOM Message Service Element, the foundational network protocol that powers image transfer and query operations in medical imaging.
DIMSE (DICOM Message Service Element) is the legacy application-layer protocol that defines the command and data structures for network operations over a TCP/IP association between two DICOM Application Entities. It works by establishing a negotiated Association between a Service Class User (SCU) and a Service Class Provider (SCP), then exchanging standardized command-and-response message pairs. Each DIMSE message consists of a Command Set specifying the operation (e.g., C-STORE, C-FIND) and an optional Data Set containing the payload. The protocol operates in a synchronous, blocking manner—the SCU sends a request and waits for the SCP's response before sending the next command, which fundamentally differs from modern asynchronous RESTful approaches like DICOMweb.
Related Terms
Core concepts for understanding how DIMSE commands operate within the DICOM networking framework.
Association Negotiation
The initial handshake process where two Application Entities agree on the SOP Classes, Transfer Syntaxes, and maximum PDU length for a session. A DIMSE command can only be issued after a successful association is established, ensuring both the SCU and SCP support the requested operation.
SOP Class
The fundamental unit of DICOM interoperability, defined as the union of an Information Object Definition (IOD) and a DIMSE Service Group. For example, a CT Image Storage SOP Class pairs the CT IOD with the C-STORE command, defining exactly how a CT scan must be transmitted.
SCU / SCP Roles
- SCU (Service Class User): The client that initiates a DIMSE operation (e.g., a workstation sending a C-FIND query).
- SCP (Service Class Provider): The server that performs the requested operation (e.g., a PACS archive executing the C-STORE).
These roles are negotiated per SOP Class during association.
Transfer Syntax
The encoding rules that define how DICOM data structures are serialized into a byte stream for DIMSE transmission. Specifies byte ordering (Little/Big Endian) and compression (JPEG, JPEG 2000, RLE). Both SCU and SCP must agree on at least one Transfer Syntax during association negotiation.
Query/Retrieve Level
The hierarchical tier at which a DIMSE C-FIND or C-MOVE operates:
- PATIENT: Search by patient ID or name.
- STUDY: Retrieve all series within a study.
- SERIES: Target a specific acquisition.
- IMAGE: Request individual SOP instances.
Defines the scope of the database operation.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us