Category: DicomObjects.COM

Auto-disconnect

Where it appears In the DicomObjects log file What caused Auto-Disconnection It’s caused by releasing the last remaining reference to a DicomConnection without first sending a status back to the remote end. This normally means: The Developer forgot to send the status back before closing the connection, or An exception occurred but was not trapped, causing the SendStatus call itself or an operation which should trigger a subsequent ActionComplete (e.

Continue reading..

Comparison of MoveImages MoveSync GetUsingMove and Move

The DicomObjects.COM version of DicomObjects provides 4 different mechanisms for initiating C-MOVE operations, and we are often asked about the differences and relative benefits. This page is therefore a summary of the differences. Why is C-MOVE so difficult? The C-MOVE protocol itself is described here There are several features of C-MOVE itself which are mode difficult to handle than most other operations, many of which related to the network problems associated with the need for a reverse association back from the server to the client - these are detailed in the page C-MOVE Problems.

Continue reading..

Controlling Printer Smoothing

Continue reading..

Converting from DicomQuery to DicomConnection for Q/R

Note: This page applies only to the COM version of DicomObjects - the threading model of the equivalent DicomAssociation object in the .NET version is very different All the DicomQuery-based operations can also be performed using a DicomConnection object, and doing so has several benefits: It allows finer control over the exact presentation contexts offered Multiple operations can occur on one association Perhaps most importantly, if the DicomConnection is asynchronous, then it provides the best solution to using C-MOVE in DicomObjects, avoiding the problems of deadlocking or lack of return status which affect some of the alternatives.

Continue reading..

Deleting Files In Delphi

This is a Delphi specific problem (Believed to be solved in Version 7 and afterwards). Getting errors when trying to delete an image file, even when the Images collection has already been cleared. See the following code: Images.ReadFile('C:\TestImage.dcm'); Images.Clear; if not DeleteFile('C:\TestImage.dcm') then ShowMessage('couldn't delete TestImage.dcm'); Using the above code, developers always hitting the red line. This is actually caused by the first line where DicomImages.ReadFile is returning a DicomImage object, which is passed (By Delphi) to a hidden variable.

Continue reading..

DicomConnection.Move

Note: This page applies only to the COM version of DicomObjects - the threading model of the equivalent DicomAssociation object in the .NET version is very different The Move method allows a C-MOVE operation to be carried out on an existing DicomConnection. This has several benefits compared to any of the DicomQuery-based alternatives: It allows finer control over the exact presentation contexts offered Multiple operations can occur on one association Perhaps most importantly, if the DicomConnection is asynchronous, then it provides the best solution to using C-MOVE in DicomObjects, avoiding the problems of deadlocking or lack of return status which affect some of the alternatives.

Continue reading..

DicomObjects COM V8 Examples

To obtain a complete package of examples and help file, please download our installer from our downloads page. If you would like to download our samples individually, the links are provided below, but please note that these samples will only work if you already have a suitable copy of DicomObjects, and if you adjust the references in the downloaded project to point to those DicomObjects and associated DLLs. If you have any questions, please contact our technical team.

Continue reading..

DicomObjects COM/ActiveX Version

For over 20 years the DICOM Toolkit (API) Library DicomObjects ActiveX/COM version has been a widespread success across the globe, and has shown itself to be a well-established and well maintained mature product. It is quite capable of being used for all task listed on the main DicomObjects page, and can be deployed and utilised in any environment which supports COM Objects (including Visual Studio with or without.NET, Delphi, Visual Basic 6, VbScript etc.

Continue reading..

DicomObjects.COM V8 versions

This page allows you to download both current and historical versions of DicomObjects.COM

Continue reading..

GetUsingMove

The GetUsingMove method is designed to allow C-MOVE to be used as easily and synchronously as C-GET from the COM version of DicomObjects, as many commonly available servers refuse to support C-GET, forcing use of C-MOVE. While MoveImages has been available in DicomObjects for some time, it is difficult to use, requiring close co-ordination between a listening object (DicomViewer or DicomServer) and a DicomQuery object. GetUsingMove handles all the necessary co-ordination internally, opening a port, receiving the images, and presenting them, just like GetImages.

Continue reading..

Importing DicomObjects.ocx into Delphi XE

DicomObjects can be imported to Delphi XE (we have tested this under XE3) as follows: Select Import component from Component option in Delphi IDE. Then select Import a Type Library from the options. From the list of registered type libraries select DicomObjects. Move on to the component selection and set pallete page to Standard. Then install as a new package. After importing the component the next step is to Install it.

Continue reading..

ListenSecure Exception


Problem: Achieving Dicom Server security in .NET using DicomObjects.COM (activeX) version

A QueryServer implemented as a windows service in .NET environment. When listen to a secured port using ListenSecure method of the DicomServer a COM Exception “Exception from HRESULT: 0x80010105 (RPC E SERVERFAULT)” is thrown.

Continue reading..

Network Transfer Syntax Control (COM)

The mechanism is quite different for the simple Send methods compared to using DicomConnection DicomImage.Send / DicomDataSet.Send For these simple method, the list of offered transfer syntaxes comes from the registry, from the default value of the following key HKEY_LOCAL_MACHINE/Software/Medical Connections/DicomObjects/TransferSyntax NOTE: The above is a Key not a value. You need to edit the list of transfer syntaxes into the default value of that key. or to change dynamically, it can be controlled by

Continue reading..

Pixel Shifting

Pixel shifting is a process used in conjunction with Mask Subtraction to correct for movement of the patient between exposures, so as to give the best alignment and therefore the best masking of fixed structures possible. In general, there needs to be a different shift factor for each frame in an image (if there has been movement between the mask and the image frames, then there is also likely to be movement between the image frames!

Continue reading..

Printing without using DicomPrint


Although DicomPrint object is designed to make printing simple and easy for developers to code, it is possible to use a more advanced DicomConnection (COM version) or DicomAssociation (.NET version) object to meet your special requirement. The code below gives a starting point for those wishing to do this themselves

Continue reading..