Introduction to DicomObjects .NET version
Overview of DicomObjects.NET
DicomObjects.NET consists of an inter-related, but independent, set of .NET "Objects" that enable developers to quickly and easily add DICOM functionality to their products without needing to understand or program the intricacies of the DICOM standard. This help file provides full reference to those objects and also some introductory guidance.

Almost any aspect of DICOM image/data manipulation can be performed using DicomObjects, including:
- Image display and manipulation
- Network transmission of images and associated data, including worklists
- Printing to DICOM and windows printers
- Normalised operations including storage commitment
- Image creation from scratch and import/export to/from non-DICOM formats
The main Components of DicomObjects are:
DicomViewer Control
A control that may be embedded into any .NET forms control container such as C#, Visual Basic.NET etc. It has extensive display capabilities for DICOM images, whether read from files, received over the network, or from numerous other sources, and these include a wide range of annotations, and full DICOM greyscale presentation state support.
DicomServer Class
An object that provides storage, query/retrieve and normalised facilities as a service class provider (SCP). Events are raised in response to incoming operations.
DicomQuery Class
An object that handles the query/retrieve parts of the DICOM standard as a service class user (SCU).
DicomPrint Class
An object that simplifies DICOM printing as a service class user (SCU).
DicomGlobal Class
Used for certain global operations, including logging and setting global behaviour.
DicomAssociation Class
A DicomAssociation Object represents a DICOM association, and may either be created automatically in response to an incoming query request, or explicitly by the client program. Methods of this object are used to send data, images, and verification requests.
Other classes and collections are created and used by the above, and some may also be created directly. They are:
| Object Description | Single Item | Collection |
|---|---|---|
| SOP instance, containing an image | DicomImage Class | DicomImageCollection Class |
| Generic SOP instance, used for results of DICOM queries or as a sub-element of a Sequence | DicomDataSet Class | DicomDataSetCollection Class |
| Attribute (Data Element) of a DicomDataSet | DicomAttribute Class | |
| DICOM Presentation context | DicomContext Class | DicomContextCollection Class |
| Image Annotation | DicomLabel Class | DicomLabelCollection Class |
| Licensing Information and Control | DicomLicense Class |
DicomImage Class
An object that represents the DICOM image with the pixel data and all the attributes as accessible properties. It is a superset ofDicomDataSet Class, which in turn is a collection ofDicomAttribute Class. DicomAttribute is the basic unit to hold A DICOM element, it is represented by a keyword/tag in the format (gggg,eeee), where gggg equates to the Group Number and eeee equates to the Element Number within that Group. These values are in hexadecimal notation as specified for each named Data Element in theStandard (PS3.6 Data Dictionary)
There is also a 3D specificDicomImage3D Classthat supports MPR, MIP, VR & Slab rendering ofDicomVolume
DicomLabel Class
An object that represents annotations, markers on the displayed DICOM image.
DicomException Class
A DicomException Object represents the errors that occur within DicomObjects which is wrapped and thrown as a manageable exception in the user code with descriptive error messages.
| Project | Description | Download |
|---|---|---|
| Basic Dicom Viewer | This sample showcases the majority of the DicomObjects display functionality, including 2D & 3D image display, manipulation and addition of annotations | |
| HTJ2K Custom Codec with OpenJPH (source code) | This sample demonstrate how to build a High-Throughput JPEG2000 custom codec with open source project OpenJPH and use it with DicomObjects to compress and decompress | |
| HTJ2K Custom Codec with OpenJPH (pre-compiled DLLs) | Pre-compiled OpenJPH.dll, OpenJPHWrapper.dll and MyHTJ2KCodec.dll ready to be used with DicomObjects to compress and decompress HTJ2K | |
| Restful Dicom Web Server | DICOM-Rs Web Server | |
| Structured Report Viewer | Shows how to parse a DICOM Structured Report object and display by converting to HTML | |
| DICOM DIR Reader/Writer | This sample demonstrates reading/writing of a DICOMDIR, including how to list and access the files on the media | |
| Dicom Router | An example of how to use DicomObjects to construct a ‘pass-through’ router to do aggregation, compression and conversion between C-GET & C-MOVE | |
| Dicom Server | The basic skeleton of a PACS server, showing how to receive images, answer queries, and send images when requested | |
| Encryption | This sample shows how to implement DICOM communications over TLS and how to create and read encrypted DICOM files. | |
| Key Object Note | This sample shows how to generate a basic Key Object Note document which references a set of DICOM objects | |
| Licence Manager | This sample shows how to manage DicomObjects licences on your system. It demonstrates the basic functions to add or remove licences. | |
| Licence Manager (Compiled) | This is the compiled version of the Licence manager above, provided for convenience. | |
| MPPS | Modality Performed Procedure Step (MPPS) SCU/SCP pair | |
| Modality Worklist | Modality worklist (MWL) SCU/SCP pair | |
| Printer Server | Sample DICOM Print Server which receives DICOM print instructions and prints to a Windows printer | |
| Storage Commitment | Storage Commitment | |
| ECG Control | Sample ECG Control to work with DicomViewer for Displaying DICOM ECG data |