DicomObjects 3D General

Medical Connections Ltd recently released COM and .NET versions of DicomObjects which incorporate 3D functionality:

  • MPR: Multi-planar reformatting
  • MIP: Maximum Intensity Projection
  • VR: Volume Rendering

 

The two versions are generally very similar, but have slight differences in the API to reflect the different underlying technologies. Select one of the links below to find more

 

QA: 3D in DicomObjects

Is DicomObjects 3D based on VTK u. ITK

No – we looked at them, but they wouldn’t really work for the deep integration with the toolkit that we needed.

Which coordinate-System do you use?

DICOM defines the directions of the patient coordinate system (X = L/R, Y = front/back, Z = head/foot), These are the coordinates we use.

Where is the origin of these coordinate-systems?

Origin is arbitrary as is not defined in DICOM.

What are the real world coordinates?

mm as specified in DICOM.

What is a 3D Multi-Slice Object?

It is a DICOM image which contains multiple 2D images in one object (i.e a self-contained 3D image).  The official DICOM term for such CT & MR objects is "enhanced“ images.

What is DicomVolume

DicomVolume is an object that really contains 3 things:

  1. The original slice data (passed through the modality transform stage as this may vary slice to slice) – stored as a DirectX 3D "texture“.   This is just the same in the end, whether the data has come from a collection of "single slices“ or from a multi-slice object – once they have been created, they are treated just the same.
  2. A 4x4 affine Matrix to relate that data to the "real world“ DICOM coordinates (this may be a skewed matrix if the original data is like this: \\\\\\ rather than ||||||||
  3. The size/centre of the volume

From this, at display time, for MPR a simple plane is calculated and „lookups“ are done into the 3D texture, or for VR, the location and direction of „rays“ are calculated and standard ray tracing is performed.

What kind of DicomLabel objects can be used in 3D?

We currently have 2 types of "label“ which can be added to a 3D image:

  1. Reference line – this is calculated in 3D space (if not parallel to the image plane!) and displayed – it does not have a limiting size – it is the whole plane which is indicated – not the dimensions/edges of the other image (hard to define in 3D!)
  2. Other shapes converted from 2D labels on the viewer to "3D labels“ on the image – allowing them to rotate and scale with the image.  These are complicated and messy as we needed to constrain them to one plane – they would be confusing if displayed on a different plane, so each one has a 2D coordinate system related to its plane, with an arbitrary "up“ (Y) direction.  These would not be easy to use for "direct“ label addition due to their dependence on a single plane.