Lossless bug in old COM versions of DicomObjects


Incorrect Use of signed arithmetic in JPEG Lossless predictor calculations

Date Discovered:

December 2005


A DICOM Dataset is the fundamental "block" of useful information in DICOM, and is used for multiple purposes:


We are sometimes asked "does DicomObjects support ECG" (or EKG depending on where you are in the world!)

The answer is that we support it (as we for all SOP classes) for reading/writing/transmission as well as giving you the ability to create it and to extract data element values from it.

We do not offer explicit rendering (there are just TOO many variables, and we spend days handling every possible option of line thickness, colour etc.) but the ECG data is readily available, and quite simple to put into the graphing package of your choice.

Registry Values

Many of the less commonly used features of DicomObjects are controlled by "registry" values, which can be specified in one of 2 ways:

Background Operations using the COM version

It is often useful to perform operation in the background, in order to keep a responsive user interface, and this is possible in DicomObjects using an asynchronous DicomConnection object.

How to import DicomObjects in BDS 2006

This is a general question about how to import an ActiveX (NOT just DicomObjects) control in Borland Developer Studio 2006.

There are 2 possible approaches:

ListenSecure Exception

Problem: Achieving Dicom Server security in .NET using Activex DicomObjects component

I've implemented QueryServer as a windows service in .NET. When I tried to listen to a secured port using ListenSecure method of the DicomServer a COM Exception "Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT)" is thrown.

Deleting or Over-writing Files Which have been Read using ReadFile

Image files which have been read by DicomObjects using ReadFile cannot normally be deleted (or over-written using WriteFile etc.) until the file is released. This is because memory mapping is enabled (Default DicomObjects's behaviour), causing only the data actually needed at any time to be read into memory. This requires that the file be locked whilst the associated image object exists.

You can use one of the following three methods to solve this problem:

DicomObjects 64bit Registration

As VS20xx is itself a 32 bit application, even though it is compiling a 64 bit application, which uses a 64 bit OCX, it cannot ITSELF access the 64 bit OCX for intellisense, #import etc.  The standard requirements for using 64 bit COM component in VS20xx is that a 32 bit version with the same interfaces must be registered on the development machine (not of course needed for subsequent execution).


Subscribe to RSS - COM