Develop registration-free .NET application with DicomObjects.ocx

When you are going to use DicomObjects.ocx, normally you will have to register it, either manually via Regsvr32.exe or some sort of installer program which does it automatically for you. This is all fine when you have the permission (as a developer, you are almost guaranteed to be the system admin), but exception will be thrown when you are restricted user (i.e. people using the pc on your client site).

Errors Registering/Using DicomObjects.ocx in Windows Vista

Unable to Register DicomObjects.ocx due to lack of permission

Vista systems have a high security control so explicit system admin previlege will be required when registering DicomObjects.ocx, or you will get the following error if you are a normal user:

You can easily solve this problem in either of the following ways:

Calculate windowing width and level from Image pixel data

Calculating windowing width and level from Image pixel data can be done via accessing the raw pixel data and applying your own algorithm or via the DicomObjects method SetDefaultWindows of the DicomImage object. The problem with this, however, is that there will be no correct values as the best values depend on which area of the image contains the anatomical region the user is interested in looking at (which is why viewer applications always have the tools to change them).

Catch none-zero final status with DicomAssociation

So far in DicomObjects, we don't throw exceptions when none-zero final status is received during the DICOM associations. The none-zero final status get passed by us and it should be the developers' responsibilities to check and, if needed, alert the user for any warnings or failures.

To catch the final status and also the related warning/error fields, you can take a look at the following code (vb6 for COM version and for the .NET version of DicomObjects).

Transfer Syntax Control on the Network

How can I control the Transfer Syntax (compression) used when I send images over the network?

It is important first to understand how DICOM negotiation occurs in general.

Number of Overlays in Image

How overlay data is stored

There are two ways of storing overlays in DICOM Image:

  • Overlay data stored in unused bit planes of the Pixel Data (7FE0,0010) with Samples Per Pixel (0028,0002) of 1. This usage has now retired.
  • Overlay data stored in separate "Overlay pixel data" attribute (60xx,3000).


To create a DICOM Image Histogram Module, users of DicomObjects can use the DicomImage.Histogram method, which returns an array containing the distribution of the raw pixel values.

DicomImage.Histogram(Min, Max, BinSize)


Transport Layer Security

DICOM Transport Layer Security (DICOM TLS) is derived from SSL 3.0 and is largely compatible with it.

For samples showing how to use DICOM TLS in DicomObjects (COM & .NET), please see the examples page

Please check part 15 of the DICOM standard for more information about TLS.


Subscribe to RSS - COM