Aug 17 2016

How to Deploy Open-Source PACS on Nutanix Acropolis Container Services with Persistent Storage

In this article I’ll demonstrate how to deploy an open-source PACS solution (DICOM server) on Nutanix using Acropolis Container Services and implementing persistent storage using Nutanix Volume Services. If you are not familiar, PACS (Picture Archiving and Communication System) is a healthcare technology for the short- and long-term storage, retrieval, management, distribution and presentation of medical images.

Im using Orthanc, a Belgian, open-source, lightweight DICOM server for healthcare and medical research. Orthanc aims at providing a simple, yet powerful standalone DICOM server. It is designed to improve the DICOM flows in hospitals and to support research about the automated analysis of medical images.

For this implementation you may also use the Free Nutanix CE.

 

 

Getting Started… First you will need to download the Docker machine-driver and a Docker host VM image from the Nutanix support portal to your computer. Docker-machine works with VMs and dockers inside it. Since VMs can be on physical servers, virtual or cloud, it provides drivers that lets you work with each one the way they require. Next you will use the Prism image service to upload the Docker host VM image to your Nutanix cluster. Detailed instruction can be found here.

Now you need to create the Docker host VM using the Docker host VM image previously uploaded using the Prism image service. Detailed instruction can be found here. Make sure you have installed the docker-machine drivers for Nutanix in your computer – they are also available from the Nutanix Portal, here.

To create the Docker host VM type the below command in your workstation.

$ docker-machine -D create -d nutanix –nutanix-username admin –nutanix-password ‘password’ –nutanix-endpoint ‘10.20.28.62:9440’ –nutanix-vm-image container-host-image-20160628 –nutanix-vm-network ‘0’ nutanix-docker-orthanc

 

Important : The latest Yum update package introduced a docker-machine bug that affect Docker service and has not been fixed yet. After the Docker host VM is created you’ll need to ssh into the Docker host VM and edit docker.service. Follow the instructions below.

$ docker-machine ssh nutanix-docker-vm-orthanc
vi /etc/systemd/system/docker.service
Add a ‘#’ in front of Requires=docker.socket and save config file
reboot

 

Now you’ll need to to log in (ssh) to the Docker host VM and start the Nutanix storage volume plug-in by running an interactive script. This script is responsible for creating the persistent storage assignment for the orthanc container. Detailed instruction can be found here.

$ docker-machine ssh nutanix-docker-vm-orthanc
[root@nutanix-docker-vm-orthanc ~]# ./start-volume-plugin.sh
Starting Nutanix volume plugin container…
Redirecting to /bin/systemctl restart docker.service
Enter prism ip address: 10.4.161.202
Enter Dataservices ip address: 10.4.161.201
Enter prism username: admin
Enter prism password:
Enter nutanix container where you want persistent volumes: default-container-42076
prism ip address : 10.4.161.202
dataservice ip address: 10.4.161.201
prism username : admin
default container : default-container-42076

 

Ok, now it’s time to pull the Orthanc Docker image from Docker Hub. Thankfully Sébastien Jodogne from the University Hospital of Liège in Belgium has already done the hard work and created a Docker image ready to be downloaded and used. (https://github.com/jodogne/OrthancDocker). From within the Docker host VM execute the command below to pull and deploy the image.

$ docker-machine ssh nutanix-docker-vm-orthanc
docker run -p 4242:4242 -p 8042:8042 –volume-driver nutanix –name orthanc -v orthanc-config:/etc/orthanc -v orthanc-db:/var/lib/orthanc/db jodogne/orthanc-plugins

 

The jodogne/orthanc-plugins image is automatically pulled from Docker Hub and deployed to the Orthanc Docker host VM. The command also specify the required TCP port mapping for your Orthanc deployment. Finally, the orthanc-config and orthanc-db volumes are automaticatly created within Nutanix NDFS, in my case i’m using a storage container named default-container-42076, and are mounted at /etc/orthanc and /var/lib/orthanc/db respectively.

The picture below show the two volumes configured as persistent storage for the orthanc application running in a Docker container.

 

This is what you should see when running $docker ps from within the Docker host VM.

 

At this point in time your Orthanc server is up and running and can be accessed via browser at http://you_docker_vm_address:8042. The default username and password are orthanc/orthanc. If you want to upload some DICOM images you may find a few sample here.

 

Your Orthanc deployment is up, running and accessible via web browser now, but in order to provide access to remote DICOM viewers and listeners you’ll need to edit the config.json and add the IP address for your workstation. There are many article that will describe the process in detail, here is one. Here is my simple example:
[root@nutanix-docker-vm-orthanc ~]# docker exec -ti orthanc bash
root@1215d9f8365a:/# vi /etc/orthanc/orthanc.json

/**
* Network topology
**/

// The list of the known DICOM modalities
“DicomModalities” : {
/**
* Uncommenting the following line would enable Orthanc to
* connect to an instance of the “storescp” open-source DICOM
* store (shipped in the DCMTK distribution) started by the
* command line “storescp 2000”.
**/
// “sample” : [ “STORESCP”, “127.0.0.1”, 2000 ]
“Andre-MBA” : [ “Andre-MBA”, “10.3.249.42”, 1112 ]

 

Finally…

I am no physician, specialist and I make no claims here, but as far as DICOM viewers I personally use Osiris, because is also open-source and free. OsiriX is an image processing software dedicated to DICOM images (“.dcm” / “.DCM” extension) produced by imaging equipment (MRI, CT, PET, PET-CT, SPECT-CT, Ultrasounds, …). It is fully compliant with the DICOM standard for image comunication and image file formats. Check it out here.

ObliqueMPR-02

 

I hope this article was useful to understand the process of creating a Docker Host VM with persistent storage assignment and running containers on Nutanix platform. This is the first release of Acropolis Containers Services and graphic UI will be introduced in forthcoming releases to make the management process even easier.

 

This article was first published by Andre Leibovici (@andreleibovici) at myvirtualcloud.net

Older posts «

» Newer posts