Before we start please make sure your server has access to:
- Unix-base shell
- Docker
- Docker Compose
- OpenSSL
You can either clone this repo
git clone https://github.com/zhiva-ai/pacs-server.git
or download it directly from zhiva.ai PACS server.
Notice
If you already have the
.crt
and.key
files do not generate them again. Go straight to Build the server section and run your server with existing certificate.
Before we starty storing data on the server we have to secure the connection between the server and the viewer. We're going to use Transport Layer Security (TSL). First, we have to generate certificate (.crt
) and key (.key
) files. Because we're doing it from the local server we're going to use OpenSSL (we don't need external party to sign certificate, if you want to use it on the external server you should sign with something like Let's Encrypt).
To generate local certifiate please execute following command in the terminal window (make sure openssl
is installed).
openssl req -x509 \
-nodes -days 365 \
-newkey rsa:2048 \
-keyout zhiva.key \
-out zhiva.crt \
-subj "/C=PL/L=Wroclaw/O=Your Company, Inc./CN=localhost"
Change -subj
to describe your organization:
C
- country code (2 letter code)L
- location (city name)O
- organization nameCN
- full domain name (uselocalhost
for local servers)
Then copy .crt
file as trusted certificate:
cat zhiva.crt > trusted.crt
At this point you should have 2 .crt
files and 1 .key
file. Check this by calling
ls *.{crt,key}
from your main directory. It should return following result trusted.crt zhiva.crt zhiva.key
.
If one of those files is missing go back to Generate local TSL certificate section and make sure you have all of them.
docker-compose up
After starting the server you should be able to access localhost/zhiva/app/explorer.html#upload where you can upload your files.
Important!!!
You might be prompted with the message about invalid SSL certificate. This is caused by using OpenSSL to generate certificate for
localhost
and that certificate has no 3rd party that confirms its authenticity. It's fine for local network but remember to use proper certificate if the server is accessible from outside your network.
If you have more than one computer inside your network (or VPN connection), then you can share the server settings with them. To check the server address please run the following command:
Linux or Mac:
ifconfig
Windows
ipconfig
and look for the setting with the inet
value that starts with 192.168.
. That should by your address in the local network. You should be able to access the upload page from 192.168.x.x:8042/app/explorer.html
.
Go to localhost/zhiva/app/explorer.html#upload and click on Select files to upload
.
After selecting all the DICOMs click Start the upload
to store them on the server.
All DICOMs are stored in Docker's persistent volume so even after restarting the server all your files are still accessible.
Now you should be able to access studies which were generated after uploading DICOM files. List of studies is available at https://localhost/zhiva/app/explorer.html#find-studies.
- "Why my server doesn't accept very large DICOM files?"
There is an maximum file size setting inside server config. If you want to change that please go to ./nginx.conf
and modify:
client_max_body_size 2000m;