The Pumpkin PACS was constructed for the MGH Radiology Pumpkin Decorating Contest. It is a standalone DICOM workstation capable of displaying many standard types of radiology images.
The pumpkin contains a Raspberry Pi which projects images onto a screen using a Microvision SHOWWX+ HDMI pico projector. The screen is made of tracing paper. The application displaying the images is Aeskulap http://aeskulap.nongnu.org/.
The steps below include details of how to install the radiology workstation software and get images to the device – but the basic mechanism could be used on any project where a Raspberry Pi is projecting a mirror image so that it appears correctly when it illuminates a screen from behind.
FDA warning: this device is not for clinical or culinary use. The screen isn’t bright or sharp enough to meet the guidelines of the American College of Radiology. No strictly documented engineering process was followed nor any attempt was made to adhere to the good manufacturing process outlined in the FDA’s 510(k) requirements. However – it is absurd and you’re reading this so it might be of some interest.
[Added in edit: The images here belong to the patient (me, the author) are were not downloaded from the clinical servers at the hospital. It’s my knee :-)]
[Jargon alert:
PACS – Picture Archive and Communication System. This is what a radiology department typically uses to accept/store/display medical images.
DICOM – Digital Imaging and Communications in Medicine. This is a computer protocol for medical images. It is widely used in Radiology and Cardiology.
Step 1: Basic hardware and software installation
- Hardware requirements:
- an SD card that is at least 8GB in size.
- a USB hub (that’s the blue box in the picture). I’m using the TrendNet TU2-700.
- a projector unit. I chose the Microvision SHOWWX+ HDMI projector:
- It’s a laser projector – so focus wasn’t a problem.
- It had generally good reviews and was compatible with the iPad 2’s 30 pin connector – so I can use this for other projects.
- An HDMI micro-to-standard cable (the MicroVision SHOWWX+ has a micro-HDMI connector and the Raspberry Pi a standard connector)
- A USB mouse
- A USB keyboard (this is only really needed when you’re configuring the device – I didn’t need the keyboard when I was showing the pumpkin).
- A pumpkin.
- A small powerstrip (two outlets needed).
- You may want to have a standard HDMI monitor for doing the installation and configuration on the Pi. I found it easier to read than the projection unit.
- A ethernet connection (or you could install an 802.11 wireless). If you do install a wireless connection you may want to add another power source – I have power going to a USB hub and the Raspberry Pi is plugged into the hub.
- Install your Raspberry Pi system onto an SD card that is at least 8GB in size.
- Download a Raspberry Pi image. I used the 2012-09-18-wheezy-raspbian one – I see that a newer one has been released. Install on your SD card. Follow the instructions on http://www.raspberrypi.org/downloads
- Expand your root partition http://raspberrypi.stackexchange.com/questions/499/how-can-i-resize-my-root-partition/946#946
- Insert the SD card into the Raspberry Pi; attach the keyboard, mouse, monitor, and plug it into your network.
- There are several installations and updates which need to be applied to the Raspberry Pi
- Run sudo apt-get update to get the latest code.
- You need to install git: sudo apt-get install git-core
- You need to upgrade the firmware. A very nice utility for doing this is rpi-update: https://github.com/Hexxeh/rpi-update. Follow the instructions at this link; I did need to do the step where you install new certificates. If you don’t update the firmware you the display can’t be ‘reflected’ for display on a back projection screen.
- Install a DICOM viewer
- sudo apt-get install aeskulap
- That’s all :-). The program is under the graphics program menu.
- Set the Pi to automatically log in, launch X-Windows and launch the Aeskulap program. This means that the user doesn’t have to type anything – which means that you don’t need a keyboard attached to the pumpkin later.
- Setting up the Pi to automatically log in and launch X-windows is described here: http://elinux.org/RPi_Debian_Auto_Login
- To make Aeskulap load at boot time enter the following command to edit the autostart file:
sudo nano /etc/xdg/lxsession/LXDE/autostart
Add a line to launch aeskulap at start:
@lxpanel –profile LXDE
@pcmanfm –desktop –profile LXDE
@xscreensaver -no-splash
@aeskulap –profile LXDE
- Set up the display to be mirrored:
sudo nano /boot/config.txt
Then add the line
display_rotate=0x10000The config.txt file is attached to the instructable.
Step 2: Load DICOM images onto the device
You need to get DICOM images to the Raspberry Pi
Aeskulap can do a DICOM CFIND over the network to retrieve images or it can read DICOM part 10 images from disk. Both work – it depends on what you want to do.
DICOM CSTORE SCU option
If you are going to be live on the network you need a server (a DICOM CSTORE SCP). I used an Osirix workstation running on my Mac. The only issue here was that the server connection dialog box in Aeskulap didn’t fit on the screen so you couldn’t enter all of the information. So – I temporarily modified /boot/config.txt to rotate the screen 270 degrees so that I could see the entire dialog box and enter the correct parameters (see the comments in the /boot/config.txt file).
This worked perfectly fine but I decided not to do this because
- I didn’t believe that the hospital IT folks would be happy with me putting a pumpkin on their network.
- If the device was rebooted then I’d have to re-set up the network for DICOM (the DHCP address might have changed) and then fetch the images over again. I also didn’t know what the network connectivity in the room.
So – local storage worked best for me here.
Local DICOM storage option
Aeskulap can read in load in local files as well.
- In Osirix – I exported the studies of interest with a DICOMDIR file.
- I used Cyberduck https://itunes.apple.com/us/app/cyberduck/id409222199?mt=12 to send the files over SFTP. But any SFTP client will work if sshd is running on your Raspberry Pi.
- I copied the studies into a subfolder of the ‘pi’ home directory.
I used MR images because they were small and could be seen even on the low-contrast display. Also – it’s fun to scroll through MR images :-).I had some CR chest images which loaded fine but appeared very washed out on this screen.
If you have a DICOM CD from a hospital you might be able to copy the entire directory over to the Pi. Make sure that you can find the DICOMDIR file. If this fie isn’t present- the images may be in a proprietary format instead of in DICOM.
Then – in Aeskulap – open the DICOMDIR file and then select the study from the study browser. The images will be displayed on the monitor.
At this point the software part of the project is complete – you should be able to boot the Raspberry Pi and it will launch Aeskulap when it is completed. Use the mouse to load the DICOMDIR file and you’re ready to display images.