Category Archives: Imaging Software

DICOM de-identification: More than meets the eye

De-identifying medical image files is usually harder than it first seems.  There is patient data to think about: that seems obvious.  But if you remove all identifying data (that’s true anonymisation), you have lost your primary means of finding a study.  So perhaps what you want is pseudonymisation – replacing the primary patient identifier with a pseudonum, or code.  But patient information can be scattered throughout a DICOM file, and some manufacturers even store it in private fields in the header.  OK, you say, remove the private fields.  But that can break some proprietary software that relies on those fields…sometimes, but not always.

Then there are less-obvious fields.  The names of staff, the institution, the scanner serial number, and many more fields, all can be used to identify the scan, and through that, the patient.  Dates and times are a particularly good way to identify a scan, but may be essential information for calculating drug or radioisotope decay, or the interval between scans.  So these may need to be changed, but the relative interval between them retained.

This is a complex issue for which is no single answer.  There are several publications available that discuss the matter in detail (this summary from David Clunie is a good introduction).  The amount of editing required is a function of the amount of information initially present, the intended (or unintended) recipient of the data, and the desired level of identification.  What is needed is a set of tools that are powerful enough to perform the task, yet flexible enough to be configured for the particular application.

Here at I Do Imaging World HQ, we are publishing sample data for public use, so it is heavily anonymised.  We use a combination of tools when de-identifying DICOM data:

  1. A tool to examine the headers, so we know what we are dealing with.
  2. A dedicated de-identification program for the bulk of the work.
  3. Something to compare the before- and after- images, so we know what’s changed.
  4. An element-by-element editor to modify individual fields, or remove those missed by the anonymiser.

Here is just one example of the software available to perform each of these steps, chosen for their quality and for the fact they’re all Java-based, so will run on any desktop OS.  We’ll look at DicomBrowser for steps 1 and 4 (viewing the headers and editing individual elements), DicomCleaner for the heavy work of de-idenfication, and Loni Inspector for the side-by-side comparison.

Viewing and editing: DicomBrowser

DicomBrowser (home page) comes from the Neuroinformatics Research Group at Washington University, the home of XNAT, the powerhouse open-source platform for neuroimaging research and processing.  This is a program that does more than it promises: it can edit as well as view the headers of entire DICOM studies, it can send to a PACS node, and it has an advanced scripting language (shared with other software from the same group) for power users.  It’s distributed with native installers for the three desktop platforms, and has comprehensive documentation available including an academic publication that cover its abilities in detail.

The easy way to run DicomBrowser is through its GUI (though it also can be run from the command line,  allowing the input files to be specified in advance rather than hunting through the GUI).  Point it at a directory containing any number of studies and DICOM files, and it will parse the contents and present a collated view in an hierarchical view of patient – study – series – instance.  Header elements that have a single value at a particular level are presented as such: the patient details, for example, are constant throughout all instances and can be edited at the highest (patient) level by clicking on the value field.  Several actions are available for the element value: Clear (keeping the element), Delete (removing the element), or Assign (store a new value).  Entirely new elements can also be created.

Where an element has multiple values at a given level (say a multi-series scan viewed at the study level), the number of discrete values is displayed, and clicking on the values field presents a dialog box with a drop-down selector for the value to edit.  Viewing the element at a lower level will reduce the field to a single value.

DicomBrowser_3DicomBrowser can be scripted, for power users.  Anonymisation scripts are written in DicomEdit, a custom language shared with XNAT, that has many of the features needed by programmers, including variables, constraints, conditional operators, and string operations.  The language also includes the ability to call a web service URL and include the returned value in a constructed element value.  Specific to DICOM editing is a UID generator to create DICOM UIDs that are unrelated to the original values, yet consistent across a DICOM series.  Taking it a level higher, batch processing is provided through a companion program,  DicomRemap, which uses XML files to provide per-element custom editing.  This is a nontrivial task, but such is the nature of DICOM editing, and if you need it, the functionality is there, though with one caveat: DicomBrowser does not handle Dicom Sequences, an advanced feature of the DICOM standard.

Bulk anonymisation: DicomCleaner

DicomCleaner (home page) comes from PixelMed’s David Clunie, a major figure in the DICOM world and publisher of the Medical Image Format FAQ.  DicomCleaner is a power tool for anonymising or ‘cleaning’ large quantities of DICOM data, and as expected coming from the DICOM authority, is rigorous in its adherence to the standard.

DicomCleaner’s approach to the complex problem of editing hundreds of header elements  is to define blocks of elements to be removed or edited, providing multiple levels of anonymisation that reach deeply into the DICOM structure while keeping the user interactions to a manageable level.  The program is particularly strong at maintaining the relationships between essential structures such as UIDS, and the temporal relationships between dates and times are preserved.  DicomCleaner can also handle DICOM sequences, and can add the standard-specified information block describing the alterations performed on the files during process.


The depth of editing is apparent upon comparison of the original and cleaned files: at the highest level the great majority of the header elements are removed or modified.  Lighter editing can retain some fields, such as series descriptions.  For annotations contained within the pixel data, the program provides an editor to specify regions of the image to be blacked out.  Image data can come from and be saved to local files, or a network PACS connection.  This is a program that does a lot of heavy work with minimal user input, so a thorough reading of the documentation helps to understand the work being done.

Comparing DICOM images: LONI Inspector

Verifying the anonymisation process is aided by viewing the results.  Given that a single DICOM image may contain over 300 fields, checking a complete list of values can be overwhelming.  Seeing which fields have been edited can help make the reviewing task a lot easier.

LONI Inspector (home page) is designed for this job.  In addition to DICOM, this program can read and compare the headers of AFNI, ANALYZE, ECAT, GE, Interfile, MINC, and NIFTI files. Filters help to locate and display values of interest, and when comparing multiple files, the differences can be highlighted, shown in isolation, or excluded.  The header data may be exported as CSV or XML files for inclusion in other programs.



Editing and anonymising image files, particularly DICOM, is a big job.  If you’re performing the same editing, especially on familiar data, a single program may be sufficient.  But for complex or new data, or for developing a process, a balance between usability and thoroughness means that more than one program might be needed.  To prepare the heavily-anonymised sample data for the I Do Imaging PACS, the three programs above were used in sequence:

  • DicomCleaner does the bulk of the anonymisation, but care must be taken not to remove required values.  In our case, the series descriptions were retained, but most other editing blocks were performed.
  • LONI Inspector was then run on the before-and-after images, to highlight fields with identifying information that might have been missed or are to be edited.
  • DicomBrowser is used both in its viewing and editing modes.  The final editing was performed here, with several comparison iterations using Inspector.  If a large amount of similar data were being processed, we could have developed a custom script to perform these operations, but with only a few data sets required, the GUI approach was sufficient.

These three programs are all written in Java.  This means they will run on any platform, but there is the additional step of installing Java itself, and keeping up with its numerous (and intrusive, and sometimes problem-causing) updates.  You’ll also be reminded when you start the applications that Java is slow, at least when the program is loading.  These minor issues are the current price of cross-platform compatibility.

Anonymisation, done right, is not an easy task, and there’s a limit to how simple it can be made.  But with these three professional tools, it’s possible for anyone to perform customised standards-compliant editing with the minimum effort.  The hard work has already been done for you.


Imaging in the palm of your hand: Phone-based DICOM viewers

Here are two really capable DICOM viewers, iOviyam and DWV, either of which can probably run on the phone you’re carrying right now, with no installs or software downloads.  They’re both up and live on our demo server (skip to the end of each review if you’re impatient to try them).

Both these programs let a standard smartphone query a PACS, and display the images that are retrieved.  How on earth does a cell phone handle the complexity of the heavyweight DICOM protocol?  It doesn’t.  As far as the phone is aware, it’s talking to a web server, which just happens to be serving medical-looking images.  These two programs both are deployed as a module within the industry-leading DCM4CHEE PACS server, and in fact installing each involves copying only one or two files, if you have such an installation running (no trivial task, but our wiki notes might help).

So for most people, this is imaging as a web service: something you connect to using whatever device is handy.  It provides a convenient mobile phone interface to a PACS, allowing querying by patient details and dates.  The DICOM images are retrieved from the PACS by the server module, then converted to standard web-technology images and sent to any HTML5-capable browser (anything from the last few years).  Your phone never knows it’s talking to a PACS.


 doesn’t take much longer to launch than it does to say.  It is the smartphone/tablet companion to the HTML5-based Oviyam2, and comes from the same productive team at Raster Images.  It’s a highly capable 2D viewer, with many of the features you’d look for in a desktop viewer.  Security is provided by the hosting PACS, so you need an account to connect to the server and view images.  Once logged in, there’s a nicely mobile-optimized search window, leading on to the image viewer. There are technical notes online in the forum, which go in to more detail about the back-end architecture of the server module (there’s nothing at the client end).  iOviyam can use the web-oriented WADO protocol to talk to the PACS server, but can also act as a standard PACS client, and is configured into the server as such.  But the user is protected from all this, and just needs a login.

Try it right now!  The link below will route to iOviyam2 if you’re on a mobile device, and to the desktop-browser version of Oviyam2 if you’re on a computer.  You’ll need a login: it’s guest and the password is guest.  Easy.

Click here to launch the iOviyam viewer.

DWV – DICOM Web Viewer

DWV on iPhone

DWV is a new HTML image viewer from Yves Martelli.  It’s implemented in Javascript and HTML5, so it too will run on anything with a modern web browser.  It is deployed from a growing list of PACS servers, including ConQuest, DCM4CHEE, and the innovative up-and-comer, Orthanc.  DWV is launched from within the PACS search interface, rather than having its own search functionality as with iOviyam, and it can also be launched directly from a URL (the program’s website has some examples of this, as does our wiki entry for DWV).

The browser itself has the now-familiar subset of functions for the limited space available on a mobile device screen: pan, zoom, scroll, windowing and colour mapping.  DWV also offers a limited range of image filters, and the display of DICOM header values with real-time searching.  That’s a lot of functionality to fit into a small screen.

DWV is installed on our PACS server, and there are two ways of accessing it.  The first is to log in to the DCM4CHEE PACS server (username guest, password guest), and click ‘Search’ with all search fields empty (don’t worry about the warning, there are very few images to search).  Then, click the ‘eye’ icon to open the web viewer.  You can then choose between the installed web viewers (currently, DWV and Weasis).  Click on DWV, and you’ll get a new tab with the image volume loading.


The second way to open the DWV demo is just to click on one of the link images below.  Simpler, but less choice.

Click the images below to launch the DWV image viewer in your browser


Knee axial MR 23 sl

DWV’s chief developer is an imaging software professional and has provided all the resources that power users and developers would look for.  Source code is available at the project’s GitHub repository, along with extensive documentation of the code and the technical aspects of DICOM integration.  There’s a comprehensive wiki and a complete description of the development environment.  Yves has generously released this project under the GNU GPL and welcomes collaborators.  This would be an excellent opportunity to get involved in a cutting-edge imaging project that already has a solid background and a working product.

Web DICOM viewers are still a new technology, but one that is  evolving rapidly.  As we move from ‘computers’ to ‘devices’, the advantages of a zero-install workstation are so numerous and compelling that it seems clear that, for many needs, this is the immediate future of imaging.

ORS Viewer – the first FDA-approved free clinical workstation

ORSVisualSI_bug_largeFrom Object Research Systems in Monteal comes ORS Viewer Lite, a slightly reduced version of their flagship medical imaging workstation.  This is a serious workstation from a commercial company, and is the first free imaging workstation to be approved by the US FDA, Health Canada, and CE Mark – a significant step forward in free medical imaging software.  Gaining these approvals is a lengthy and expensive project, and Object Research Systems should be applauded for releasing this high-level workstation to the free  software movement.  Naturally, they support themselves by selling and supporting the full version of this program, which includes 3D reconstruction, volume rendering, endoscopy, and advanced modality-specific plugins.  But the Lite version lacks only these advanced features, it is not restricted in any way (though you’ll have to buy the full version to do the cool 3D beetle rendering).

As a 2D workstation, ORS Visual Lite has plenty of capabilities and can handle multiple sequences with image fusion and linked cursors.  The configuration options are particularly extensive, and include advanced features such as customisable key shortcuts for many functions, and saveable custom anonymization rule groups.  The program is fully PACS-capable, adding remote nodes is straightforward, as is query/retrieve, and send.  Processed scans can be exported to a removable media or remote PACS destination.  The clinical emphasis of this application is apparent with its support of user accounts and login, MPR and MIP views, text and graphical annotations, and DICOM print and report.

ORS Visual Lite is an excellent product, and its release is a good day for the free software community.  In a crowded PACS workstation marketplace, Object Research Systems deserve to be rewarded for being the first to make this bold step.

Web-based DICOM viewers – read about them, try them!

Medical imaging is a leader in the trend of applications moving to the browser. Browser-based imaging applications use a variety of web technologies, both new (such as HTML5, just a few years old) and longer-established (Java, which has been around since the mid 90s). The availability of new web technologies and  high-level development tools has made it increasingly easy to build and deploy web apps that can approach the power and versatility of installed applications, with little or no client preparation required. Here, we’ll look at two image viewers affiliated with the dcm4che project, and deployed on top of the DCM4CHEE server, that take different approaches to getting images from the confines of a complex PACS server, and into a common web browser.


Weasis is a Java Web Start application developed by Nicolas Roduit. Java Web Start comes as part of the free Java Runtime Environment that most personal computers have installed. It is activated when a JNLP file is downloaded in your browser (usually by clicking on a link), and it downloads and installs the Java application linked to this file. The application is stored on the computer, so subsequent launches can omit the download step unless the application is out of date. One of the key terms here is ‘computer’ – downloaded Java apps can’t be run on tablets (Android or iOS) for legal and technical reasons. JWS traces its history to around 2002 and accordingly, is built around computers rather than portable devices.

Weasis does not require any preparation by the user beyond the presence of Java. It’s deployed as part of a PACS installation, primarily the widely-used open source DCM4CHEE. Communications between Weasis and the PACS server is by means of  WADO, a DICOM standard designed to facilitate image viewing over the Web. The installation of Weasis on the server is not difficult, but does depend upon a rather complex PACS server, so we’ll concentrate on the viewer itself.

Clicking on a Weasis launch icon downloads the JNLP file.  The downloaded application may start automatically, but increasingly, this association is disabled for security reasons, so the downloaded file must be located and clicked to start the application (see the wiki notes).  Also, running the application for the first time will present a series of popup windows to authorise the application (a familiar part of life with Java applications).

Weasis launches as an application independent of the web browser and in fact from this point may subsequently be run as an installed program. Data comes along with the download or may be read from disk like any other imaging application. It’s a fairly standard 2D image viewer with no reslicing or volume rendering, but it runs quickly and provides comprehensive controls for adjusting brightness, contrast, scale, and colour map. There are tools for measuring distances and areas, and multiple studies can be displayed in a split screen. Weasis doesn’t provide all the functionality of a heavier viewer, but from a correctly-configured site, you can be viewing images within a minute of clicking a link, no installation required.

Try it out!  Click on one of the images below to download Weasis along with the data set.  The second and subsequent downloads are faster, as they don’t have to download the viewer.





There are other links to images and the Weasis viewer from the Sample Data page on our technical wiki.

There are extensive installation notes on the dcm4che site, which also has an active forum.  If you’d like to install Weasis on an image server, take advantage of I Do Imaging’s wiki notes, based upon the experience of installing this software several times on different platforms. They may save you hours of work.


Here’s another approach to browser-based viewing. Oviyam is entirely developed in HTML5, a modern Web technology that greatly enhances the capabilities of a web browser. In this approach, Oviyam is installed as a component of a PACS server and performs all the DICOM communications within the server, to which Oviyam appears as a standard PACS node. On the network side of the image server, Oviyam acts similarly to web server, sending image data to the browser in standard web formats. So a modern HTML5-capable browser can display the images without requiring any DICOM or PACS functionality.

Installing Oviyam, then, is strictly a server-side operation. And on a properly-configured DCM4CHee installation, it’s as simple as copying a .war file into the server’s directory structure. The client then visits a web location (port 8080, the default port of the JBoss framework underlying DCM4CHEE), and never knows it’s accessing a PACS. Oviyam provides all the basic functionality of a 2D browser, with no installation of any kind on the client end. It even works on portable devices: iOviyam provides pure HTML5 to a compatible web browser.

Try it out! Oviyam2 is installed on our public PACS server. Login is ‘guest’ with the password ‘guest’.  Click on the ‘idoimaging’ tab, then on ‘Sample Data’ at the top (or just ‘Search’), to bring up a list of studies.

Click here…
…to get this.

MRIdb: Image management, in a virtual machine

MRIdb is an interesting new application for storing and managing images, from Imperial College London. Building upon the stalwart dcm4chee image store, it combines the functionality of a PACS with study-level management and access control, administered through a web interface. Also bundled is the PostgreSQL database for storing images and open source applications for viewing and converting images. MRIdb itself is the Java-based management application, and is the primary means of interaction with the system. Through this interface you log in (authentication with LDAP is supported), view or download images, and manage related images by grouping them into projects.

One unique aspect of this project is its optional deployment as a preconfigured virtual machine. This is a single downloaded file which is run within the VirtualBox application, a free application from Oracle that runs on any platform.
Oracle_VM_VirtualBox_Manager The virtual machine contains an entire CentOS Linux operating system, and all the MRIdb components, all configured and already running. Once started, the virtual machine (which in this case has the IP address is accessible in a number of ways.

Firstly, the MRIdb application is accessed by browser through the default HTTP port of the VM. Here’s where you can create projects and associate them with individual scans, a convenient means of managing large numbers of studies, and a useful research-oriented feature not provided by traditional clinical PACS systems.
Features found in most PACS clients, such as search by various fields, are also available. Image viewing is provided in two ways, by launching an instance of the ImageJ viewer, or through the in-browser Weasis viewer.

Then, to communicate with MRIdb using DICOM standard protocols, the dcm4chee instance provides full PACS functionality. This is accessed using standard DICOM tools, such as a network-capable image viewer, another PACS, or any DICOM-compliant tools. For security, the default dcm4chee instance requires that remote AE titles be configured in order to send or receive studies. The server uses the standard port 11112 and AE Title ‘DCM4CHEE’, as shown in this example of sending an image to the store:

$ dcmsnd -L DCM4CHE  DCM4CHEE@ IM-0001-0100.dcm

Alternatively, the dcm4chee instance has its own web interface, running on its standard port of 8080. Through this you can search the PACS directly, and configure your remote AE entities. It’s a pretty dense interface, but this is a commercial grade application.

Finally, you can SSH into the virtual machine itself. Always a kick to find another machine running within your computer. Log in to it, and you have a full Linux environment to explore the MRIdb components, which start running when the VM is initialized.

In this test, the virtual machine launched quickly and with no intervention required, consuming less than 1 GB of memory including the VirtualBox overhead. Routine tasks can be accomplished through the MRIdb browser interface, though steps specific to dcm4chee require a visit to its separate interface. Deploying from source code was less successful: as is common with complex Linux installations, there are many platform-dependent details that can trip up the installation and configuration scripts. Perhaps due to the deviation from CentOS as the test platform (Debian and Open SUSE were available), the packages did not install automatically. This is par for the course with complex multi-package installations and most people familiar enough with Linux to attempt the source-based path would be able to resolve the incompatibilities. The final stumbles were encountered when launching the in-browser viewers, and were caused not by the application, but by the delightful Java version/security/update maze we all love to navigate.
MRIdb is built on a good number of solid free and open-source projects. The imaging tasks are performed by some old friends: from come the dcm4chee image server, dcm4che2 toolkit and Weasis web viewer, there is the DCMTK DICOM toolkit from OFFIS, and Erik Nolf’s XMedCon for image format conversion. Other projectss provide the non image-related infrastructure: (VirtualBox virtualization, PostgreSQL database, JBoss application server, Play web framework).

MRIdb is a useful program for those managing imaging studies. As supplied, it runs with just a few clicks, and has full control for those wishing to get more involved in the technical details. The implementation as a fully-configured virtual machine makes this of particular interest for those who’ve never run their own image store. Give it a try: in five minutes you can be sending images to and from your very own PACS!

Orthanc: A different approach to a PACS

Orthanc is an interesting new program from Sébastien Jodogne, at the CHU de Liège, in Belgium.  Described as ‘An open-source, lightweight, RESTful DICOM server’, it’s a fully self-contained mini PACS that you can download and run immediately.  It’s provided in source code form, and as pre-compiled Windows and Linux (Debian and Fedora) binaries. The database for storing images (SQLite) is built in to the application and is easily configured.

There are several ways you can talk to Orthanc: as a DICOM server, as a web server, and through its API. Download it and fire it up, and you have a DICOM server capable of sending and receiving images using the standard DICOM protocol. Command line tools like those supplied by DCMTK are ideal for this, as are any of the PACS-capable graphical programs. Additionally, it has Orthanc Explorer, a built-in web server (or you can run it behind an Apache server) for administration and showing image previews. This gives a nice responsive web interface to the program, including drag-and-drop DICOM image upload. By default its HTTP server is on port 8042, while port 4242 is the DICOM server using the AE Title ‘ORTHANC’, all of which are configurable.

What really sets this program apart is its ‘RESTful API’, a means of connecting with the image server by using standard web protocols and tools.  This allows Orthanc to be accessed through Web connections from anywhere, and without regard to the platform or language used in the originating program. REST APIs are characterised in part by the use of URIs to locate and access resources, which in this case include patients, studies, and images.  Orthanc returns textual data in the form of JSON files, a widely-used lightweight file format, while images are returned in the web-standard PNG format.  These technologies are familiar to many developers, and are more approachable than tackling the full DICOM networking protocol.

Here’s an example (many more are given in the Orthanc Cookbook) of accessing studies through their URL.  I have a couple of studies for one patient stored in my Orthanc instance, and I want to locate images by running through the DICOM levels of Patient – Study – Series – Instance. Orthanc is listening on port 8042 and a full list of the patients in the database is obtained from appending ‘/patients’ to the URL:

$ curl

Appending the patient identifier returns the details for this patient:

$ curl
   "ID" : "3d4f2bf0-7dc1be38-b20cd6e4-6949a107-1f9d0e3d",
   "IsStable" : true,
   "MainDicomTags" : {
      "PatientBirthDate" : "19601212",
      "PatientID" : "111111",
      "PatientName" : "TEST^ANDREW",
      "PatientSex" : "M"
   "Studies" : [ "e0095cd5-4853bd92-a6fd3e4f-58e268c8-aaecda1f" ],
   "Type" : "Patient"

In a similar way, the studies and series details can be obtained. Each series returns a list of its instances (images), and the details of each of these can be retrieved as a JSON file:

$ curl
   "FileSize" : 527066,
   "FileUuid" : "4a36faf7-ea88-41ed-818b-0bc022af3aa6",
   "ID" : "9a9340a3-a75a602c-dd0d31cc-e31aead6-3221e5a6",
   "IndexInSeries" : 133,
   "MainDicomTags" : {
      "AcquisitionNumber" : "2",
      "InstanceCreationDate" : "20090301",
      "InstanceCreationTime" : "132333.000000",
      "InstanceNumber" : "133",
      "SOPInstanceUID" : ""
   "ParentSeries" : "10edbf63-a3212315-d923c8aa-ca95db38-684ffec9",
   "Type" : "Instance"

At the instance level, the image itself can be retrieved as a PNG file by appending ‘/file’ to the instance’s URL. Instance details are available as a list of tag-value pairs (‘/tags’), or just as the value of an individual tag (‘/content/0008-0060’ returns the modality).

Functions such as anonymizing or altering the instance headers can also be accessed through standard REST calls. Here are a couple of the supplied examples (the URI has been shortened for clarity). In the second example, an entire series is edited, resulting in the creation of a new series within the Orthanc store. A JSON message is returned with the location of the new series containing the edited information.

curl http://localhost:8042/instances/42b4724a/anonymize -X POST -d '{}' > Anonymized.dcm
curl http://localhost:8042/series/5254f9ce/modify -X POST -d '{"Replace":{"InstitutionName":"My own clinic"}}'

Issuing commands at the command line is useful for design, debugging and experimental work, but the real power of this approach comes from driving the commands from a scripting language. Python examples are supplied for some sample applications such as uploading and downloading images, which can be done in a few lines of code. Here’s the basics of the Python sample script to download an copy of all anonymized studies, where the ‘RestToolbox’ methods are short functions that do what they say.

URL = 'http://localhost:8042'
for patient in RestToolbox.DoGet('%s/patients' % URL):
    infos = RestToolbox.DoGet('%s/patients/%s' % (URL, patient))
    name = infos['MainDicomTags']['PatientName'].lower()
    if name.startswith('anonymized'):
        zipContent = RestToolbox.DoGet('%s/patients/%s/archive' % (URL, patient))
        f = open(os.path.join('/tmp', name + '.zip'), 'wb')

Short and readable, and all the DICOM stuff is done by the Orthanc server, allowing you to concentrate on the functionality. There are other example programs in C++ showing how to use the library by itself or with the VTK toolkit for image display.

Orthanc lives in two worlds.  On the one hand, it supports the traditional DICOM transport protocol, and can communicate with standard networked DICOM programs. But while the DICOM standard has been around for decades, Orthanc comes from the modern and rapidly-changing era of web services, and its developers have adopted a number of web technologies to medical image transport. Maybe if DICOM transport is like email, Orthanc’s REST API is like Twitter: it’s fast and light, and gets the essentials of the message across.  It can’t do everything its heavyweight predecessor can do, but it does it more simply.

Orthanc is an interesting and novel imaging application, and is well worth the time taken to download and explore its capabilities.

New Releases: October 2012

Let’s have a quick look at some of the software projects that have recently released new versions.

Mango is a do-it-all program from the Research Imaging Institute at the University of Texas.  It’s easy to use for beginners, but offers great powers to advanced users, particularly those in the brain sciences.  It’s written in Java so it runs on any OS, and comes with platform-specific installers.  It has developer tools available, and a range of useful plugin modules. And let’s not forget the variant that displays DICOM images on a browser (webMango) and the iPad app, iMango (though it’s not free software).

For introductory users, it can quickly let you view images in DICOM or a half-dozen other formats.  But there’s a lot more functionality built in to the program, and with its  plugin architecture, it can be expanded to perform a very wide range of tasks.  While suitable for general purpose image viewing and analysis, there’s an emphasis on neuro imaging including support for file formats specific for that field: AFNI, NIFTI (use the Search page of this site and you’ll find 9 programs that support the former and 20 for the latter), also FSL and BrainVisa (which we’ve not yet got around to categorizing, ahem).

Advanced users will find useful features including a comprehensive package of ROI operations, image co-registration and overlays, statistical analysis, and image processing.  Plugins providing advanced neuro analysis tools and support for additional file formats are installed as needed from a library modules offered from the Mango site: adding and running these is straight-forward.  For programmers, there’s good support.  A package of developer tools can be downloaded and the API for developing plugins is well-documented.

Mango is a thriving project with much to offer everyone from the casual user to neuroscientist.

Nanodicom is one for the programmers.  It’s a PHP toolkit for reading and manipulating DICOM files (no flashy screen caps here sorry).    It’s one of very few (n=1) DICOM projects written entirely in PHP and is optimised for speed and a small memory footprint.  There’s a core class providing functions to read and modify the file header, as well as operations upon the pixel data.  Several ready-made sample applications are useful in their own right as well as providing reference implementations: there are programs provided for dumping, modifying or anonymizing the file header.

The package is well-supported, with extensive documentation, example programs, sample data, and a comprehensive test suite provided.  Since it’s hosted on GitHub, it’s available for developers to download, modify, and contribute to.

While Nanodicom does not handle DICOM networking, there is an existing class (not yet added to I Do Imaging) called DICOM PHP Class, which does just that.  It differs from NanoDicom in that it does its heavy DICOM work with the DCMTK toolkit.

Nanodicom is developed by Nano Documet, and the current release is version 1.3.

On the subject of DICOM libraries for interpreted languages, Ruby Dicom is well worth a look.  It supports reading, editing and writing file headers as well as network operations: querying, retrieving and sending files.  In conjunction with other Ruby packages, image data operations are also possible.

It’s written by Christoffer Lervåg who’s put out a steady stream of updates since the project’s inception in 2008.  The package is distributed in source form and as a Ruby gem  through RubyForge, allowing one-line installation.  The program is of course backed by a comprehensive site including tutorials, one of which walks you through creating a DICOM viewer with GUI controls in a few pages of code, using the Qt cross-platform toolkit.  Another tutorial uses the Rails framework to quickly build a web app to display DICOM header information on a browser.  Ruby Dicom is a cool application of a popular language with a devoted following.

Amide has been a major force in imaging software for a long time.  Developed and actively maintained  by Andreas Loening, it is by its own description a “Medical Imaging Data Examiner”.  As such, it’s strong on technical features and low-level operations on a broad range of file formats.  It’s written using the GTK+ cross-platform GUI toolkit which, together with good software design and a lot of hard work, means it will run on Windows and Windows computers as well as Linux.  There are too many features to go into here, but they include co-registering and fusing multiple data sets, volumetric rendering, 3-D ROIs, persistent storage of studies, and more.

Amide’s a good example of the collaborative nature of the open source imaging community.  The author uses (and contributes to) a variety of software packages, some specific to medical imaging (Medcon for conversions, DCMTK for DICOM support) and some more general (VolPack, FFMPEG, GSL).

Amide is notable in its support of the nuclear medicine formats ECAT and Interfile – strangers to those outside the field (just about everyone) but critical to those of us whose day jobs make possible the (admittedly spotty) maintenance of I Do Imaging.    Check it out, especially if you’re of a technical nature.

Medcon, together with its X Windows GUI xmedcon, is a medical image powerhouse for power users.  A product of Erik Nolf at Ghent University, it’s a format conversion program that supports a very wide range of file formats, with particular strengths in nuclear medicine but supporting all the widely-used formats.  It can work down to the voxel level to reslice image volumes along any axis and resample at varying resolutions.  Medcon can convert individual image slices to and from an image volume, convert the image value encoding, change colour maps, normalise values, and perform a number of other low-level operations.

Medcon has been in steady development for over 10 years, issuing dozens of releases, all well-documented and with careful attribution of fixes and feature requests.  It is particularly powerful when used from the command line or called from scripts, allowing full automation of complex repetitive actions.  There are distributions available for numerous Linux variants as well as the Macintosh and Windows platforms, and full source code (together with cross-platform make files) is provided under the (L)GPL license.  There’s not much he’s left out here!  (X)Medcon is a nice example of a defined problem (conversion of nuclear medicine file formats) being executed really well.

Five New Programs: October 2012

The majority of this post relates to scientific processing tools that won’t be seen much outside the lab, so we’ll ease into it with something a bit more approachable.

Weasis is a web-based viewer and part of the outstanding DCM4CHE environment.  Weasis is a web-launched viewer in Java that can also be downloaded and run as a stand-alone application.  When run from a web browser, it utilises JNLP, or Java Web Start, to download and start the application.  From that point, it runs independently of the browser.  This makes it ideal for web-based image viewing, since the viewing application is downloaded along with the data.  Weasis has a wide range of viewing tools available and runs at native speed.  A great addition to the ever-increasing line of software from, developers of professional-grade open source applications and utilities for the healthcare enterprise.

Dicoogle is an innovative PACS system that offers to provide an integrated view of multiple PACS systems.  From the Universidade de Aveiro in Portugal, and in use in several hospitals, it employs a peer-to-peer architecture to implement PACS queries over distributed DICOM repositories.  The project is open source and offers a full set of APIs and an SDK for developers to build upon the platform.  Under development are services for web- and mobile-based clients.

Creatis is a major biomedical imaging research laboratory at Université Lyon 1.  They produce a ton of great software, and Creatools has been added to our database.  This is another major package, providing rapid prototyping of medical imaging applications.  The downloaded package includes ready-to-run applications for end users, as well as the library and API necessary for developers to develop new applications quickly.  Creatools makes it possible for non-programmers to create and run an image processing application from pre-supplied modules that can be connected flexibly.  Creatis have many more tools listed on their software page, once we’ve built and tested them they will be added.

Camino is a heavy-duty toolkit for MRI diffusion imaging.  A specialist group of tools for a specialized field, from the Microstructure Imaging Group at University College, London.  Camino is a large project and backed by a host of academic publications.  The project web site has a vast range of resources, including comprehensive documentation of the many tools provided, tutorials with test data, and resources for software developers (including SVN access to their source code repository).

Lipsia is another heavyweight scientific tool, for functional MRI.  Developed at the Max Planck Institute for Human Cognitive and Brain Sciences, it is a large collection of command line tools to be pipelined for major processing tasks.  Building the application requires quite a few scientific-related tools to be installed: some for the file formats used (Vista, Nifti), some for image analysis, some for processing (scientific libraries, Fourier transforms), some for visualisation (OpenGL).  These can be installed using the usual Linux package managers.  There’s some Fortran in there too – this is for serious work!  Source code in C++ is available for download, as is comprehensive documentation.  A major collection of tools for FMRI.


Three new programs for serious science.

Recently added to I Do Imaging are three advanced programs: two image segmentation programs from a very productive collaboration in Vancouver, and a Matlab-based dynamic PET analysis package from Umeå University in Sweden.

TurtleSeg is an advanced 3D image segmentation program developed by a prolific team at Simon Fraser University and the University of British Columbia.  Employing a 3D Livewire algorithm named TurtleMap 3D, also developed by the same team, this program uses minimal interactive guidance to automatically perform and iteratively refine  a full 3D segmentation.  The concept is that the user, with Livewire assistance, generates a small number of nonparallel 2D contours on orthogonal or oblique planes, from which the program generates a dense set of parallel segmentation contours defining a full 3D volume.  As the segmentation progresses, the program can present the user with the plane to contour which would best assist the segmentation.  The results are shown in real time as a 3D rendering.  This is a very well-implemented program, with a thorough website offering documentation, including video guides, and a full manual.  TurtleSeg can read and write a wide range of commonly-used 3D file formats, can store and edit existing contours, and can export the segmentation as an image mask or surface mesh.  The program was developed as part of an MSc project and makes effective use of a wide range of free software, particularly the imaging toolkits ITK for segmentation and VTK for image processing and visualization, and also Qt for the graphical interface.  Using the program for the first time, and with minimal anatomical knowledge, I was able to perform an acceptable aortic segmentation within half an hour.  TurtleSeg is a particularly well-implemented project.

Another, more specialized program from the same collaboration is LiveVessel.  It is designed to perform 2D segmentation of vessels from colour photographs, in particular retinal images.  The development of the segmentation process and its underlying algorithm are described in two publications included in the program’s website.  To perform a segmentation, the user defines the start seed point and traverses the vessel with the mouse, while the application calculates the optimal path and boundaries of the vessel in real time. There’s a video on the site that shows how this process reduces the user input to about as minimal as it can be while still providing guidance. This program is written in a combination of Matlab scripts and MEX-files, which need to be compiled before use.  I was able to compile within Matlab on both Windows and Macintosh systems, however as LiveVessel uses the Signal Processing Toolbox, which I don’t have access to, I was unable to run the application.   LiveVessel looks to be a good implementation of a solution to a specialist need, and is well grounded in original research.

ImLook4D is a Matlab application for the analysis of dynamic PET scans, from Jan Axelsson in Sweden.  This is specialized software for a specialized application, and emphasizes the definition and analysis of volumes of interest over time (hence the 4D).  The program may easily be extended by means of drop-in Matlab scripts, and there are a large number of scripts provided with the program.  It’s also able to import and export its working set to the ImageJ environment for further analysis.  It has native capacity to read and write Dicom and ECAT files, as well as raw binary files.  If you work in the rather esoteric field of PET image analysis, you will be familiar with the features offered by this program.  It’s also quite likely that you are a user or programmer of Matlab, which makes this program doubly useful.

New Additions: January 2011, Part 1

I have a significant backlog of great programs waiting to be added to the site. Partly this is due to me not putting enough work into the site over the summer – too many outdoor distractions. Partly due to having met some great people at the RSNA conference in November, and learning about some new programs and software repositories from them. And it’s nice to note that it’s partly due to people contacting me first when they release a new project – it’s good to be recognized!

So I’m adding almost 20 programs in January, bringing the total of active programs listed to close to 300. Some other projects have fallen off due to inactivity or dead links, but overall, the number is growing rapidly. I’ve noticed an increasing number of fully-formed programs being released, some of which are sizable projects from commercial developers, in addition to some limited-scope programs coming from academic labs. The standard really is being raised.

One reason for more free applications from commercial developers, might be a growing realization in the industry that a free application is a great way to get exposure and recognition in a very crowded marketplace. There are dozens of PACS vendors, big and small, and it can take an effort to learn enough about their product to really make an impression. By releasing a free application, often an image viewer, these companies are getting their name recognized and gaining momentum in the marketplace. Frequently as an addition to the free application, they sell more advanced software – PACS servers, complex analytical modules, or regulatory-approved versions of their product. Fair enough, they have to make money somehow. I think more and more companies will follow this trend.

OK, on with the promised newly-listed software, in no particular order.

AmbiVU Lite, from AmbiVU in Oxford, England, is a good example of a highly capable imaging workstation being released as a free application from a commercial developer. AmbiVU Lite is the free version, and is a good program for general imaging needs. For more specialized tasks, modules can be purchased for mammography, PET-CT, colonoscopy, and increased PACS capabilities. AmbiVU Lite uses OpenGL image rendering, so has particularly fast 3D graphics capabilities that can make good use of graphics cards. It’s cross-platform (though the Linux version is still in development), so can provide a consistent image workstation in a group that works on a variety of computers.

Another very significant new addition is Ginkgo CADX, developed by Spanish company MetaEmotion with support from the public health service in the region of Castilla y Leon. This is another excellent imaging workstation, released for Windows, Macintosh and Linux. It has a particular emphasis on standards compliance, having support for the health-records interoperability standards HL7 and IHE. DICOM compliance and capabilities are another particular strength of this program. It’s based on an extensible framework (CADX), and the full source code in C++ is made available for download under the LGPL license, so this project may very well lead to further derivatives including commercial applications. Another notable feature is that it does not require an installation process – just copy the files in place, and it’s done. The project makes excellent use of many other open-source toolkits including VTK, ITK, and DCMTK, all of which are familiar on this site. This project, running since 2009, may well be the start of a whole class of powerful imaging programs.

Carimas is for heavy-duty brain PET analysis from the renowned Turku University in Finland. This is a highly specialized field (it just happens to be my field) and so this is a specialized program. For example, this program can use the ECAT and Interfile formats that, while are commonly used in nuclear medicine (Dicom is also supported). It implements the neuro modeling routines developed at Turku, and makes them, as much as possible, easy to use. There’s not much commercial software available in this sub-speciality so many labs rely on programs developed by themselves or other academic centres. Turku turns out a remarkable amount of utility software for functional neuroimaging – too many to list individually. Carimas, as a stand-alone application, gets its own listing. It also distinguishes itself by having its own theatrical movie trailer.