Creating Secondary Capture Images
Any ‘valid’ Dicom Image is a conglomeration of Pixel data and several mandatory data attributes. To generate a Secondary Capture (SC) Image from existing non-Dicom image then all that is required is to load the required image into a DicomImage using the import function and then adding on the appropriate attributes. Dicom Objects will automatically take care of all the attributes relating to the pixel data (Group 0x0028).
Part 3 of the Dicom Standard Contains Table A.
Creating Thumbnails and Icons
There are 2 methods within DicomObjects that can be used to create a Thumbnail image (PrinterImage and SubImage). If you want to create an icon for the purpose of inclusion into the embedded icon sequence attribute (&H88,&H200) of an image then use the PrinterImage method. The reason for using PrinterImage is that the resultant image only contains minimalist image information (the &H28 group) and the icon sequence attribute only permits attributes from the &H28 group to be included.
DICOM DateTime Format
The Standard DICOM DateTime Format The standard DateTime format (YYYYMMDD) is explained in Table 6.2-1 of Part 5 of the DICOM standard.
What Format DicomObjects Accepts Simple Dates DicomObjects takes String format as well as DateTime format and turns whatever dates it is given into DICOM dates, according to the Regional Settings of the machine DicomObjects is running on, so on a European machine the value “04/03/2007” will be 20070304 in DICOM format and on a US machine it will produce 20070403.
DICOM Print Service
Printing in DICOM is unlike any other printing system used in the world, with no relation to PDF, network print protocols etc. Not surprisingly, it uses standard DICOM mechanisms, and although it is one of the original 1993 services, it is probably one of the most complex services in the standard!
There are multiple steps, all using Normalised Operations
Deleting or Over-writing Files which have been read from disk
Image files which have been read by DicomObjects using ReadFile (COM) or Read (.NET) cannot normally be deleted (or over-written using Write/WriteFile etc.) until the file is released. This is because pixel data from the files is read “as needed” (using memory mapping for COM or a duplicate FileStream for .NET). This behaviour is enabled by default, causing only the data actually needed at any time to be read into memory.
DicomObjects NET V8 examples
To obtain a complete package of examples and help file, please download our installer from here.
If you are new to DicomObjects please use the 60 day trial: TR-1207-1344-0818
If you would like to download our samples individually, you may need to update the references in the project to point to the downloaded copy of DicomObjects and its associated DLLs.
If you have any questions, please contact out technical team.
DicomObjects | DICOM API / SDK Toolkit
Overview DicomObjects is a well established and tested API / SDK Toolkit library for developers new to DICOM. It is available for both .NET and ActiveX / COM environments; designed to allow programmers to incorporate DICOM easily into their applications.
Our DicomObjects API / SDK Toolkit is designed to make DICOM development very simple, hiding most of the complexities within the toolkit, giving you a simple high-level API / SDK which can be used for just about any DICOM application.
DicomObjects.COM 64bit Registration
This article provides help for those wishing to use the 64 bit version of DicomObjects from Visual Studio (for development in any supported language, including C# or C++)
Visual Studio is itself a 32 bit application, even when it is compiling a 64 bit application, which uses a 64 bit OCX. Therefore, it cannot ITSELF access the 64 bit OCX for intellisense, #import etc. The standard requirements for using 64 bit COM component in Visual Studio is that a 32 bit version with the same interfaces must be registered on the development machine (this is not of course needed for subsequent execution).
The .NET version of our highly successful DICOM toolkit (API / SDK / Library) DicomObjects has been developed and tested over the past 20 years, and is already used in thousands of applications around the world by hundreds of developers. It may of course be used for any of the uses listed on the main DicomObjects page, and can be used in any environment which supports .NET objects (C#, VB, and many more).
Down Sampling an Image
This is a very small and quick example to show how to down size an image to an 8 bit image and resize down to ¼ of the size (50% each dimension).
DicomImage NewImage = (DicomImage)OrigImage.Clone(true); // copy the image DicomImage TempImage = OrigImage.PrinterImage(8, 1, false, ((float)0.5), new Rectangle(new Point(0,0),OrigImage.Size), true); for each (DicomAttribute a in TempImage.DataSet) // copy the attributes of the Temp image into the new image NewImage.
Drag and Drop
It is possible to drag and drop an Image between multiple DicomViewer controls even between different version of DicomObjects.
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.
Hierarchical SOP Instance
While DicomObjects can not create a Dicom Hierarchical SOP Instance dataset collection directly, however it can do much of the work for you. A Hierarchical SOP Instance Dataset collection are similar in structure to a DicomDir which DicomObjects can create automatically. Hierarchical SOP Instances are primarily used in the creation of Key Note Objects. The Structure of the Hierarchical SOP Instance is Study - Series - Instance (NO PATIENT)
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.
Host .NET Viewer on Web Page
Microsoft has defined that you cannot use the overloaded syntax for the tag to load .NET user controls into Microsoft Internet Explorer from the file system because of security concerns. Therefore if you want to host the .NET version of DicomViewer object, you have to register it into the GAC (Global Assembly Cache) before you can use it, in the same way that you use the COM version Viewer object.