Upgrading to DicomObjects v8

As a result of feedback from users, we've fixed a few bugs and improved resilience, but there are also a few breaking API changes in the 3D code:


We have removed Bouncy Castle.

Why we have removed Bouncy Castle etc. from DicomObjects.NET

Encryption in DICOM is important – and it’s going to become more important as hacking continues, which is why it needs to be done properly.

Specifying outgoing IP when making a DICOM connection

      using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
                var localEP = new IPEndPoint(IPAddress.Parse("outgoingIP"), 0);  0 means any available port
                var remoteEP = new IPEndPoint(IPAddress.Parse("remoteIP"), remotePort);
                NetworkStream ns = new NetworkStream(socket, true);                

Setting TransferFunction in 3D

Sample code for general purpose colour/opacity adjustment. This might not be sensible values because this is intended purely for demonstration purposes only!

C# code snippet:

Video support with FFmpeg

Starting with version 8 we have added video support with the help of FFmpeg, a well established video codec, for handling all sorts of popular video formats. This allows importing of supported video formats, embedding them into DICOM and exporting them using the appropriate transfer syntax.

Simplifying 3D coordinate geometry in v7

All 3D calculations in DicomObjects are almost entirely in “real world” coordinated (patient X,Y,Z in mm). We have implemented a few dedicated methods to help you manipulate your 3D object or the ones that are displayed. A newly added method is DicomImage.ImagePlane() which returns an Image's plane in Plane3D form that can be used for other calculation (in real world units again), say the intersection of two Image planes, or to offset one of them by the slab thickness and to calculate that intersection, etc.

Implementing DICOM Composite Instance Retrieve Without Bulk Data

DICOM Composite Instance Retrieve Without Bulk Data is supported by DicomObjects and it's not difficult to implment.

Client Side:

The following code demonstrates how to retrieve individual instances without bulk data:

Deactivating licences

Installed licences can be deleted in different ways as described in the following steps:
  1. Programmatically - you could do something like this from your code:

.NET (C# code snippet)

Speed options for 3D rendering

Whilst DicomObjects (COM & .NET) have been optimised to provide reasonably fast 3D rendering, there are times when (depending on the capabilities of the machine, and the nature of the data) it may be necessary to use "simplified" data for interactive rendering, to give best possible response times.  In most of the cases, this is best done by activating the feature on mouse-down etc. and then disabling (returning to default values) on mouse-up etc.


Subscribe to RSS - .NET