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.
Daftar Isi
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