« Archives in February, 2012

Unetixs DICOM MultiLab – DICOM Server on a stick

Have you ever wanted to created DICOM files with your Unetixs DICOM MultiLab without transmitting them to a networked DICOM server?

Yes! This is the preferred workflow for our vascular technologist that use the Unetixs device in the field on a daily basis. By providing a DICOM server and storage on an encrypted USB device, the technologists do not have to lug the Unetixs device into the medical center to transfer their DICOM studies. All they need is their encrypted USB device with a simple DICOM server configured to also be a storage device.

I attempted to find out how the Unetixs MultiLab was creating DICOM files. Well it appears that the DICOM files are built on the fly and are not stored anywhere on the device. I used tools like Sysinternals Filemon to monitor the files being accessed and created during some testing and transmission. I was unable to locate a DICOM based file, so I am assuming that the DICOM file is being generated (or a DICOM wrapper is being applied) in memory. Since I was unable to write a script to pull any DICOM files off the Unetixs device I decided to look for DICOM servers that can run in a small footprint. I found a nice utility, dcmqrscp.exe, which is included in the DICOM Toolkit, DCMTK 3.6.0 for Windows (32 bit), found at http://dcmtk.org/dcmtk.php.en.

After testing the theory that I could run this environment on a USB device I quickly started to write a wrapper around dcmqrscp.exe to provide all of the necessary parameters and environment to successfully run this server from a USB device.

I created a folder on the USB device called DCMUNET under that folder there are 2 folders a BIN and a DATA file. The Bin folder contains the executable, script, template, and configuration file required to run the script from the USB device. The DATA folder contains the transferred DICOM images.

The BIN folder consists of the following:
dcmqrscp.tpl – Is a dcmqrscp.exe template configuration file that will be used to create a dcmqrscp.cfg file each time the USBDICM.VBS is executed.

USBDICM.VBS – The main wrapper to start and stop the DICOM server. Once the script runs, it checks to see if dcmqrscp.exe is running. If it is not running, the script reads the dcmqrscp.tpl file in to memory, replaces known tags with correct known run time values, and generates a dcmqrscp.cfg. Once the dcmqrscp.cfg file is generated the dcmqrscp.exe is executed.  If the executable is running, the process is killed and the user is allowed to eject the USB at this time.

dcmqrscp.exe – Is the DICOM Server executable from the DICOM Toolkit, DCMTK 3.6.0 for Windows (32 bit).

dcmqrscp.cfg – Configuration files required to successfully run the dcmqrscp.exe from the USB device. This file is generated every time USBDICM.VBS is executed since the USB drive letter can change between USB devices and Unetixs devices.

In addition, in the root of the USB device is a batch script that can be double clicked on to make the whole experience better for the vascular technologist by giving them an easy way to start/stop the server. This script is called @USB DICOM Server.bat.

The ZIP archive below contains the files required to run your DICOM server. The dcmqrscp.exe is not included in the archive; it can be obtained at http://dcmtk.org/dcmtk.php.en.

ZIP archive: DICOM Server on a Stick