Panduan Instalasi Orthanc Server dengan MySQL di Linux Mint

Panduan lengkap untuk menginstal dan mengkonfigurasi server Orthanc DICOM dengan database MySQL di Linux Mint. Orthanc adalah server DICOM open-source yang powerful untuk menyimpan dan mengelola medical imaging data.

1. Persiapan Sistem

Update sistem

sudo apt update && sudo apt upgrade -y

Install dependensi dasar

sudo apt install -y curl wget gnupg2 software-properties-common
Info: Pastikan sistem Linux Mint Anda sudah ter-update untuk menghindari konflik dependensi.

2. Instalasi MySQL Server

Install MySQL

sudo apt install -y mysql-server mysql-client

Konfigurasi keamanan MySQL

sudo mysql_secure_installation
Penting: Saat menjalankan mysql_secure_installation, pastikan untuk mengatur password root yang kuat dan hapus user anonymous.

Buat database dan user untuk Orthanc

sudo mysql -u root -p

Di dalam MySQL console, jalankan perintah berikut:

CREATE DATABASE orthanc;
CREATE USER 'orthanc'@'localhost' IDENTIFIED BY 'password_anda';
GRANT ALL PRIVILEGES ON orthanc.* TO 'orthanc'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Keamanan: Ganti password_anda dengan password yang kuat dan aman.

3. Instalasi Orthanc

Tambah repository Orthanc

wget -O - https://www.orthanc-server.com/downloads/get.php?path=/gpg/orthanc.key | sudo apt-key add -
echo "deb https://www.orthanc-server.com/downloads/linux-standard/ focal main" | sudo tee /etc/apt/sources.list.d/orthanc.list

Update repository dan install Orthanc

sudo apt update
sudo apt install -y orthanc orthanc-mysql

Install plugin tambahan

sudo apt install -y orthanc-dicomweb orthanc-webviewer orthanc-gdcm orthanc-python orthanc-wsi
Plugin yang diinstal:
  • orthanc-dicomweb: Mendukung DICOM Web API (WADO-RS, QIDO-RS, STOW-RS)
  • orthanc-webviewer: Web-based DICOM viewer
  • orthanc-gdcm: Advanced DICOM parsing dengan GDCM
  • orthanc-python: Python scripting support
  • orthanc-wsi: Whole Slide Imaging support

4. Konfigurasi Orthanc

Buat direktori konfigurasi

sudo mkdir -p /etc/orthanc
sudo mkdir -p /var/lib/orthanc/db

Buat file konfigurasi utama

sudo nano /etc/orthanc/orthanc.json

Isi dengan konfigurasi berikut:

{
  "Name": "Orthanc Server",
  "StorageDirectory": "/var/lib/orthanc/db",
  "IndexDirectory": "/var/lib/orthanc/db",
  
  "HttpPort": 8042,
  "DicomPort": 4242,
  "DicomAet": "ORTHANC",
  
  "RemoteAccessAllowed": true,
  "AuthenticationEnabled": true,
  "RegisteredUsers": {
    "admin": "admin123",
    "user": "user123"
  },
  
  "DicomModalities": {
    "sample": {
      "AET": "SAMPLE",
      "Port": 2000,
      "Host": "127.0.0.1"
    }
  },
  
  "OrthancPeers": {
    "peer": {
      "URL": "http://127.0.0.1:8043/",
      "Username": "orthanc",
      "Password": "orthanc"
    }
  },
  
  "MySQL": {
    "EnableIndex": true,
    "EnableStorage": false,
    "Host": "localhost",
    "Port": 3306,
    "Database": "orthanc",
    "Username": "orthanc",
    "Password": "password_anda",
    "UnixSocket": "/var/run/mysqld/mysqld.sock"
  },
  
  "ConcurrentJobs": 2,
  "HttpsVerifyPeers": false,
  "HttpsCACertificates": "/etc/ssl/certs/ca-certificates.crt",
  
  "SslEnabled": false,
  "SslCertificate": "/etc/ssl/certs/orthanc.crt",
  "SslPrivateKey": "/etc/ssl/private/orthanc.key",
  
  "DicomWeb": {
    "Enable": true,
    "Root": "/dicom-web/",
    "EnableWado": true,
    "WadoRoot": "/wado",
    "Ssl": false,
    "QidoRoot": "/qido",
    "StowRoot": "/stow"
  },
  
  "Plugins": [
    "/usr/share/orthanc/plugins/libOrthancMySQLIndex.so",
    "/usr/share/orthanc/plugins/libOrthancDicomWeb.so",
    "/usr/share/orthanc/plugins/libOrthancWebViewer.so",
    "/usr/share/orthanc/plugins/libOrthancGdcm.so"
  ],
  
  "LogLevel": "INFO",
  "LogFile": "/var/log/orthanc/orthanc.log"
}
Keamanan: Pastikan mengganti password default untuk user admin dan user biasa.

Buat direktori log

sudo mkdir -p /var/log/orthanc
sudo chown orthanc:orthanc /var/log/orthanc

5. Konfigurasi Sistem Service

Buat file systemd service

sudo nano /etc/systemd/system/orthanc.service

Isi dengan:

[Unit]
Description=Orthanc DICOM Server
After=network.target mysql.service
Requires=mysql.service

[Service]
Type=simple
User=orthanc
Group=orthanc
ExecStart=/usr/bin/Orthanc /etc/orthanc/orthanc.json
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Buat user sistem untuk Orthanc

sudo useradd -r -s /bin/false orthanc
sudo chown -R orthanc:orthanc /var/lib/orthanc
sudo chown -R orthanc:orthanc /etc/orthanc
Info: User sistem orthanc dibuat tanpa shell login untuk keamanan tambahan.

6. Konfigurasi Firewall

Buka port yang diperlukan

sudo ufw allow 8042/tcp  # HTTP port
sudo ufw allow 4242/tcp  # DICOM port
sudo ufw reload
Port yang dibuka:
  • 8042: Web interface dan REST API
  • 4242: DICOM protocol communication

7. Menjalankan Orthanc

Reload systemd dan start service

sudo systemctl daemon-reload
sudo systemctl enable orthanc
sudo systemctl start orthanc

Cek status service

sudo systemctl status orthanc

Cek log jika ada masalah

sudo journalctl -u orthanc -f
Sukses: Jika status menunjukkan "active (running)", berarti Orthanc sudah berjalan dengan baik.

8. Verifikasi Instalasi

Test koneksi web interface

Buka browser dan akses: http://localhost:8042

  • Username: admin
  • Password: admin123

Test koneksi MySQL

mysql -u orthanc -p orthanc

Test DICOM connectivity

# Install DICOM toolkit untuk testing
sudo apt install -y dcmtk

# Test echo ke Orthanc
echoscu localhost 4242 -aet TEST -aec ORTHANC
Verifikasi berhasil jika:
  • Web interface dapat diakses dan login berhasil
  • Koneksi MySQL berhasil
  • DICOM echo test mengembalikan response positif

9. Konfigurasi Tambahan

Konfigurasi SSL (Opsional)

# Generate self-signed certificate
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/ssl/private/orthanc.key \
    -out /etc/ssl/certs/orthanc.crt

# Update permission
sudo chmod 600 /etc/ssl/private/orthanc.key
sudo chown orthanc:orthanc /etc/ssl/private/orthanc.key

Kemudian update konfigurasi orthanc.json:

"SslEnabled": true,
"HttpsPort": 8043

Script Backup Database

sudo nano /usr/local/bin/orthanc-backup.sh

Isi script:

#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/var/backups/orthanc"
mkdir -p $BACKUP_DIR

# Backup MySQL database
mysqldump -u orthanc -p orthanc > $BACKUP_DIR/orthanc_db_$DATE.sql

# Backup file storage
tar -czf $BACKUP_DIR/orthanc_files_$DATE.tar.gz /var/lib/orthanc/db

# Cleanup old backups (keep 7 days)
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/orthanc-backup.sh

Monitoring dan Maintenance

Monitoring disk space

# Cek ukuran database
sudo du -sh /var/lib/orthanc/db

# Monitoring MySQL
sudo mysql -u orthanc -p -e "SELECT table_name, ROUND(((data_length + index_length) / 1024 / 1024), 2) 'DB Size in MB' FROM information_schema.tables WHERE table_schema='orthanc';"

Log rotation

sudo nano /etc/logrotate.d/orthanc
/var/log/orthanc/*.log {
    daily
    rotate 30
    compress
    delaycompress
    missingok
    notifempty
    create 644 orthanc orthanc
    postrotate
        systemctl reload orthanc
    endscript
}

10. Troubleshooting

Masalah Umum dan Solusi

1. Service gagal start

sudo journalctl -u orthanc -n 50

2. Koneksi MySQL gagal

# Test koneksi MySQL
mysql -u orthanc -p orthanc -h localhost

3. Permission denied

sudo chown -R orthanc:orthanc /var/lib/orthanc
sudo chmod -R 755 /var/lib/orthanc

4. Plugin tidak load

# Cek apakah plugin ada
ls -la /usr/share/orthanc/plugins/

5. Port sudah digunakan

# Cek port yang digunakan
sudo netstat -tulpn | grep -E "(8042|4242)"

6. MySQL connection refused

# Restart MySQL service
sudo systemctl restart mysql
sudo systemctl status mysql
Tips Debugging:
  • Selalu cek log dengan journalctl -u orthanc -f
  • Verifikasi permission file dan direktori
  • Pastikan MySQL service berjalan sebelum Orthanc
  • Cek konfigurasi JSON syntax dengan validator online

🎉 Instalasi Selesai!

Orthanc server dengan MySQL sekarang sudah siap digunakan. Berikut adalah informasi akses:

  • Web Interface: http://localhost:8042
  • DICOM Port: 4242
  • DICOM AET: ORTHANC
  • Username: admin / user
  • Password: admin123 / user123

Jangan lupa untuk mengganti password default dan melakukan backup berkala!

Fitur yang Tersedia:

  • Web Interface: Akses melalui browser untuk management
  • DICOM Web API: RESTful API untuk integrasi aplikasi
  • DICOM Protocol: Komunikasi dengan modalitas medis
  • MySQL Database: Penyimpanan index yang scalable
  • Web Viewer: Viewing DICOM images langsung di browser
  • Auto Backup: Script otomatis untuk backup data
  • SSL Support: Enkripsi komunikasi (opsional)
  • Multi-user: Sistem autentikasi dan autorisasi

إرسال تعليق