DICOM Enhanced Imaging Objects
History The legacy CT object was standardised back in 1993 by the DICOM committee. In 2003 the DICOM WG 21 has decided that it is necessary to create a new CT object to meet the needs of modern CT technology that had evolved substantially.
Furthermore, new applications such as cardiac CT, gated studies, perfusion CT, CT fluoroscopy, contrast tracking and post-processing are not supported by the current standard at that time.
DICOM Error and Warning Codes
Below is a list of common DICOM Error/Warning Codes (not necessarily a complete list):
Code (Hex) Code (Decimal) Warning Failure Meaning 105 261 Y No such attribute 106 262 Y Invalid attribute value 107 263 Y Attribute List Error 110 272 Y Processing failure 111 273 Y Duplicate SOP instance 112 274 Y No such object instance 113 275 Y No such event type 114 276 Y No such argument 115 277 Y Invalid argument value 116 278 Y Attribute Value Out of Range 117 279 Y Invalid object instance 118 280 Y No such SOP class 119 281 Y Class-instance conflict 120 282 Y Missing attribute 121 283 Y Missing attribute value 122 284 Y SOP class not supported 123 285 Y No such action type 210 528 Y Duplicate invocation 211 529 Y Unrecognized operation 212 530 Y Mistyped argument 213 531 Y Resource limitation
There are 4 hierarchical levels in DICOM: PATIENT, STUDY, SERIES and IMAGE. Each PATIENT can have one or more Studies. Each STUDY can have one or more Series. Each SERIES can have one or more IMAGES.
Patient Root Hierarchy Study Root Hierarchy
DICOM Preamble Vulnerability
This page addresses a reported vulnerability in the preamble defined by the DICOM file format. The vulnerability could allow DICOM files stored on media to have executable malware inserted.
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
DICOM Private Elements
Why Private Data Element Implementations may require communication of information that cannot be contained in Standard Data Elements. Private Data Elements are intended to be used to contain such information.
Private Data Elements have the same structure as Standard Data Elements (i.e., Group, Element, VR, Length and Value). To distinguish private data element from Standard ones, the group number used in the Element Tag of Private Data Elements MUST be an odd number.
DICOM Router/Gateway Workflow
Very often questions are asked about DICOM Router/Gateway implementations. So this is a summary of the options.
Why Routing? It can allow multiple SCUs(Clients) perform composite and normalized DICOM operations on remote PACS Server. It can allow SCUs retrieve Images via C-GET, which is NOT supported by many PACS nowadays. The General Work Flow The general routing work flow is simple. It forwards every incoming requests, including all DICOM composite as well as normalized operations, and return meaningful status and results (if there is any) to the client, as shown in the following picture.
DICOM allows a dataset to contain other nested datasets, which are encoded as “sequences”. The point of this structure is to allow repeating groups of data, so whilst such sequences often only contain a single dataset, the format is defined such that each sequence consists of a set of datasets. Of course, this structure lends itself perfectly to recursion, and some DICOM IODs such a Structured Reporting and the Radiotherapy Extensions can use sequences nested 5 or 6 deep !
DICOM Transfer Syntax Negotiation
Transfer Syntax Negotiation in DICOM is relatively simple, but often misunderstood. It is important to understand this fully before attempting to take control using DicomObjects.
The transfer syntaxes available for network transmission depend on what is agreed between the applications during initial negotiation (and at no other time. The steps are as follows:
The SCU sends the SCP a list of “presentation contexts”, each of which has a SOP class and one or more transfer syntaxes.
The Structure of DICOMDIR DICOMDIR acts as a “Directory” for DICOM file sets and holds a full 4 level hierarchy (PATIENT –> STUDY –> SERIES –> IMAGE) as shown below:
DICOMDIR files can be read using DicomDataSets.ReadDirectory method in DicomObjects and the complex structure of linked lists with offsets is held in a single DicomDataSet object.
When accessing the DICOMDIR, you may bear in mind that different DICOM attributes (or Tags) belong to different levels, for example PatientName is a Patient Level attribute, StudyUID is a Study Level attribute, Modality is Series Level and Image Number is Image Level.
DVT is an independent DICOM Validation tool provided for free by Philips and ICT Automatisering, you can download this product from http://www.dvtk.org/
DVT provides as range of scripts that can be used to validate many aspects of DICOM.
Media Validation using DVT To validate a DICOM file open DVT and click File Choose the open option Change the Files of Type filter to ‘Session files’ Open the Media session file the location depends on where on you machine DVT is installed e.
A DICOM Dataset is the fundamental “block” of useful information in DICOM, and is used for multiple purposes:
Commands Composite Instances Normalised Instances DICOM files It consists of an ordered list of attributes, non-repeating, that may themselves be Sequences that may in turn contain nested Datasets.
The representation in DicomObjects is the DicomDataSet object.
Dicom Query Date/Time range
Formats allowed when specifying the Date/Time range in a Query:
“YYYYMMDD-YYYYMMDD” “YYYYMMDD-” ”-YYYYMMDD” “HHMMSS-HHMMSS” “HHMMSS-” ”-HHMMSS “ Combinations of date and time ranges:
Date Range: “20111001-20111002”
Time Range: “090000-100000”
For DICOM Modality Worklist query, the above date time range gives you a time span from 9AM 01/10/2011 to 10AM 02/10/2011, a range of 25 hours For standard, non-MWL query, it gives you 2 slots: 9AM-10AM on 01/10/2011 and 9AM-10AM on 02/10/2011 Note, if you are using the .
Our DicomServer is a generic DICOM server for public uses. It is built using DicomObjects and is provided for the following purposes:
A public resource for all DICOM developers to use for testing (whatever toolkit they use) A demonstration of the capabilities of DicomObjects A test bed to find possible interoperability problems, so that they may be fixed Configuraiton information for using it can be found on the site itself: http://www.
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.