RZDCX is DICOM toolkit (AKA DICOM Library, DICOM SDK) fo4 Microsoft Windows Operating Systems. The goal of RZDCX 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 RZDCX 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 http://medical.nema.org 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 RZDCX provides are DICOM networking managers: IDCXACC and IDCXREQ.

Using this User Manual

This user manual helps users to use RZDCX. 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

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

License

RZDCX is a comercial software library. Please check our license agreement on our web-site at http://www.roniza.com/products/license/ 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.