Category: DicomObjects.NET

Creating DICOM Images from raw Pixel data

Sometimes we are asked the question of how to create a new DICOM image from imaging source (such as a detector) that outputs raw pixel data. With the help of DicomImage.SetPixelFile method, this becomes fairly simple. The following C# code shows how to load a single frame CT pixel data file from disk and create a new DicomImage object for display purposes only: DicomObjects.NET SetPixelFile method DicomImage img = new DicomImage(); // add all relevant group 28 attributes to image to tell DicomObjects how to display img.

Continue reading..

DICOM Extended Negotiation of User Identity

DicomObjects.NET supports extended negotation of user identity as defined in DICOM supplement 99: ftp://medical.nema.org/medical/dicom/final/sup99_ft.pdf Here is sample code for how to access this data using DicomObjects.NET SCU/Client using DicomObjects.Enums; DicomAssociation cn = new DicomAssociation(); cn.Identity = new DicomAssociation.UserIdentity(); cn.Identity.IdentityType = UserIdentityType.Kerberos; cn.Identity.ResponseType = UserIdentityResponseType.PositiveResponseRequested; cn.Identity.PrimaryField = new byte[] { 1, 2, 3, 4 }; // the Kerberos Service Ticket, or the username cn.RequestedContexts.Add(...); cn.Open(...); byte[] resp = cn.ServerResponse; // will be null is ResponseType is set to NoResponseRequested SCP/Server using DicomObjects.

Continue reading..

DicomDataSet.Value Overview

Here is a complete list of all possible .NET objects that DicomDataset.Value can return. Notes: If the data element is empty, then the return value will be null The “Allowed VM” is the value in DICOM Part 6, and is not the number of values which happen to be present for any particular element UI values are all listed in Part 6 as having a VM of 1, and hence are normally returned as strings.

Continue reading..

DicomObjects.NET V8 versions

This page allows you to download both current and historical versions of DicomObjects.NET. For details of our support policy and the different version types, please see the Lifecycle Policy Page

Continue reading..

How to show Grid in DicomViewer

Perhaps we might have done this internally and make a new DicomViewer ‘ShowGrid’ property. But that way the end users may lose some flexibilities in setting the grid style (width, color etc.etc.). For now if you would like to show the rows/columns grid before loading up any image, you can do so using the following VB code (or translate it into something else that you are using)¬†: DicomObjects.

Continue reading..

Implementing DICOM Composite Instance Retrieve Without Bulk Data


DICOM Composite Instance Retrieve Without Bulk Data is supported by DicomObjects and it’s simple to implement.

Continue reading..

LabelType: Formatted


The LabelType “Formatted” in .NET version of DicomObjects provides a very useful way to access the value of any DicomImage property. For property which has a shortcut name, you can just put the name of the property within a pair of square brackets. You can also specify the “Group” and “Element” of any particular attribute. The code shows how to use the formatted label.

Continue reading..

Network Transfer Syntax Control (NET)

Background in earlier versions of DicomObjects (both .NET & COM), the same basic mechanism was used for selecting transfer syntaxes: When initiating, they can be created specifically using Contexts.Add etc. When accepting, they can be selected specifically using Context.AcceptedTS or Reject If neither of the above is used (as most people don’t) then a default mechansim is used, based on the TransferSyntax registry hive, which allows: Setting of specific values for different SOP classes using TransferSyntax/SOP class UID A more generic setting for all other SOP classes in the TransferSyntax/ default value This system, which is described here worked well for many years, but has 3 main drawbacks:

Continue reading..

New API for control of text labels in DicomObjects V8 onwards

Continue reading..

Printing "True Size" Images

We are often asked how to persuade a DICOM printer to print images (normally plain radiographs) “TRUE” size. This is normally possible (depending on the capabilities of the printer) but is harder than expected, as the DICOM standard requires most of the relevant attributes (pixel size etc.) to be removed from an image before it is sent to the printer¬†:-( The problem is compounded by the fact that the default behaviour of almost all printers is “scale to fit” - fitting the image as best they can into the space available on the film.

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..

Problems using DicomObjects.NET from VBScript

Following our first article about how to Host .NET Viewer on Web Page, people asked questions about using DicomObjects.NET from their VB/Java scripts. We created this page to sum up some of the most commons problems, and we will continue to update this page should we get more questions/solution from our values users. Objects doesn’t support this property or method Make sure you do NOT have a com ocx version of DicomObjects registered on your computer.

Continue reading..

Querying Patient Information by Modality

It is possible to query for Patient Information using a DICOM C-FIND operation with Modality as a filter, in order to find all patients who have ever had a series with a particular modality. This can be done by a STUDY root STUDY level C-FIND query. A DoRawQuery(QueryDataSet) method in COM version of DicomObjects or Find(QueryDataSet) method in .NET version is required with ModatiesInStudy field (0008,0061) being explicitly added as a modality to search for.

Continue reading..

Registering Custom Codec with DicomObjects.NET

Contents

  • Create new CodecFactory class
  • Implement DicomObjects.DicomCodecs.IDecompressor
  • Implement DicomObjects.DicomCodecs.ICompressor interface
  • Registering your CodecFactory with DicomObjects.NET

    Continue reading..

Rendering Image as a DicomLabel


Out of the many label types available in DicomObjects.NET, LabelType.Image can be used to directly reference a System.Drawing.Image object (jpg, png, bmp, etc) and to be rendered as a DicomLabel on the viewer.

Continue reading..