MODALIZER SDK - Fast Strike DICOM Toolkit

MODALIZER SDK is a DICOM(R) toolkit (AKA DICOM Library, DICOM SDK) for Microsoft Windows Operating Systems. The goal of MODALIZER SDK is to simplify and shorten DICOM Application development. This goal is achived by providing a very high level API that hides the complexity of the DICOM services behind comperhansive service level commands like Send, Query, Move and Print. Each of these service commands encapsulates a lot of DICOM details such as association negotiation parameters, transfer syntaxes and SOP Classes, Value Representations and many other fine little details that are very interesting for DICOM experts but definatly not the main interest for the programmers that just wants to add DICOM to their applications.

With MODALIZER SDK you can build DICOM applications in seconds, read, update and create DICOM files, send and receive DICOM images over the network and use other services such as DICOM Query/Retrieve, DICOM Print, Modality Performed Procedure Step (MPPS), Storage Commitment and Structured Reporting.

The methods are high-level methods in a way that require the basic DICOM understanding. At the core of the toolkit is the IDCXOBJ interface that manages A DICOM Object. A DICOM Object is a set of DICOM Data Elements. Data elements are managed using the IDCXELM interface - A DICOM Data Element. Every element is identified using a Tag (DICOM_TAG). The full registry of the DICOM Tags can be found in the DICOM standard, usually acceible from All standard DICOM Tags are predefined in the enumerated type DICOM_TAGS_ENUM. Elements can be accessed, added and removed to objects.

The second level of services that MODALIZER SDK provides are DICOM networking managers: IDCXACC and IDCXREQ.

Secure DICOM Networking (DICOM TLS)

MODALIZER SDK implements the secure DICOM network protocol using Windows SSPI. For more details see IDCXSEC.

Using this User Manual

This user manual helps users to use MODALIZER SDK. We sugegst that you first go briefly over this manual and then run in debug mode the example applications and refer to this manual when nesesary.

Error Handling

MODALIZER SDK provides detailed log descriptions using the COM Error Handling framework.
In C++ Use the _com_error::Description() method to get the error message.
In C# use the System.Runtime.InteropServices.COMException Message propertiy to the error message.
The error text is aimed to provide good diagnostics information. This means for example that if a file failed to send then the error will be of the send failure even if there were also problems in the association release command.

Multi-Threading AND Asyncronuous DICOM Networking

Multi-Threaded sample applications both in C# and in C++ are included. At first glance the multi-threading model that we chose might look a bit strange because the application event loop is actually handled in the worker thread (See for example MultithreadedServerExample AssocHandler DoWork). This paradigm was chosen because of some limitations that COM and .NET interop enforce with MTA's.

Support of JPEG 2000 Transfer Syntaxes

MODALIZER SDK utilize OpenJPEG ( for JPEG 2000 Encoding and Decoding. Starting release 3.2.0 OpenJPEG is dynamically linked and delay loaded. This change was made in order to allow enabling, disabling and updating OpenJPEG independently of our software releases. This means that in order to perform the related actions (encoding and decoding of JPEG 2000 compressed images) you should have openjp2.dll in your DLL Search Order, or best, is in the same directory with rzdcx.dll (MODALIZER SDK dynamic library file). This is unlike previous versions that were statically linked with OpenJPEG libraries. If you don't need JPEP 2000 support in your application, there's no need for openjp2.dll. The openjp2.dll can be downloaded from OpenJPEG web site.


MODALIZER SDK is a comercial software library. Please check our license agreement on our web-site at Some of the features in the library such as structured reporting and Implementation SOP Instance setting are restricted by license. The trial version available online is identical to the licensed version. Without a license file, the library will stop after 100 API calls.