OrthancMac OS X El Capitan

Last update : February 28, 2018

Introduction

I started the edition of this contribution in June 2015 when I did my first trials with the Orthanc server. In the meantime I created OrthancPi, a mini headless PACS server which is used to host the DICOM teaching files for RadioLogic, an educational tool for radiologists which is currently in alpha test state. It’s now time to update and finalize my post about the installation of the Orthanc server on my MacBookAir computer. The goal is the development of OrthancMac, a midi PACS server for RadioLogic which is more powerful and user-friendly than OrthancPi. Some figures included in the present post refer to earlier versions of Orthanc and to OS X Yosemite because it would be waste time to replace them all with current screenshots.

Some informations provided in the present post are trivial and redundant with my other posts about DICOM and Orthanc. I assembled them for my own needs to get familiar with Orthanc and OS X developments.

Orthanc

Orthanc is a open-source, lightweight DICOM server for healthcare and medical research. It’s now also called a VNA (Vendor Neutral Archive). Orthanc can turn any computer running Windows, Linux or OS X into a PACS  (picture archiving and communication system) system. Orthanc provides a RESTful API and is built on the top of DCMTK (collection of libraries and applications implementing large parts of the DICOM standard). Orthanc is standalone because all the dependencies can be statically linked.

The developer of Orthanc is Sébastian Jodogne, a belgian medical imaging engineer (2011) of the CHU of Liège (University Hospital) who holds a PhD in computer science (2006) from the University of Liège (ULG).

Orthanc source code

The Orthanc source code is available at Bitbucket. The latest stable Orthanc version is 1.3.1 released on November 2, 2017. Some changes have been done since that date. I downloaded the default (mainline) zip file from the Bitbucket project page and saved the unzipped orthanc folder into a directory named orthancmac located at the Mac OSX (El Capitan) desktop. My configuration is slightly different than the assumed structure in the Darwin compilation instructions, but I prefer this development setup.

The following folders and files are included in the orthanc folder :

  • Core/
  • OrthancExplorer/
  • OrthancServer
  • Plugins/
  • Resources/
  • UnitTestSources/
  • .travis.yml  (to trigger automated builds)
  • CMakeLists.txt
  • README, AUTHORS, COPYING, INSTALL, NEWS, THANKS
  • LinuxCompilation.txt and DarwinCompilation.txt

The build infrastructure of Orthanc is based upon CMake. The build scripts are designed to embed all the third-party dependencies directly inside the Orthanc executable. Cmake uses the concept Out of source Build where the build directory is separated from the source directory.

I created a folder build inside the orthanc directory and opened a terminal window inside this build folder.

cd desktop/orthancmac/orthanc/build

To prepare the build process (configuration) on Mac OS X El Capitan, I entered the following command in the terminal window :

cmake .. -GXcode -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11
-DSTATIC_BUILD=ON -DSTANDALONE_BUILD=ON -DALLOW_DOWNLOAD=ON
~/desktop/orthancmac/build

The cmake options are :

-G : specify a makefile generator
-D : create a cmake cache entry

The cmake cache entries are :

CMAKE_OSX_DEPLOYMENT_TARGET : 10.11
STATIC_BUILD : ON
STANDALONE_BUILD : ON
ALLOW_DOWNLOAD : ON

The following figure shows the configuration process when using the CMake-GUI :

Orthanc

Orthanc configuration with CMake GUI

During the configuration process, the following files have been downloaded from the website http://www.montefiore.ulg.ac.be/~jodogne/Orthanc/ThirdPartyDownloads/ :

All the files have been saved in a new folder orthancmac/orthanc/ThirdPartyDownloads. The programs SQlite3 and Python 2.7.10 have been found installed.

Configuration messages, warnings and errors

During the configuration process, the following messages, warnings and errors have been stated :

Files not found

The following files and definitions have not been found during the processing of DCMTK : fstream, malloc, ieeefp, iomanip, iostream, io, png, ndir, new, sstream, stat, strstream, strstrea, sync, sys/ndir, sys/utime, thread, unix, cuserid, _doprnt, itoa, sysinfo, _findfirst, isinf, isnan, uchar, ulong, longlong, ulonglong

Patching

The following files have been patched :

  • dcmtk-3.6.0/dcmnet/libsrc/dulfsm.cc
  • dcmtk-3.6.0/dcmnet/libsrc/dul.cc

Cmake policies

– policy CMP0042 not set
– policy CMP0054 not set
To avoid the cmake_policy warning, I added the following command to the  CmakeLists.txt file at the beginning :

if(POLICY CMP0042)
cmake_policy(SET CMP0042 NEW)
endif()
if(POLICY CMP0054)
cmake_policy(SET CMP0054 NEW)
endif()

INFOS

DCMTK’s builtin private dictionary support will be disabled
Thread support will be disabled
OS X Path not specified for the following targets:
– ModalityWorklists
– ServeFolders

DOXYGEN

Doxygen not found. The documentation will not be built.

Orthanc Xcode Building

The Build directory contains the following folders and files after the configuration and generation process :

  • AUTOGENERATED/
  • boost_1_60_0/
  • curl-7.50.3/
  • dcmtk-3.6.0/
  • gtest-1.7.0/
  • jpeg-9a/
  • jsoncpp-0.10.5/
  • libpng-1.5.12/
  • lua-5.1.5/
  • mongoose/
  • openssl-1.0.2d/
  • pugixml-1.4/
  • zlib-1.2.7/
  • CMakeFiles/
  • CMakeTmp/
  • CMakeScripts/
  • CMakeCache.txt
  • cmake_install.cmake
  • cmake_uninstall.cmake
  • Orthanc.xcodeproj

To build the project, I entered the following command in the terminal window inside the build folder :

xcodebuild -configuration Release

The build was successful, the following warnings have been issued :

  • 3 -> curl
  • 1 -> lua
  • 4 -> monggose
  • 5 -> zlib
  • 3 -> openssl
  • > 100 -> DCMTK
  • 1 -> Orthanc

The following figure shows the building process when using the Xcode GUI.

Orthanc

Orthanc Building with Xcode GUI

The eight targets are show at the left in red. To build the Release version, I modified the scheme in the Xcode-GUI. Building with the command line is much easier.

After the succesfull  build, the following folders and files were added to the Build folder :

  • Release/
  • Orthanc.build/

The Release folder contains the executables Orthanc, UnitTest and OrthancRecoverCompression, the libraries libCoreLibrary.a, libOpenSSL.a, libServerLibrary.a, libServeFolders.mainline.dylib and libModalityWorklists.mainline.dylib. These files are the targets of the Xcode building process.

Running the Orthanc server

The Orthanc configuration file Configuration.json is located in the folder orthanc-default/Resources. I copied this file into the Release folder and started the DICOM server with the command

./Orthanc Configuration.json

inside the Release folder.

Orthanc

Orthanc Server Start with Terminal Window

At the first start of the server, a new folder OrthancStorage is created inside the Release directory. The OrthancStorage folder contains the SQLite files index, index-shm and index-wal.

Entering the url localhost:8024 in the Safari address field opens the main window (explorer) of the Orthanc server.

Orthanc Explorer

Orthanc Explorer at localhost

Clicking the upload button opens an new window in the Orthanc server where I added some DICOM files from CD’s (drag and drop).

Orthanc

Uploading DICOM files with Orthanc Server

The DICOM files are saved in sub-folders in the OrthancStorage directory in a flat structure.

I modified the configuration.json file to allow the remote access to the server from another computer located in the same local network.

/**
* Security-related options for the HTTP server
**/
// Whether remote hosts can connect to the HTTP server
"RemoteAccessAllowed" : true,

The remote anonymous access is now possible. When the remote access is not allowed, the server requests a user-id and password when entering the URL in the browser address bar :

http://192.168.168.55:8042/app/explorer.html

Orthanc allows the following actions :

Action Patient Study Series Instance
protect/unprotect x
delete x x x x
send to remote modality x x x x
anonimize x x x
preview x x
download ZIP x x x
download DICOMDIR x x x
download DICOM file x
download JSON file x

Protection

Because of its focus on low-end computers, Orthanc implements disk space recycling: the oldest series of images can be automatically deleted when the available disk space drops below a threshold, or when the number of stored series grows above a threshold. This enables the automated control of the disk space. Recycling is controlled by the MaximumStorageSize and the MaximumPatientCount options in the Orthanc configuration file. It is possible to prevent patient data from being automatically recycled by using the Unprotected/Protected switch that is available in Orthanc Explorer.

Testing the server

When the UnitTests executable is launched from the terminal window in the Release folder, 163 tests from 43 test cases were run. All these 163  tests passed. Two tests were disabled.

Orthanc UnitTests

Orthanc UnitTests

Two new folders were created in the Release folder by the testing process : UnitTestsResults and UnitTestsStorage.

RESTful API

The following list shows the main RESTful commands (links work only in my local network):

  • Patients : http://localhost:8042/patients
  • Studies : http://localhost:8042/studies
  • Series : http://localhost:8042/series
  • Instances : http://localhost:8042/instances
  • Patient Name : http://localhost:8042/patients/ba1682fb-3fc01dc1-acaf1294-c0d61888-69ba054b
  • Study CT Colonne cervicale : http://localhost:8042/studies/d4c42ef2-91794610-dfda2fe3-89fff37f-6d38b159
  • Series Col. Cervicale Mou 2.0 MPR spine multi : http://localhost:8042/series/e7f7f651-aeacf5d4-a3832d08-3c7a3efa-2eff3c3a
  • Instance 4 : http://localhost:8042/instances/8d5edbe5-073a70b9-c46dcaa7-9d54a495-6dc5ed32
  • Download instance.dcm : http://localhost:8042/instances/8d5edbe5-073a70b9-c46dcaa7-9d54a495-6dc5ed32/file
  • Simplified tags : http://localhost:8042/instances/8d5edbe5-073a70b9-c46dcaa7-9d54a495-6dc5ed32/simplified-tags
  • Tags : http://localhost:8042/instances/8d5edbe5-073a70b9-c46dcaa7-9d54a495-6dc5ed32/tags
  • Content : http://localhost:8042/instances/8d5edbe5-073a70b9-c46dcaa7-9d54a495-6dc5ed32/content
  • Preview : http://localhost:8042/instances/8d5edbe5-073a70b9-c46dcaa7-9d54a495-6dc5ed32/preview

A complete grid of the Orthanc RESTful API is available as Google Spreadsheet.

Links

Orthanc Book

Google groups discussions :

Other contributions :

Mobile DICOM viewers

Last update : October 20, 2016

Note : the new versions released since spring 2016 have not yet been tested. It will be done in the coming days.

Introduction

This contribution refers to my recent updated post about DICOM image viewers. Mobile DICOM viewers are becoming more and more popular. They are very useful in the context of medical applications in the cloud.

Most web viewers can be used on mobile equipments (tablets, smart phones, …), but the focus of this post are native applications designed for Apple iOS or Android devices. DICOM Web viewers are handled in a separate contribution. In the present list I considered only those applications that have been updated after January 2014, with some exceptions.

Test Scenario

To test the selected apps, I used Orthanc (Windows versions 0.9.5 and 0.9.6) as PACS server. To have realistic DICOM samples,  I uploaded some DICOM studies from me and from family members relative to exams done in the past in hospitals in Luxembourg and France.

To set up a communication between a DICOM viewer and the Orthanc server, the viewer should allow to define the following parameters in the settings :

  • Remote AET
  • Remote Hostname/IP
  • Remote port number
  • Local AET
  • Local port number
  • Protocol : C-MOVE

The local IP is the address of the used mobile device.

If no settings are available for the port numbers, the port number of the server can be added to the remote IP address. The standard port number 104 can be tried as a first guess for the settings of the viewer. If no local AET settings are provided, the iPad name can be tried as a first guess. Another possibility is to use a DICOM network analyser like DVTk to detect unknown parameters. If the C-MOVE protocol is not supported by the viewer, the WADO or C-GET protocols can be an alternative.

In the presentation of the selected mobile viewers, I generally used the terminology published by the developers, even if I disagree with their claims.  In the case of apps that worked as expected with the Orthanc server, I added some screenshots to show the look-and-feeling of the viewer.

Purpose of the evaluation

You may ask what is the purpose to evaluate proprietary closed source applications in an open source environment. I started the evaluation in mid-2015 in the context of the development of an educational tool for radiologists, called RadioLogic. The reasons were various :

  • to familiarize with the DICOM technologies (learning by doing)
  • to compare the performance of native apps with HTML5 web apps on tablets and phones
  • to explore the different types of graphical user interfaces to create a best-of-breed GUI for the RadioLogic project
  • to examine the assets of viewers certified / cleared by FDA or CE
  • to test features that are not (yet) available on HTML5 web apps

iOS Applications

DICOM

Mobile DICOM viewers (icons) arranged in a folder on the iPad Desktop

The following DICOM viewer apps, which are currently available at the AppStore, have been tested. They are arranged and listed in alphabetical order :

1. aycan mobile

aycan mobile is an iPad app which allows to receive and display DICOM images in an easy, secure and fast way. Developed by aycan Digitalsysteme GmbH, the current version 1.08.000 was updated on July 22, 2015. The viewer works only with the aycon DICOM workstation, which is based on Osirix. A demo server with ID and password “aycan” allows to explore some demo studies. A subscription is required to use all features of the the ayMobile communication service. A free 30-days-trial subscription can be ordered on the aycan website.

2. DICOM-AVC

DICOM-AVC is available for iPad and iPhone. The current free version is 2.2 has not been updated since July 12, 2012. It has been developed by the The New Medical Product Server LLC who claims that DICOM-AVC is a complete real-time collaborative imaging and videoconferencing tool which was once the number one downloaded app on the AppStore. To use the app, registration of an account is required, which can be upgraded to a premium account for 19.99$ per year. Today it’s displayed as black screen on my iPad.

3. DICOM Mobile

Dicom Mobile is a simple but powerful DICOM viewer for iPhone and iPad, developed by Luigi Orso. The current version is 1.4.0, updated on June 3, 2015. The price is 2.99$, with additional in-app purchases for extensions. The developer provides support on his website. DICOM files can be loaded from a DropBox account or from a Web server, but not from a PACS server.

DICOM Mobile Menu

DICOM Mobile Main Menu

DICOM Mobile Dropbox Panel

DICOM Mobile Dropbox Panel

4. DICOM Viewer HD

The free version 1.0 of DICOM Viewer HD was released on July 4, 2014, by Wingspan Xi’an Electronic Technology Co., Ltd from China. I was not able to evaluate the app, the login or registration in the “User Manageer” always fails.

5. DICOM IR

DICOM IR is one of the easiest and most intuitive 2D DICOM Image viewers for iOS. DICOM IR can browse any standard PACS server. DICOM IR is developed by Pietro Zuco, a freelance mobile developer based in London/Tokyo/Barcelona. Pietro Zuco has a solid experience developing 2D games, utilities, educational and entertainment applications on iOS and OSX systems. Version 1.0 of DICOM IR was released on July 25, 2015 and is free for a limited time. The app supports C-ECHO, C-FIND and C-MOVE queries.

DICOM IR has a very clean GUI, an excellent user guide, a perfect configuration panel, a performant viewer and it works as expected with the Orthanc server. My compliments to this author.

DICOM IR PACS Server Configuration Panel

DICOM IR PACS Server Configuration Panel

DICOM IR User Guide

DICOM IR User Guide

DICOM IR search panel

DICOM IR search panel

DICOM IR Metadata Info panel

DICOM IR Metadata Info panel

DICOM IR image viewer panel

DICOM IR image viewer panel with line tool

6. iDO Viewer

The iDO medical image viewer is quickly becoming the next generation in mobile medical image viewing by combining multi-modality imaging with individualized physician workflow. Developed by EBM Technologies, Incorporated, the current version 1.1.4 was updated on March 30, 2016. This application requires the EBM iDO server, demo servers to view sample data and basic features of the app are available and can be selected in the settings panel.

7. imageFlow.mobile

imageFLOW.mobile is the best-in-class mobile application for medical imaging PACS users on iOS devices. imageFLOW is developed by imagitive GmbH. The current free version 2.0, based on Imagitive’s DaVinci framework, was updated on November 25, 2015. A DemoServer mode to explore some DICOM studies is enabled by default. A PACS server can be configured in the general iOS settings, nevertheless access trials failed with a “Server Authentication” error message.

8. iMango

iMango is the iOS adaptation of the famous Mango DICOM viewer developed at the Research Imaging Institute (RII), an Organized Research Unit (ORU) of the University of Texas Health Science Center at San Antonio. It works on iPad’s. The current version 1.3 was updated on June 10, 2015. The price is 14.99$. A PACS server can be configured in the general settings and the app works as expected with the Orthanc server. iMango also supports the WADO protocol.

iMango Transfer Options Panel

iMango Transfer Options Panel

iMango Server Configuration Panel

iMango Server Configuration Panel

iMango User Guide

iMango User Guide

iMango image viewer with about panel

iMango image viewer with about panel

iMango image viewer with metadata info panel

iMango image viewer with metadata info panel

iMango image tools

iMango image tools

9. iPaxera

iPaxera is one of the fastest and easy to use PACS viewing applications specifically designed for viewing and navigating studies with your iPad, iPhone, and iPod. iPaxera is developed by Paxeramed Corp, a world leading medical imaging solution developer based in Boston, that develops a full range of medical imaging solutions. The current free version 3.10 was updated on May 4, 2016. A PACS server can be configured in the “Add Node” panel. Ipaxera works as expected with the Orthanc server. The app also supports the WADO protocol.

Onn Akbar Ali reported that Ipaxera can display multiframe Jpeg images ( such as angiography ) quite well.

iPaxera login panel

iPaxera login panel

iPaxera PACS server configuration panel

iPaxera PACS server configuration panel

iPaxera search panel

iPaxera search panel

iPaxera worklist panel

iPaxera worklist panel

iPaxera image viewer with measure tool and series list panel

iPaxera image viewer with measure tool and series list panel

10. iTA View

iTA VIEW is a viewer for DICOM and DICOM RT objects developed for iPad and dedicated to radiotherapy. The app is developed by Tecnologie Avanzate TA srl in Italy. The current version 1.2.0 was updated on March 8, 2016. The app works with the Orthanc server. To transfer studies without limitations, an upgrade to the full version is required. The price for the upgrade is 29.99 EUR.

ITA View PACS server configuration panel

ITA View PACS server configuration panel

ITA View User Guide

ITA View User Guide

ITA View worklist panel

ITA View worklist panel

ITA View database panel

ITA View database panel

ITA View image viewer

ITA View image viewer

11. Jack Imaging Medical Image Viewer

Jack Imaging Medical Image Viewer is a medical image viewer for the iPad that makes use of nephosity’s patent pending technology, the latest in medical imaging innovation. It supports reading the DICOM format and the most common imaging modalities. The viewer is developed by Nephosity Inc. The current version 3.0.5 was updated on January 25, 2016. The prize is 0.99$. The viewer works only with the Jack Imaging platform which  stores the DICOM data in the cloud. Currently Amazon’s cloud infrastructure is used to provide the best performance and highest security levels. During a beta phase the Jack Imaging platform accounts are offered for free. On 4th generation iPads the Jack Imaging viewer offers FDA cleared capabilities.

11. Keiron

Keiron is an innovative App that allows you to view, annotate and analyse radiographic images stored in the DICOM standard. The current free version 1.0 was released on May 4, 2015. Keiron is developed by Digital Video S.p.A., the creator of Toonz. A PACS server can be configured in the settings, but only the ECHO and C-FIND queries are working with the Orthanc server. The “download” button to load DICOM instances is disabled.

Keiron serevr & client configuration

Keiron server & client configuration panels

Keiron viewer settings

Keiron viewer settings panel

Keiron worklist panel

Keiron worklist panel

12. LEADTOOLS MedicalWebViewer

The LEADTOOLS Medical Web Viewer is a zero footprint solution available for iPad and iPhone, developed by Leadtools Technologies Inc. The current free version 3.0 was updated on May 27, 2016. The viewer works only with LEAD’s web servers so you can quickly access the features of the LEADTOOLS Medical Web Viewer Framework SDK with the default settings.

13. loDicom Viewer

loDicom Viewer allows you to view, archive and transfer 2D medical images in DICOM format. Developed by Luigi Orso, the current version 4.1.1 was last updated on July 30, 2014. The price is 12.99$. The developer is also the author of the DICOM Mobile viewer. He provides support on his website, which is not useless, because the app crashes systematically on my iPad. ECHO tests with the Orthanc server are succesful, but a C-FIND query leads to a crash. I was only able lo load DICOM files via a DropBox. The GUI is not very intuitive, the user guide is not very helpful.

loDICOM viewer PACS server configuration

loDICOM Viewer PACS server configuration panel

loDICOM Viewer

loDICOM Viewer ECHO Test panel

loDICOM Viewer image panel

loDICOM Viewer image panel

loDICOM Viewer user guide

loDICOM Viewer user guide

14. MedFilm

MedFilm is a fast dicom viewer developed by Fuli Wu, a researcher at the Zhejiang University of Technology in Hangzhou, China. The app is available for iPad and iPhone. The current free version 4.25 was updated on June 1, 2016. A PACS server can be configured with support of the WADO protocol. The C-MOVE protocol is not supported.

MedFilm

MedFilm DICOM file and image panels

15. Med View

Med View is developed by Matthias Rudolph and available for iPad and iPhone. The current free version 1.1 was updated on October 23, 2015. DICOM files can be loaded from the iTunes file sharing service or from FTP servers.

16. Mobile MIM

The Mobile MIM software program is used for the viewing, registration, fusion, and/or display for diagnosis of medical images from various modalities. Developed by MIM Software Inc., the current version 4.0 was updated on July 26, 2016. Image data can only be transferred to the device by using MIMcloud or MIM 5.1+ workstation software.

17. mRay

mRay, developped by mbits, is available for iPad and iPhone. The current free version 4.1.6 was updated on October 4, 2016. mRay is a CE certified and approved medical product. To be able to receive images in mRay from your PACS, the mRay Server Software must be installed, which can be used free of charge for an evaluation period.

18. MyXray

MyXray is an easy and intuitive app that will let you see your x-ray files as a real doctor. The free version 1.0 was released on September 8, 2015. The app is developed by Pietro Zuco, the author of the outstanding DICOM IR app. MyXray is a lite version of DICOM IR without support of DICOM communications.

19. Nuance PowerShare

Nuance PowerShare Mobile gives you instant access to your medical images and reports stored on the Nuance PowerShare Network using your iOS device. The free version 5.5.10 was updated on August 16, 2016. I was not able to load this app from the AppStore.

20. OsiriX HD

OsiriX HD is the iOS adaptation of the famous OsiriX DICOM viewer, running on Mac OSX,  which is considered as a reference for DICOM image viewers. It works on iPhone’s and iPad’s. The current version 4.2 was updated on October 14, 2016. The price is 49,99$, with additional inline sales. Osirix HD can be configured in the general settings. The app works as expected with the Orthanc server and supports also the WADO protocol.

Osirix HD PACS Server configuration panel

Osirix HD PACS Server configuration panel

Osirix HD Exams Panel

Osirix HD Exams Panel

osirixhd_split_screen

Osirix HD Split Screen in image viewer

Osirix HD Image viewer

Osirix HD Image viewer with stack of 20 instances

osirixhd_metadata

Osirix HD Metadata Panel

21. PACS DICOM Viewer

PACS DICOM Viewer app is a free, vendor-neutral PACS browser and DICOM viewer which works on iPad. It is developed by Logicpond Inc, a California based product design and development solutions company. The current version 2.1.1 was updated on November 11, 2015. The viewer can be configured to work with the Orthanc server, but the C-MOVE queries are aborted during the image transfer. The WADO protocol  is also supported  and works with Orthanc.

PACSDICOM Viewer startup picture

PACSDICOM Viewer startup picture

PACSDICOM Viewer configuration panel

PACSDICOM Viewer configuration panel

PACSDICOM Viewer search panel

PACSDICOM Viewer search panel

PACSDICOM Viewer worklist

PACSDICOM Viewer worklist panel

PACSDICOM Viewer download success

PACSDICOM Viewer download success

PACSDICOM Viewer images with rainbow LUT

PACSDICOM Viewer images with rainbow LUT

PACSDICOM Viewer metadata panel

PACSDICOM Viewer metadata panel

22. R-Site Mobile

R-Site Mobile for IOS supports 2D, 3D and MIP/MPR operations for DICOM files. To use this app, you have to own at least one set of R-Site PACS. R-Site is developed by DJ HealthUnion Systems Corporation in China. The current version 1.0.2.47 was updated on August 31, 2016.

23. ResolutionMD

ResolutionMD enables doctors to securely view patient images and reports from a wide variety of computers and mobile devices, collaborate with other practitioners and diagnose from any location. The product requires access to a configured ResolutionMD Server. It contains a demo mode to allow to experience the full functionality of ResolutionMD on a variety of anonymous patient images. ResolutionMD is devloped by Calgary Scientific Inc. The free version 5.3.3. was updated on July 19, 2016.

Android Versions

DICOM Android apps on Samsung Galaxy Tablet 2 - 7.0

DICOM Android apps on Samsung Galaxy Tablet 2 – 7.0

The following iPad applications are also available as Android version on Google Play Store (in alphabetical order) :

3a. DICOM Mobile

The current Android version 1.3.2 of DICOM Mobile was updated on August 13, 2014. The price is the same as for the iOS version : 2.99$. The GUI and the features of the viewer are also identical to the iOS version. DICOM images can only be loaded from DropBox or from other web servers.

Android DICOM Mobile menu panel

Android DICOM Mobile menu panel

9a. iPaxera

The Android free version 2.0.1 of  iPaxera was updated on September 15, 2016. This app requires Android 4.4 or greater and I was not able to test it on my Samsung Galaxy tablet running Android 4.2.2. A few days later I changed my Blackberry phone with an LG Spirit phone running Android 5.0.1. After installing iPaxera on this phone, I noticed that the Android version is different from the iOS version and allows no PACS server configuration, but only dowloads of DICOM files from Dropbox or iTune sharing.

10a. iTA View

The Android free, but limited, version 1.10 of iTA View was updated on October 27, 2014. An in-app upgrade priced 26.99 EUR is available through the Google Play Store.

iTA

iTA View PACS server configuration panel

iTA

iTA View settings panel

iTA

iTA View search panel

12a. LEADTOOLS MedicalWebViewerDemo

The Android version of the LEADTOOLS MedicalWebViewer is the online live demo of the Medical Web Viewer Framework included with LEADTOOLS PACS Imaging and Medical Imaging Suite. The current version 1.4.1 was updated on February 2, 2014.

17a. mRay

The Android free version 4.1.6 of  mRay was updated on September 23, 2016. The mRay app can not be used without the installation of the mRay Server Software.

Android Applications

The following DICOM viewers are only available as Android version (in alphabetical order) :

24. Dicomite

Dicomite is a free and powerful DICOM viewer with intuitive and simple user interface, optimized for use on multi-touch devices. Dicomite is developed by Samsung MNO Lab. The current version 1.7.1 was updated on October 11, 2016. To display images they must be downloaded into the local memory with an Internet browser.

DICOMITE

DICOMITE image panel

25 Direct DICOM

The Direct DICOM Viewer is developed by Hui Zhang. The current version 1.2.4 was updated on March 21, 2015. To display images they must be downloaded into the local memory with an Internet browser. The app works however as DICOM server and local DICOM files can be stored to the Orthanc server.

Direct Dicom viewer image and metadata panels

Direct Dicom viewer image and metadata panels

Direct Dicom viewer server and store (push) panels

Direct Dicom viewer server and store (push) panels

26. Droid Dicom Viewer

The Droid Dicom Viewer was developed by Pierre Malarme. The free current version 3.2.3 was updated on May 17, 2011. Droid Dicom Viewer is a Free and Open Source Software (FOSS) licensed under the terms of the GNU General Public License. To display images they must be downloaded into the local memory (cache) with an Internet browser.

Droid DICOM viewer about panel

Droid DICOM viewer about panel

Droid DICOM viewer cache panel

Droid DICOM viewer cache panel

Droid DICOM image panel

Droid DICOM image panel

Droid DICOM viewer image panel with

Droid DICOM viewer image panel with LUT/CLUT

27. DroidRender

DroidRender is a 3D DICOM viewer for Android, including DICOM file support by GDCM,
volume rendering and tissue segmentation and display. Developed by Startm, the current version 3.2.0 was updated on August 26, 2016. The app proposes in-app purchases at prices between €1.04 – €104.08 per item and displays ads at the bottom of the screen. To display images they must be downloaded into the local memory (cache) with an Internet browser.

Droid Renderer

Droid Render image panel

28. Mobile Dicom

Mobile Dicom is a free Android Mobile Dicom (Diconde) Viewer application which is based on opensource OFFIS DCMTK as its backend library. Inspired by opensource community and in the hope of extending usage of the library on Android devices, the Mobile Dicom / Diconde tool was created by Feng Gao. The current version 2.4 was updated on November 23, 2015. To display images they must be downloaded into the local memory (cache) with an Internet browser. The app works however as DICOM server and can store local DICOM files tthe Orthanc server.

Mobile Dicom Viewer about and config panels

Mobile Dicom Viewer start and about panels

Mobile Dicom Viewer load and config panels

Mobile Dicom Viewer load and config panels; ECHO test was succesfull

Mobile Dicom Viewer image and metadata panels

Mobile Dicom Viewer image and metadata panels

29. simplyDICOM

Simply DICOM is currently in public beta. It should work with any uncompressed DICOM images, downloaded into the local memory. The viewer has a minimal interface to keep the focus on the images themselves. The developer is Christopher Boyd. The current version 0.7.3 was updated on May 27, 2015. To display images they must be downloaded into the local memory (cache) with an Internet browser.

Simply DICOM

SimplyDICOM image viewer

DICOM file downloads

If DICOM files are served with the extension .dcm or/and with the content type application/dicom, they are recognized as DICOM images in iOS Safari and can be opened directly in the following DICOM viewers : MedFilm, MyXray, Osirix HD, DICOM IR, iMango or Dicom Mobile.

Safari .dcm files

.dcm files recognized as DICOM images in iOS Safari browser by DICOM viewers

DICOM files embedded in .zip archives are recognized by the same DICOM viewers in the iOS Safari browser.

Safari .zip files

.zip files recognized in iOS Safari browser by DICOM viewers

On Android devices, DICOM files are only recognized by the DIRECT DICOM viewer in the Android browser, but they can be downloaded in the /storage/emulated/0/Download/ folder where they are accessible by most Android DICOM viewers.

Android DICOM file download panel

Android DICOM file download panel

Links

The following list provides links to mobile applications which are not DICOM viewers, but related to medical imaging (in alphabetical order) :

Conclusions

Among the 29 tested native mobile DICOM viewers, 18 are iOS apps, 6 are Android apps and 5 are available on the two platforms. 9 viewers can be configured to access a vendor-neutral PACS server, but only 5 of them work as expected and comply with the Orthanc PACS server. Among them are the three renowned commercial viewers iMango, iTA View and Osirix (priced between 15 and 50 USD), one free app (iPaxera) developed by a world leading medical imaging solution provider (Paxeramed Corp) and one app (DICOM IR) created by an independent free-lance developer ( Pietro Zuco). The other 4 configurable viewers are limited, partially disabled or crashing.

The remaining viewers are demo apps working with proprietary PACS systems, displaying only DICOM files loaded from DropBox or from another web server or crashing and working not at all. There are additional DICOM viewer apps in the AppStore and the Google PlayStore which are not listed because they were not updated in the last two years.

My two cents

I was shocked to see that most native mobile apps in the medical domain are not state of art. Apps in the stores which have not been updated in the last few years, text errors in the menus, program errors in the logic ( 2 viewers change the AETitle during communications), crippled GUI’s when the orientation of the device changes, wrong version numbers in the about panel etc, are testimonies of the poor quality.

DICOM image viewers

Last update : May 30, 2016

Referring to my recent post about the DICOM standard, this contribution presents an overview about an important entity in the medical imaging workflow : DICOM image viewers. The list is not exhaustive; I did the following segmentation to present my personal selection of current DICOM image viewers :

  1. Reference viewer
  2. Reference toolkits
  3. Open source viewers
  4. Free proprietary viewers
  5. Licensed commercial viewers
  6. Mobile viewer apps
  7. Other viewers

1. Reference DICOM Viewer

Today one project is generally considered as a reference for DICOM applications : OsiriX.

OsiriX

The OsiriX project started in November 2003. The first version was developed by Antoine Rosset, a radiologist from Geneva, Switzerland, working now at the La Tour Hospital  in Geneva. He received a grant from the Swiss National Fund to spend one year in UCLA, Los Angeles, with Prof. Osman Ratib, to explore and learn about medical digital imaging. In October 2004, Antoine Rosset went back to the Geneva University Hospital in Switzerland, to continue his career as a radiologist, where he published an OsiriX reference article in June 2004 in the Journal of Digital Imaging. Joris Heuberger, a mathematician from Geneva, joined the project in March 2005 on a voluntary fellowship of 6 months in UCLA, Los Angeles. In June 2005, OsiriX received two prestigious Apple Design Awards : Best Use of Open Source and Best Mac OS X Scientific Computing Solution. Osman Ratib, Professor of Radiology in UCLA, returned to Geneva at the end of 2005 as the chairman of the Nuclear Medicine service.

In March 2009, Antoine Rosset, Joris Heuberger and Osman Ratib created the OsiriX Foundation to promote open-source in medicine. In February 2010, Antoine Rosset and Joris Heuberger created the company Pixmeo to promote and distribute the OsiriX MD version, certified for medical imaging. This version complies with the European Directive 93/42/EEC concerning medical devices. The price for a single licence is 678 EUR. The free lite version can be downloaded from the OsiriX website, the source code is available at Github.

OsiriX runs on Mac OSX and is released under the version 3 of the GNU Lesser General Public License. The current version is 7.0 and was released on December 7, 2015. Osirix can also be configured as a PACS server. The power of OsiriX can be extended with plugins.

OsririX Lite

OsririX Lite

An Osirix HD version for the iPad is available at the AppStore for 49,99 EUR.

2. Reference DICOM toolkits

DICOM toolkits are more than simple viewers; they are a complete set of tools, code samples, examples, documentation, tutorials etc to develop great healthcare applications.

DCMTK

DCMTK is a collection of libraries and applications implementing large parts the DICOM standard. It includes software for examining, constructing and converting DICOM image files, handling offline media, sending and receiving images over a network connection, as well as demonstrative image storage and worklist servers. DCMTK is is written in a mixture of ANSI C and C++. It comes in complete source code and is made available as open source software.

DCMTK is an ancestor of DICOM applications. In 1993, before the official release of the standard, a DICOM prototype implementation was created by OFFIS, the University of Oldenburg and the CERIUM (Centre Européen d’Imagerie à Usage Médical) research centre in Rennes (France) on behalf of the European Committee for Standardization (CEN/TC251/WG4).

The current version of DCMTK is 3.6.1, released in June 2015. The related snapshot is available at the dicom.offis.de website. DICOMscope is the related free DICOM viewer which can display uncompressed, monochrome DICOM images from all modalities and which supports monitor calibration according to DICOM part 14 as well as presentation states. DICOMScope 3.6.0 for Windows, implemented in a mixture of Java and C++, was released in 2003. DICOMscope can’t be installed on newer Windows systems (Vista, Windows 7, Windows 8.1), an error 105 (setup.lid missing) is issued.

DICOMscope

DICOMscope version 3.5.1 (archive image)

Some DCMTK modules, especially those that are not part of the free toolkit, are covered by a separate license which can be found in the COPYRIGHT file in the corresponding module directory. These tools can be evaluated during a period of four months, any further use of the software requires a full licence agreement, free of charge.

The following sub-packages are part of DCMTK :

  • config: configuration utilities for dcmtk
  • dcmdata: a data encoding/decoding library and utility apps
  • dcmimage: adds support for color images to dcmimgle
  • dcmimgle: an image processing library and utility apps
  • dcmjpeg: a compression/decompression library and utility apps
  • dcmjpls: a compression/decompression library and utility apps
  • dcmnet: a networking library and utility apps
  • dcmpstat: a presentation state library and utility apps
  • dcmrt: a radiation therapy library and utility apps
  • dcmsign: a digital signature library and utility apps
  • dcmsr: a structured report library and utility apps
  • dcmtls: security extensions for the network library
  • dcmwlm: a modality worklist database server
  • dcmqrdb: an image database server
  • oflog: a logging library based on log4cplus
  • ofstd: a library of general purpose classes

Each sub-package (module) contains a collection of sub-modules (functions). For example, the networking library dcmnet contains the following command line tools :

  • dcmrecv: Simple DICOM storage SCP (receiver)
  • dcmsend: Simple DICOM storage SCU (sender)
  • echoscu: DICOM verification (C-ECHO) SCU
  • findscu: DICOM query (C-FIND) SCU
  • getscu: DICOM retrieve (C-GET) SCU
  • movescu: DICOM retrieve (C-MOVE) SCU
  • storescp: DICOM storage (C-STORE) SCP
  • storescu: DICOM storage (C-STORE) SCU
  • termscu: DICOM termination SCU

dcm4che

dcm4che2 is a collection of open source applications and utilities for the healthcare enterprise developed in the Java programming language. dcm4chee2 is a DICOM Clinical Data Manager system.

dcm4che2 contains a number of useful sample applications that may be used in conjunction with dcm4chee, with another archive application, or to operate on DICOM objects in a standalone fashion. A list of the dcm4che2 utilities is shown hereafter :

  • dcm2txt- Convert a DICOM object to text
  • dcm2xml- Convert a DICOM object to XML
  • dcmdir- Manipulate a DICOM dir
  • dcmecho – Initiate a C-ECHO command as an SCU
  • cmgpwl – Query a General Purpose Worklist SCP
  • dcmmwl – Query a Modality Worklist SCP
  • dcmof – Simulate an Order Filler application
  • dcmqr – Perform C-FIND, C-GET and C-MOVE operations as an SCU
  • dcmrcv – DICOM receiver (C-STORE SCP)
  • dcmsnd – Perform C-STORE operations as an SCU
  • dcmups – Unified Worklist and Procedure Step SCU
  • dcmwado – Initiate DICOM WADO requests
  • jpg2dcm – Convert a JPEG image to DICOM
  • logger – Log files to a Syslog destination
  • mkelmdic – Create the serialized dcm4che2 DICOM Dictionary
  • mkuiddic – Create the dcm4che2 UID dictionary
  • mkvrmap – Create the dcm4che2 VR Mappings
  • pdf2dcm – Convert a PDF document to DICOM
  • rgb2ybr – Convert pixel data from YBR to RGB format
  • txt2dcmsr – Convert text to a DICOM Structured Report
  • xml2dcm – Convert XML to DICOM

The dcm4che history states that back around the year 2000, Gunter Zeilinger wrote the popular JDicom utility suite using commercial Java DICOM Toolkit (JDT). After this experience, he decided to develop his own toolkit and to name it after Che Guevara.
dcm4che and dcm4chee are licensed under an MPL/GPL/LGPL triple license, similar to Mozilla.

The dcm4che DICOM viewer is called Weasis. The current version is 2.0.4, released on June 23, 2015.

WEASIS version 2.0.4

WEASIS version 2.0.4

Grassroots DICOM

Grassroots DiCoM is a C++ library for DICOM medical files. It is accessible from Python, C#, Java and PHP. It supports RAW, JPEG, JPEG 2000, JPEG-LS, RLE and deflated transfer syntax. It comes with a super fast scanner implementation to quickly scan hundreds of DICOM files. It supports SCU network operations (C-ECHO, C-FIND, C-STORE, C-MOVE).

The current version is gdcm-2.6.3, released on January 27, 2016. The GDCM source code is available at Github. A Wiki is available at Sourceforge, a reference to GDCM is available at Wikipedia. The project is developed by Mathieu Malaterre (malat) from Lyon, France.

3. Open Source DICOM Viewers

Most open source DICOM viewer projects are web viewers based on HTML5, CCS3 and Javascript. The big advantage of these viewers is the cross-platform compatibility; they can be used with any modern browser.

DICOM web viewers are presented in a separate contribution. Among them are the following open source projects :

  • Cornerstone
  • DWV
  • Papaya
  • jsDICOM
  • webDICOM
  • dcmjs

There are also some non web open source DICOM viewers :

  • 3DSlicer
  • 3DimViewer

3DSlicer

3D Slicer is a free and open source software package for image analysis and scientific visualization. It’s more than a simple DICOM viewer. This outstanding project started as a masters thesis project between the Surgical Planning Laboratory at the Brigham and Women’s Hospital and the MIT Artificial Intelligence Laboratory in 1998.

3D Slicer is written in C++, Python, Java and Qt and can be compiled for use on multiple computing platforms, including Windows, Linux, and Mac OS X. 3D Slicer needs a powerful computer to run. The current version is 4.5.0-1, released on November 11, 2015. It’s distributed  under a BSD style, free, open source license. More than 50 plug-ins and packages of plug-ins are available.

3D Slicer

3D Slicer

The main developers are now Steve Pieper, Slicer’s principal architect and Ron Kikinis, Principal Investigator for many Slicer-related projects. The names of all contributors are available at the 3D slicer.org website.

3DimViewer

3DimViewer is a lightweight 3D viewer of medical DICOM datasets distributed as open source software. The viewer is multiplatform software written in C++ that runs on Windows, Linux and Mac OSX systems.

3DimViewer is developed by 3Dim Laboratory s.r.o., a company specializing in applications of modern computer graphics in medicine and developing innovative solutions. Founded since 2008, the company focuses on medical image processing, 3D graphics, geometry processing and volumetric data visualization. The company office is located in Brno, Czech Republic, next to many high tech companies inheriting the spirit of South Moravian Innovation Centre.

3DimViewer

3DimViewer version 2.2

The current version of 3DimViewer is 2.2, released on February 6, 2015. Several plugins are available to extend the functions. Binaries are available for download on the 3DimLab website, source code is available at BitBucket.

GDCMviewer

GDCMviewer is the simple tool that show how to use vtkGDCMImageReader. It is basically only just a wrapper around GDCM. The tool is meant for testing integration of GDCM in VTK.

4. Free Proprietary DICOM Viewers

Most free proprietary DICOM viewers are copyrighted by their owner and are available for use, as is, free of charge, for educational and scientific, non-commercial purposes. Some of them are included on DICOM CDs provided by the hospitals to the patients.

Mango

Mango (short for Multi-image Analysis GUI) is a viewer for medical research images, developed by Jack L. Lancaster, Ph.D. and Michael J. Martinez at the University of Texas.

There are several versions of Manga available :

  • Manga Desktop, a Java application running on Windows Mac OSX and Linux
  • iMango, running on iPads and available at the AppStore
  • webMango, running as a Java applet
  • Papaya, running as HTML5 application in all browsers

The software and data derived from Mango software may be used only for research and may not be used for clinical purposes. If Mango software or data derived from Mango software is used in scientific publications, the Research Imaging Institute UTHSCSA must be cited as a reference.

Mango DICOM viewer

Mango DICOM viewer

Orpalis

The Orpalis DICOM Viewer is a free tool for medical staff to view DICOM files. The current version 1.0.1, released on June 20, 2014, should run on any 32- or 64-bit Windows System, but I experienced serious problems on my Windows 8.1 system (thumbnails are not displayed, frequent viewer crashes, …). The ORPALIS DICOM Viewer is based on the GdPicture.NET SDK.

Orpalis DICOM viewer

Orpalis DICOM viewer

MicroDICOM

MicroDicom is an application for primary processing and preservation of medical images in DICOM format, with an intuitive user interface and being free for use and accessible to everyone. MicroDicom runs on Windows, the current version is 0.9.1, released on June 2, 2015.

MicroDicom viewer

MicroDicom viewer

EMV Medical Viewer

The EMV viewer is developed by Escape, which was founded in 1991 and is based in downtown Thessaloniki, Greece. EMV 4 for Windows was released on October 10, 2014, EMV 4.4.1 for Mac OSX was released on July 21, 2015.

You can download and evaluate the software for free, but you need a license for using it in a commercial environment. The price for one license is 245 EUR, for use on up to three computers.

5. Licensed commercial DICOM viewers

Photoshop

Since version 10 (CS3) launched in April 2007, Photoshop provides a comprehensive image measurement and analysis tools with DICOM file support.

Photoshop CS3 with DICOM support

Photoshop CS3 with DICOM support

DICOMIZER

Dicomizer is a Point-Of-Care Imaging and Reporting tool provided by H.R.Z Software Services LTD in Tel-Aviv, Israel. The company is specialized in developing Medical Device, Healthcare IT, DICOM and HL7 solutions and provides medical imaging consultation, development services and professional courses. The company was founded in 2002 (formerly RZ Software Services) by Roni Zaharia, a medical imaging and connectivity expert, who is acting as its CEO. Roni Zaharia is the author of the blog DICOM is easy, providing useful news about medical images and an outstanding DICOM tutorial. Dicomizer works on Windows, the current version is 5.0. The price of a licence is $470 USD, a free evaluation version is available. The annual update costs are  $120 USD. Dicomizer can also be used as an DICOM image generator.

DICOMIZER

DICOMIZER version 4.1

H.R.Z Software Services LTD provides also the following medical toolkits :

  • RZDCX : Fast Strike DICOM Toolkit
  • DSRSVC : extensible DICOM Server (PACS) for OEM
  • HL7Kit Pro : WYSIWYG HL7 Integration Engine for MS SQL Server

MedImaView – PowerDicom

MedImaView is a multi-modality DICOM viewer with an intuitive Windows Graphical User Interface. It’s part of PowerDicom Technologies, an All-in-One application for handling DICOM files developed by DICOM Solutions, an MHGS company. Licenses for PowerDicom (version 4.8.6 released on May 4, 2015) are available in a price-range from 39 EUR to 310 EUR. PowerDicom allows also the generation of DICOM images. A free trial version can be downloaded from the DICOM Solutions website. MedImaView (version 1.8) is free for personal use and students.

MedimaView DICOM viewer

MedimaView DICOM viewer

DICOM PowerTools

DICOM PowerTools are developed by Laurel Bridge who provides imaging workflow solutions and DICOM software products to the medical imaging industry. PowerTools are a suite designed for the testing, troubleshooting, or debugging of applications that use DICOM communications. PowerTools also provides for the viewing, repair, or creation of DICOM data sets and their contents.

The current version is 1.0.34, released on November 24, 2015.

PowerTools File Editor

PowerTools File Editor

RadiAnt

RadiAnt is a DICOM viewer for medical images designed with an intuitive interface and unrivaled performance. It runs on Windows, the latest version is 2.2.8.10726, released on December 11, 2015. The prices for a license range from 72 EUR to 400 EUR. A free evaluation version is available. RadiAnt is not certified as a medical product and is not intended for diagnostic purposes. RadiAnt is developed by Medixant, a small, privately funded company that was first formed by Maciej Frankiewicz in 2011 in Poznan, Poland.

RadiAnt DICOM viewer

RadiAnt DICOM viewer

CODONICS Clarity Viewer

Headquartered in Cleveland, Ohio, Codonics develops, designs, sells and supports leading-edge medical imaging and information management devices used in diagnostic imaging.
Codonics Clarity Viewer features simple image navigation and selection, an intuitive user interface, quick viewer launch and rapid image loading. The Codonics Clarity 3D/Fusion Viewer is extremely useful for viewing diagnostic imaging results. It is a comprehensive PET/CT viewer that is simple to use for single or comparison study review. All basic features of the Codonics Clarity Viewer are also included.

Codonics

Codonics Clarity 3D/Fusion viewer

MatLab Dicom Toolbox

The Image Processing Toolbox of MatLab includes import, export and conversion functions for scientific file formats, amomg them DICOM files. The available functions are dicomanon, dicomdict, dicomdisp, dicominfo, dicomlookup, dicomread, dicomuid, dicomwrite. A tutorial shows how to write data to a DICOM file.

6. Mobile DICOM viewer apps

The mobile DICOM viewers are presented in a separate contribution.

7. Other DICOM viewers

The following list provides links to additional DICOM viewers developed by the industry’s leading medical imaging equipment suppliers and by independant developers :

Links

The following list shows links to websites with additional informations about DICOM viewers :

DICOM TransferSyntaxUID

Referring to my recent post about the DICOM standard, the list of all valid transfer syntaxes is shown below. A DICOM transfer syntax defines how DICOM objects are serialized to transmit them through a network or to save them into a file.

The DICOM transfer syntax is specified by the TransferSyntaxUID located in element number (0002, 0010). There exist 35 different DICOM transfer syntaxes, but 14 have been retired from earlier standard versions and will not be supported in future DICOM releases.

The 21 valid DICOM transfer syntaxes are listed in the following table :

TransferSyntaxUID Transfer Syntax Name Comments
1.2.840.10008.1.2 Implicit VR Endian Default
1.2.840.10008.1.2.1 Explicit VR Little Endian
1.2.840.10008.1.2.1.99 Deflated Explicit VR Big Endian
1.2.840.10008.1.2.2 Explicit VR Big Endian
1.2.840.10008.1.2.4.50 JPEG Baseline (Process 1) Default Lossy JPEG 8-bit
1.2.840.10008.1.2.4.51 JPEG Baseline (Process 2 & 4) Default Lossy JPEG 12-bit
1.2.840.10008.1.2.4.57 JPEG Lossless, Nonhierarchical (Processes 14)
1.2.840.10008.1.2.4.70 JPEG Lossless, Nonhierarchical First- Order Prediction
1.2.840.10008.1.2.4.80 JPEG-LS Lossless
1.2.840.10008.1.2.4.81 JPEG-LS Near-Lossless
1.2.840.10008.1.2.4.90 JPEG 2000 Lossless Only
1.2.840.10008.1.2.4.91 JPEG 2000
1.2.840.10008.1.2.4.92 JPEG 2000 Multicomponent Lossless Only
1.2.840.10008.1.2.4.93 JPEG 2000 Multicomponent
1.2.840.10008.1.2.4.94 JPIP Referenced
1.2.840.10008.1.2.4.95 JPIP Referenced Deflate
1.2.840.10008.1.2.5 RLE Lossless
1.2.840.10008.1.2.6.1 RFC 2557 MIME Encapsulation
1.2.840.10008.1.2.4.100 MPEG2 Main Profile Main Level
1.2.840.10008.1.2.4.102 MPEG-4 AVC/H.264 High Profil Level 4.1
1.2.840.10008.1.2.4.103 MPEG-4 AVC/H.264 BD High Profil Level 4.1

DICOM standard

Last update : May 31, 2016

DICOM (Digital Imaging and Communications in Medicine) is a software integration standard that is used in Medical Imaging. It’s success relies on the ability of modern imaging equipment, manufactured by many different vendors, to seamlessly collaborate and integrate together. Medical imaging equipments are called Imaging Modalities and include X-Rays, Ultrasound (US), Computed Radiography (CR), Computed Tomography (CT), Magnetic Resonance Imaging (MRI), Endoscopie (ES),  and others.

DICOM standard

The Digital Imaging and Communications in Medicine (DICOM) standard (now ISO 12052) was first conceived by the American College of Radiology (ACR) and the National Electrical Manufacturers Association (NEMA) in 1983. DICOM changed the face of clinical medicin. The release 3 of the standard was published in 1993 and since then an updated version is edited every year.  The current version is PS3-2016b. The DICOM standard is often considered to be be very complicated or tricky, the publication is now more than 3.000 pages long. A list of the 18 parts (parts 9 and 13 were retired) of the DICOM standard is shown below :

  • Part 3.1 : Introduction and Overview
  • Part 3.2: Conformance
  • Part 3.3: Information Object Definitions
  • Part 3.4: Service Class Specifications
  • Part 3.5: Data Structures and Encoding
  • Part 3.6: Data Dictionary
  • Part 3.7: Message Exchange
  • Part 3.8: Network Communication Support for Message Exchange
  • Part 3.10: Media Storage and File Format for Media Interchange
  • Part 3.11: Media Storage Application Profiles
  • Part 3.12: Media Formats and Physical Media for Media Interchange
  • Part 3.14: Grayscale Standard Display Function
  • Part 3.15: Security and System Management Profiles
  • Part 3.16: Content Mapping Resource
  • Part 3.17: Explanatory Information
  • Part 3.18: Web Access to DICOM Persistent Objects (WADO)
  • Part 3.19: Application Hosting
  • Part 3.20 : Transformation of DICOM to and from HL7 Standards

The DICOM standard is promoted by IHE (Integrating the Healthcare Enterprise), an initiative by healthcare professionals and industry to improve the way computer systems in healthcare share information.

DICOM core

The DICOM core is a file format and a networking protocol.

All medical images are saved in DICOM format, but DICOM files contain more than just images. Every DICOM file holds informations about the patient, the context of the study, the type of equipment used etc.

All medical imaging equipments that are connected to a health network (hospital, …) use the DICOM network protocol to exchange informations, mainly images and binary data. This protocol allows to search for medical images in an archive and to download them to a doctor’s workstation in order to display them.

DICOM Objects

Developers knowing object oriented programming should be familiar with DICOM objects. Patients, medical devices, clinical studies etc are entities in the real world. DICOM has abstract definitions for these entities, called DICOM Information Entities (IEs). DICOM uses a data model with SOP (Service Object Pair) classes and  Information Object Definitions (IODs)  to handle these entities in the DICOM world. For example, a patient IOD has attributes for patient’s name, ID, date of birth, weight, sex and all other clinically relevant patient related informations.

The DICOM data model defines four object levels :

  1. Patient
  2. Study
  3. Series & Equipment
  4. Instance (image)

The name instance, instead of image, was introduced some years ago, because there are now DICOM objects at the fourth level which are not images. These objects are sometimes called DICOM P10 instances with reference to the PS3.10 DICOM standard.

Each of the levels can contain several sub-levels. The following figure shows the DICOM information hierarchy :

dicom_b

DICOM Information Hierarchy

One patient may have multiple studies at different times, each study may include several series with one or more instances.

DICOM differentiates between normalized and composite IODs. A normalized IOD represent a single real-world entity with inherent attributes. Composite IODs are mixtures of several real-world entities.

The DICOM Information Modules are used to group attributes into logical and structured units. Modules can be mandatory, conditional, optional or user-defined. DICOM specifies for each IE the modules it should include. For example, the patient IE should include the patient module, the specimen identification module and the clinical trial subject module. All DICOM objects must include the SOP common module and the four modules of the data model. All DICOM instances that are images must include the Image module.

The attributes of an IOD are encoded as Data Elements.

Let’s summarize the chapter about DICOM objects in a few other words :

  • The DICOM data model is made of Information Entities (IEs)
  • The classes of the DICOM data model are called SOP classes
  • SOP is a pair of a DICOM object and a DICOM service
  • SOP classes are defined by IODs
  • IODs are collections of modules
  • Modules are collections of data elements
  • Data elements collections refer to an Information Entity (IE)

DICOM Data Elements

DICOM objects are encoded in binary form as sequential lists of attributes, called Data Elements.  Every data element has :

  • a tag to uniquely define the element and its proprieties. A tag is comprised of a 16-bit Group number and a 16-bit Element number. Data elements that are related to another have the same Group number.
  • an optional Value Representation (VR), represented as two character code, to define the data type (examples : UI = Unique identifier, CS = coded string, US = unsigned short, …). The VR is called explicit when available. The data type is also specified by the tag and VR is omitted (implicit VR) if determined by the negotiated Transfer Syntax.
  • a length to specify the size of the value field. DICOM values length are always even. Values with a single data are padded by a space in the case of strings and by a null (0x0) in the case of binary types. DICOM lengths are specified with 16 bit if VR is explicit and with 32 bit if VR is implicit. The value filed length can be undefined (FFFFFFFFH).
  • a value field with the corresponding informations. If the length of the value field is undefined, a sequence delimitation item marks its end.
DICOM File displayed in Hexeditor

DICOM File displayed in Hexeditor

There are thousands of different DICOM data elements with a well specified meaning. The names of the data elements are referenced in a DICOM dictionary. Here are some examples :

Tag Group Number Tag Element Number Element or Attribute Name
0010 0010 Patient’s Name
0010 0030 Patient’s Birthday
0020 0011 Series Number
0028 0010 Image Rows
0028 0011 Image Columns

The data elements are sorted sequentially by ascending tag number. It’s possible to define additional elements, called private elements, to add specific informations, but it is recommended to use existing elements whenever possible. Standard DICOM data elements have an even group number and private data elements have an odd group number.

Secondary Capture Image Object

The simplest DICOM object is the Secondary Capture (SC) Image. It has a minimal set of data elements that a DICOM application needs in order to display and archive a medical image. It’s not related to a particular medical image device. The following table shows the mandatory modules for the Secondary Capture Image Object :

Information Entity (IE) Module Reference
Patient Patient C.7.1.1
Study General Study C.7.2.1
Series General Series C.7.3.1
Equipment SC Equipment C.8.6.1
Instance (Image) General Image C.7.6.1
Image Image Pixel C.7.6.3
Image SC Image C.8.6.2
Image SOP Common C.12.1

There are only two modules that are specific to SC (Secondary Capture), the other modules are common and shared by many IODs. Every module is rather large and includes lots of data elements, but luckily most of these data elements are optional. In the DICOM standard the modules are marked with a type column :

  • value 1 : data element is mandatory and must be set
  • value 2 : data element is mandatory, but can be null
  • value 3. data element is optional

Values 1 and 2 can also been marked as c for conditional.

The following table shows the mandatory data elements for the Secondary Capture Image Object :

Attribute Name Tag Type
Patient’s Name (0010, 0010) 2
Patient ID (0010, 0020) 2
Patient’s Birth Date (0010,0030) 2
Patient’s Sex (0010, 0040) 2
Study Instance UID (0020, 000D) 1
Study Date (0008, 0020) 2
Study Time (0008, 0030) 2
Referring Physician’s Name (0008, 0090) 2
Study ID (0020, 0010) 2
Accession Number (0008, 0050) 2
Modality (0008, 0060) 1
Series Instance UID (0020, 000E) 1
Series Number (0020, 0011) 2
Laterality (0020, 0060) 2C
Conversion Type (0008, 0064) 1
Instance Number (0020, 0013) 2
Patient Orientation (0020, 0020) 2C
Samples per Pixel (0028, 0002) 1
Photometric Interpretation (0028, 0004) 1
Rows (0028, 0010) 1
Columns (0028, 0011) 1
Bits Allocated (0028, 0100) 1
Bits Stored (0028, 0101) 1
High Bit (0028, 0102) 1
Pixel Representation 0028, 0103) 1
Pixel Data (7FE0, 0010) 1C
Planar Configuration (0028, 0006) 1C
SOP Class UID (0008, 0016) 1
SOP Instance UID (0008, 0018) 1
Specific Character Set (0008, 0005) 1C

Unique Identifiers

DICOM makes extensive use of Unique Identifiers (UIDs). Almost every entity has a UID, with the exception of the patient (patients are identified with their name and their ID). DICOM defines a mechanism in order to make sure UIDs are globally unique. Every DICOM application should acquire a root UID that is used as a prefix for the UIDs it creates.

Usually the Study Instance UID is provided through a DICOM service called Modality Worklist. The Series UID and the SOP Instance UID are always generated by the application.

DICOM Networking Protocol

The following figure shows the typical medical imaging workflow.

Workflow

Medical Imaging Workflow

The workflow begins when the patient gets registered in the Hospital Information System (HIS). An Electronic Medical Record (EMR) is generated for the new patient. A medical procedure, for example an X-Ray of the thorax, is ordered and placed into the Radiology Information System (RIS). The RIS generates a study scheduled and sends an HL7-event to a HL7-DICOM gateway. The gateway sends the study scheduled event to the Picture Archiving and Communication System (PACS) to prefetch previous exams of the patient. When the patient arrives at the modality (X-Ray in this example), the technologist requests the Modality Worklist (MWL : a sort of task manager) and updates the RIS. The acquired images are forwarded to the PACS where they are checked, stored and forwarded to the review workstation of the radiologist. The radiologist views the study images and reports possible pathologies.

The Modality Worklist is combined with a Modality Performed Procedure Step (MPPS) that allows the Modality to report the task status and to take ownership over the task. Associated to MPPS are the Requested Procedure (RP), the Requested Procedure Description, the Requested Procedure Code Sequence and the Scheduled Procedure Step (SPS). MPPS is the checkmark for MWL.

The main DICOM nodes in this workflow are the Modality, the PACS and the Workstation. DICOM’s network communication is based on the ISO/OSI model. The entities (nodes) in the network are specified with the following parameters :

  • Application Entity (AE) Title : max 16 characters, case sensitive;
    it’s a sort of alias for the combination of IP address and port number
  • IP address
  • Port number

With the parameters of the source and the target AE, we can start a per-to-peer session called Association. This is the first step of a DICOM network communication. The second step is exchanging DICOM commands. Most problems in DICOM communications are related to failing association negotiations. Errors are reported in the DICOM log.

The calling AE sends an Association Request to the target (called) AE. It’s a description of the application, its capabilities and its intentions in this session (presentation context). The called AE checks the request and sends back an Association Response, confirming what can and can’t be done. If its doesn’t match, the calling AE can reject the association. An important parameter is the Max PDU Size, an application level packet that says how big is the buffer consumed for the request. Some calling application entities uses buffer sizes too large for the called application entity; the result can be a crash due to a buffer overflow. In case of none-response by the called AE, the request will timeout.

A DICOM service related to the exchange step is Storage Commitment (SCM) that lets you verify if files sent to a PACS where indeed stored correctly. The result is sent using the N-EVENT-REPORT command.

DICOM services are used for communication within an entity and between entities. A service is built on top of a set of DICOM Message Service Elements (DIM-SEs) adapted to normalized and composite objects. DIM-SEs are paired : when a device issues a command, the receiver responds accordingly.

DICOM services are referred to as Service Classes. A Service Class Provider (SCP) provides a service, a Service Class User (SCU) uses a service. A device can be an SCP, an SCU or both. The following table shows the main DIM-SE’s : commands with a C-prefix are composite and those with a N-prefix are normalized.

C-ECHO sort of application level ping to verify a connection;
this service is mandatory for all AEs
C-FIND inquiries about information object instances
C-STORE allows one AE to send a DICOM object to another AE
C-GET transmission of an information object instance
C-MOVE similar to C-GET, but receiver is usually not the command initiator
C-CANCEL interrupt a command
N-CREATE creation of an information object
N-GET retrieval of information object attribute value
N-SET specification of an information object
N-DELETE Deletion of an information object
N-EVENT-REPORT result from SCM

A fundamental service implemented by every workstation is the Query / Retrieve (Q / R) task. The query is done with C-FIND. The keys to search are Patient Name, Patient ID, Accession Number, Study Description, Study Date, Modality, … The Retrieve is done with C-MOVE and C-STORE commands.

DICOM Serialization = Transfer Syntax

To transmit DICOM objects through a network or to save them into a file, they must be serialized. The DICOM Transfer Syntax defines how this is be done. There are 3 basic transfer syntaxes presented in the next table :

UID Transfer Syntax Notes
1.2.840.10008.1.2.1 Little Endian Explicit (LEE) stores data little-end first, explicit VR
1.2.840.10008.1.2.2 Big Endian Explicit (BEE) stores data big-end first, explicit VR
1.2.840.10008.1.2 Little Endian Implicit (LEI) stores data little-end first, implicit VR

A complete list is shown in my post DICOM TransferSyntaxUID.

The transfer syntax specifies 3 points :

  • if VRs are explicit
  • if the low byte of muti-byte data is the first serialized or the last serialized
  • if pixel data is compressed and when yes, what compression algorithm is used

LEI is the default Transfer Syntax which shall be supported by every conformant DICOM Implementation. Compressed pixel data transfer syntax are always explicit VR little Endian. The following compression methods can be used :

  • jpeg
  • jpeg lossless
  • jpeg 2000
  • RLE
  • JPIP
  • MPEG2
  • MPEG4

If DICOM objects are serialized into files, there are additional informations to provide :

  • a  preamble of 132 bytes, where the first 128 bytes are null and the last 4 bytes are the DICOM magic number DICM.
  • a file meta header consisting of data elements of group 0002, written in Little Endian Explicit
  • an element (0002, 0010) with the Transfer Syntax UID that is used for all the data elements other than group 0002.

Group 0002 data elements are strictly used for files and must be removed before sending DICOM objects over the network.

If DICOM files are saved on a standard CD / DVD, they should have a file named DICOMDIR in its root directory. DICOMDIR is a DICOM object listing the paths to the files stored on the media. The file names of these files should be capital alphanumeric up to 8 characters with no suffix. An example of naming conventions is shown hereafter :

  • directory PAxxx for every patient  (xxx = 001, 002, …)
  • inside PAxxx a directory STyyy for every (yyy = 001, 002, …)
  • inside STyyy a directory SEzzz for every series (zzz = 001, 002, …)
  • inside SEzzz a DICOM file MODwwwww for every instance
    (MOD = CT, CR, …; wwwww = 00001, 00002, …)

DICOM files stored in the cloud or on a non-DICOM media have the suffix .dcm.

Pixel Data

Because imaging is the heart of DICOM, we will deal with the bits of images in a specific chapter called pixel data. The data elements of the pixel module have group number 0028 and are responsible for describing how to read the image pixels. The next table shows the different data elements :

Tag VR Description
(0028, 0002) US Samples PerPixel : number of color channels; grey = 1
(0028, 0004) CS PhotometricInterpretation : MONOCHROME1 -> 0 = white ;
MONOCHROME2 -> 0 = black ; YBR_FULL -> YCbCr space
(0028, 0006) US PlanarConfiguration : 0 = interlaced color pixels ; 1 = separated pixels
(0028, 0008) IS NumberOfFrames : number of frames in the image; multi-frame >1
(0028, 0010) US Rows : height of the frame
(0028, 0011) US Columns : width of the frame
(0028, 0100) US BitsAllocated : space allocated in the buffer (usually 16)
(0028, 0101) US BitsStored : how many allocated space is used (in CT usually 12)
(0028, 0102) US HighBit : the bit number of the last bit used (in CT usually 11)
(0028, 0103) US PixelRepresentation : unsigned = 0 (default) ; signed = 1
(0028, 1050) DS WindowCenter :
(0028, 1051) DS WindowWidth :
(0028, 1052) DS RescaleIntercept :
(0028, 1053) DS RescaleSlope :
(7FE0, 0010) OB Image Pixel Data : (for CT -> VR = OW : other word)

The group number of the image data element is 7FE0 to be sure that this element is the last in the DICOM object. It is usually a very long data element and can be easily skipped if we want to read only the headers.

The Image Plane Module defines the direction of the image with reference to the patient body. It also gives the dimensions of the pixels in mm. The corresponding data element has tag 0020, 0037. DICOM defines a Reference Coordinate System (RCS) of the patient body.

X-direction is from Right to Left in the Axial (transversal) Cut. Y-direction is from Front (Anterior) to Back (Posterior) in the Sagittal Cut. Z-direction is from feet to head in Coronal Cut. The following letters are assigned to the ends of each direction :

  • [R] – Right – X decreases
  • [L] – Left – X increases
  • [A] – Anterior – Y decreases
  • [P] – Posterior – Y increases
  • [F] – Feet – Z decreases
  • [H] – Head – Z increases

These letters are usually displayed on the sides of a DICOM viewer. If the patient is in an oblique position, there can be letter combinations like [PR] for Posterior Right or [ALH] for Anterior Left Head.
onformance Statement

DICOM Conformance Statement

DICOM requires that a Conformance Statement must be written for each device or program claiming to be DICOM conformant. The format and content of a Conformance Statement is defined in the standard itself.

Links

Additional informations about the DICOM standard are available at the following websites :