Install Pacs 1.0 #1

Open
opened 2024-12-11 13:28:37 +07:00 by sas.padmanto · 2 comments
Collaborator

Exclude install mariadb dan database

Exclude install mariadb dan database
Collaborator

Introduction

Compose PACS ini terdiri dari 3 images, yaitu Mirth, DCM4CHE, dan Apache2(NV). Berikut ini merupakan langkah-langkah instalasi compose PACS tanpa setup database

Test Conditions

  • OS: Windows 11 x64
  • Terminal: Powershell
  • Docker: Version 25.0.3, build 4debf41 (running)
  • Local IP: 192.168.0.104
  • PACS DB Host: 192.168.0.120:3306
  • HIS DB Host: dev.sismedika.online:3306 (DB: rsabt201107)
  • Config Directory: '/data/docker' adalah direktori file config berada atau 'E:/A1 - WORK SAS/pacs/docker' in this test
  • Port Availability:
    • Apache2 (80): Available
    • Mirth (9080, 9443, 8082): Available
    • DCM4CHE (originally 11112, 2575, 8080): Mapped to 21112, 12575, 18080 due to port conflicts

Steps

1. Login to Docker

docker login devone.aplikasi.web.id/gitea
user: one
pass: one102938

2. Pull Docker Images

docker pull devone.aplikasi.web.id/one/mirth:1.0
docker pull devone.aplikasi.web.id/one/dcm4che:1.0
docker pull devone.aplikasi.web.id/one/apache-nv:1.0

3. Download Config Files

4. Create docker-compose.yml

version: '3.8'

services:
  mirth:
    image: devone.aplikasi.web.id/one/mirth:1.0
    ports:
      - "9080:9080"
      - "9443:9443"
      - "8082:8082"
    volumes:
      - "E:/A1 - WORK SAS/pacs/docker/mirth/conf:/srv/mirth/conf"
      - "E:/A1 - WORK SAS/pacs/docker/mirth/logs:/srv/mirth/logs"
      - "E:/A1 - WORK SAS/pacs/docker/mirth/appdata/temp:/srv/mirth/appdata/temp"

  dcm4chee:
    image: devone.aplikasi.web.id/one/dcm4che:1.0
    ports:
      - "18080:8080"  # Mapped due to conflict
      - "12575:2575"  # Mapped due to conflict
      - "21112:11112"  # Mapped due to conflict
    volumes:
      - "E:/A1 - WORK SAS/pacs/docker/dcm4chee/server/archive:/srv/dcm4chee/server/default/archive"
      - "E:/A1 - WORK SAS/pacs/docker/dcm4chee/server/deploy:/srv/dcm4chee/server/default/deploy"
      - "E:/A1 - WORK SAS/pacs/docker/dcm4chee/server/log:/srv/dcm4chee/server/default/log"
      - "E:/A1 - WORK SAS/pacs/docker/dcm4chee/server/tmp:/srv/dcm4chee/server/default/tmp"

  nv:
    image: devone.aplikasi.web.id/one/apache-nv:1.0
    ports:
      - "80:80"
    volumes:
      - "E:/A1 - WORK SAS/pacs/docker/nv/etc-php:/etc/php/7.4/apache2"
      - "E:/A1 - WORK SAS/pacs/docker/nv/html:/var/www/html"

5. Configure Files

a. mirth.properties

  • Location: /data/docker/mirth/conf/mirth.properties
  • Update: database.url = jdbc:mysql://192.168.0.120:3306/mirthdb

b. pacs-mysql-ds.xml

  • Location: /data/docker/dcm4che/server/deploy/pacs-mysql-ds.xml
  • Update (Line 11): <connection-url>jdbc:mysql://192.168.0.120:3306/pacsdb</connection-url>

c. dcmgwPacs.php

  • Location: /data/docker/nv/html/dcmgw/dcmgwPacs.php
  • Update: $port = '21112'; (to match the mapped port)

d. config.php

  • Location: /data/docker/nv/html/nv/config.php
  • Updates:
    • XOCP_PACS_HOST: 192.168.0.104 (Local IP)
    • XOCP_PACS_WADO_URI: http://192.168.0.104:18080/wado (Local IP and mapped port)
    • XOCP_SERVER: http://192.168.0.104:80 (Local IP)
    • Database settings as per the file

e. api.php

  • Location: /data/docker/nv/html/api.php
  • Updates:
    • $db: new Database("192.168.0.120", "pacs", "pacs", "pacsdb_his", 3306);
    • $dbhis: as per the file
    • $wado_thumb: updated with Local IP and mapped port

f. dcmgwConfig.php

  • Location: /data/docker/nv/html/dcmgw/dcmgwConfig.php
  • Update: PATH_BASE_DCM4CHE2 as per the file

6. Run Docker Compose

  • Navigate to the directory containing docker-compose.yml
  • Execute: docker-compose up

7. Test Workflow

  • Perform a test workflow for Modality
**Introduction** ================ Compose PACS ini terdiri dari 3 images, yaitu Mirth, DCM4CHE, dan Apache2(NV). Berikut ini merupakan langkah-langkah instalasi compose PACS **tanpa** setup database **Test Conditions** ------------------- * **OS**: Windows 11 x64 * **Terminal**: Powershell * **Docker**: Version 25.0.3, build 4debf41 (running) * **Local IP**: 192.168.0.104 * **PACS DB Host**: 192.168.0.120:3306 * **HIS DB Host**: dev.sismedika.online:3306 (DB: rsabt201107) * **Config Directory**: '/data/docker' adalah direktori file config berada atau 'E:/A1 - WORK SAS/pacs/docker' in this test * **Port Availability**: + Apache2 (80): Available + Mirth (9080, 9443, 8082): Available + DCM4CHE (originally 11112, 2575, 8080): Mapped to 21112, 12575, 18080 due to port conflicts **Steps** ========== ### 1. Login to Docker ```markdown docker login devone.aplikasi.web.id/gitea user: one pass: one102938 ``` ### 2. Pull Docker Images ```markdown docker pull devone.aplikasi.web.id/one/mirth:1.0 docker pull devone.aplikasi.web.id/one/dcm4che:1.0 docker pull devone.aplikasi.web.id/one/apache-nv:1.0 ``` ### 3. Download Config Files * [https://drive.google.com/file/d/170luE0Ij1BBJB4G1tIfn6S0q8zNBH_I5/view?usp=drive_link](https://drive.google.com/file/d/170luE0Ij1BBJB4G1tIfn6S0q8zNBH_I5/view?usp=drive_link) ### 4. Create `docker-compose.yml` ```yaml version: '3.8' services: mirth: image: devone.aplikasi.web.id/one/mirth:1.0 ports: - "9080:9080" - "9443:9443" - "8082:8082" volumes: - "E:/A1 - WORK SAS/pacs/docker/mirth/conf:/srv/mirth/conf" - "E:/A1 - WORK SAS/pacs/docker/mirth/logs:/srv/mirth/logs" - "E:/A1 - WORK SAS/pacs/docker/mirth/appdata/temp:/srv/mirth/appdata/temp" dcm4chee: image: devone.aplikasi.web.id/one/dcm4che:1.0 ports: - "18080:8080" # Mapped due to conflict - "12575:2575" # Mapped due to conflict - "21112:11112" # Mapped due to conflict volumes: - "E:/A1 - WORK SAS/pacs/docker/dcm4chee/server/archive:/srv/dcm4chee/server/default/archive" - "E:/A1 - WORK SAS/pacs/docker/dcm4chee/server/deploy:/srv/dcm4chee/server/default/deploy" - "E:/A1 - WORK SAS/pacs/docker/dcm4chee/server/log:/srv/dcm4chee/server/default/log" - "E:/A1 - WORK SAS/pacs/docker/dcm4chee/server/tmp:/srv/dcm4chee/server/default/tmp" nv: image: devone.aplikasi.web.id/one/apache-nv:1.0 ports: - "80:80" volumes: - "E:/A1 - WORK SAS/pacs/docker/nv/etc-php:/etc/php/7.4/apache2" - "E:/A1 - WORK SAS/pacs/docker/nv/html:/var/www/html" ``` ### 5. Configure Files #### a. `mirth.properties` * Location: `/data/docker/mirth/conf/mirth.properties` * Update: `database.url = jdbc:mysql://192.168.0.120:3306/mirthdb` #### b. `pacs-mysql-ds.xml` * Location: `/data/docker/dcm4che/server/deploy/pacs-mysql-ds.xml` * Update (Line 11): `<connection-url>jdbc:mysql://192.168.0.120:3306/pacsdb</connection-url>` #### c. `dcmgwPacs.php` * Location: `/data/docker/nv/html/dcmgw/dcmgwPacs.php` * Update: `$port = '21112';` (to match the mapped port) #### d. `config.php` * Location: `/data/docker/nv/html/nv/config.php` * Updates: + `XOCP_PACS_HOST`: `192.168.0.104` (Local IP) + `XOCP_PACS_WADO_URI`: `http://192.168.0.104:18080/wado` (Local IP and mapped port) + `XOCP_SERVER`: `http://192.168.0.104:80` (Local IP) + Database settings as per the file #### e. `api.php` * Location: `/data/docker/nv/html/api.php` * Updates: + `$db`: `new Database("192.168.0.120", "pacs", "pacs", "pacsdb_his", 3306);` + `$dbhis`: as per the file + `$wado_thumb`: updated with Local IP and mapped port #### f. `dcmgwConfig.php` * Location: `/data/docker/nv/html/dcmgw/dcmgwConfig.php` * Update: `PATH_BASE_DCM4CHE2` as per the file ### 6. Run Docker Compose * Navigate to the directory containing `docker-compose.yml` * Execute: `docker-compose up` ### 7. Test Workflow * Perform a test workflow for Modality
Collaborator

Introduction

Tahap ini merupakan tahap lanjutan compose PACS sebelumnya dan ditambah dengan setup database.

PACS Server

  • OS: Ubuntu Server 22.04
  • Host: 206.189.147.234 (Digital Ocean)

Setup MariaDB

1. Install OS

  • Install OS: Ubuntu Server 22.04
  • Cek TimeZone Server
      timedatectl
    
  • Jika Time Zone bukan UTC +7 atau WIB, maka setting timezone server menjadi UTC +7
      sudo timedatectl set-timezone Region/City
    

2. Create User and Permission

#Login as root
sudo -s 
adduser pacs 
pacs123 //Ketik manual password
adduser mirth 
mirth123 //Ketik manual password
usermod -aG sudo pacs

3. Install MariaDB

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo apt-get update
sudo apt-get install mariadb-server
sudo mysql_secure_installation 
		Root password: sasone102938
		Switch to unix_socket_auth: n
		Change the root password: y
    Set root password? [Y/n]: Y
    New password: Enter password sasone102938
    Re-enter new password: Repeat password sasone102938
    Remove anonymous users? [Y/n]: Y
    Disallow root login remotely? [Y/n]: Y
    Remove test database and access to it? [Y/n]: Y
    Reload privilege tables now? [Y/n]: Y
sudo systemctl restart mysql.service

4. Atur Access Privileges

  • Masuk ke MariaDB: sudo mysql -uroot -p
  • Buat DB dan assign ke tiap user:
      create schema pacsdb;  
      grant all on pacsdb.* to pacs@'%' identified by 'pacs';  
      flush privileges;
    
      create schema arrdb;  
      grant all on arrdb.* to arr@'%' identified by 'arr';  
      flush privileges;  
    
      create schema pacsdb_his;  
      grant all on pacsdb_his.* to pacs@'%' identified by 'pacs';  
      flush privileges;  
    
      create database mirthdb;
      grant all privileges on mirthdb.* to mirth@'%' identified by 'mirth';
      flush privileges;
    

5. Buat Tabel dari file mysql pacs_installer

  • Pindah ke direktori user pacs
      cd /home/pacs
    
  • Download .zip folder berisi .sql:
      wget -O mysql.zip https://drive.google.com/uc?id=1N3I9iA0aejL984bPRWcba6TtAaaYeoYw&export=download 
    
  • Tunggu sekitar 10 detik dan tekan ctrl+c
  • Cek file 'mysql.zip' dengan ls -l
  • Install unzip:
  • Extract mysql.zip: sudo apt install unzip
  • Which services should be restarted: 'unattended-upgrade.service'
  • Extract mysql dan jalankan SQL untuk membuat tabel
    unzip mysql.zip
    cd mysql
    # Jalankan satu per satu
    mysql -uroot -p arrdb < arrdb.sql
    mysql -uroot -p mirthdb < mirthdb.sql
    mysql -uroot -p pacsdb < pacsdb.sql
    mysql -uroot -p pacsdb_his < pacsdb_his.sql
    

6. Sesuaikan timezone MariaDB

  • Buka config:
      cd /etc/mysql/mariadb.conf.d
      nano 50-server.cnf
    
  • Edit dan Tambahkan:
    # Jika ingin mengakses database dari luar local, maka comment bind_address
    # bind-address            = 127.0.0.1 
    
    
    # Tambahkan
    [mysqld]
    default_time_zone='+07:00'
    

7. Install Packages untuk keperluan Debugging (just in case)

sudo apt update
sudo apt install net-tools
sudo apt update
sudo apt install telnet
sudo apt update
sudo apt install ufw

Install Docker

1. Add Docker's official GPG key:

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

2. Add the repository to Apt sources:

echo \
	"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
	$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
	sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

3. Install Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo apt install docker-compose

4. Verify the installation:

sudo docker run hello-world
  • Jika sukses akan muncul pesan:
Hello from Docker!
This message shows that your installation appears to be working correctly.

Compose PACS

Download Config Files

  • Download config file dari Link File Config (/data/docker)
  • Letakkan pada /home di PACS Server
  • Current Method: Download dulu lalu FTP ke PACS Server
  • Jalankan:
      sudo mkdir -p /data
      sudo cp /home/one/docker.zip /data/
      cd /data
      sudo unzip docker.zip
      sudo chown -R pacs:pacs docker
    
  • Config files ini nantinya akan di-bind-mount dengan container agar perubahan config dapat dilakukan tanpa rebuild image container

Create docker-compose.yml

  • Change Dir cd /home/pacs
  • Buat file touch docker-compose.yml
  • Edit file nano docker-compose.yml
  • Tambahkan:
version: '3.8'

services:
  mirth:
    image: devone.aplikasi.web.id/one/mirth:1.0
    ports:
      - "9080:9080"
      - "9443:9443"
      - "8082:8082"
    volumes:
      - "/data/docker/mirth/conf:/srv/mirth/conf"
      - "/data/docker/mirth/logs:/srv/mirth/logs"
      - "/data/docker/mirth/appdata/temp:/srv/mirth/appdata/temp"

  dcm4chee:
    image: devone.aplikasi.web.id/one/dcm4che:1.0
    ports:
      - "8080:8080"  
      - "2575:2575"  
      - "11112:11112"
    volumes:
      - "/data/docker/dcm4chee/server/archive:/srv/dcm4chee/server/default/archive"
      - "/data/docker/dcm4chee/server/deploy:/srv/dcm4chee/server/default/deploy"
      - "/data/docker/dcm4chee/server/log:/srv/dcm4chee/server/default/log"
      - "/data/docker/dcm4chee/server/tmp:/srv/dcm4chee/server/default/tmp"
      - "/data/docker/dcm4chee/server/work:/srv/dcm4chee/server/default/work"

  nv:
    image: devone.aplikasi.web.id/one/apache-nv:1.0
    ports:
      - "80:80"
    volumes:
      - "/data/docker/nv/etc-php:/etc/php/7.4/apache2"
      - "/data/docker/nv/html:/var/www/html"

Configure Files

  • Kembali ke cd /data/docker

a. mirth.properties

  • Location: /data/docker/mirth/conf/mirth.properties
  • Update: database.url = jdbc:mysql://206.189.147.234:3306/mirthdb

b. pacs-mysql-ds.xml

  • Location: /data/docker/dcm4che/server/deploy/pacs-mysql-ds.xml
  • Update (Line 11): <connection-url>jdbc:mysql://206.189.147.234:3306/pacsdb</connection-url>

c. config.php

  • Location: /data/docker/nv/html/nv/config.php
  • Updates:
    • XOCP_PACS_HOST: 206.189.147.234 (Local IP)
    • XOCP_PACS_WADO_URI: http://206.189.147.234:18080/wado (Local IP and mapped port)
    • XOCP_SERVER: http://206.189.147.234:80 (Local IP)
    • Database settings as per the file

d. api.php

  • Location: /data/docker/nv/html/api.php
  • Updates:
    • $db: new Database("206.189.147.234", "pacs", "pacs", "pacsdb_his", 3306);
    • $dbhis: new Database("dev.sismedika.online", "hispacs", "s1sm3d1k4123!", "rsabt201107", 3306)
    • $wado_thumb: http://206.189.147.234:8080/wado?requestType=WADO&studyUID=${study_iuid}&seriesUID=${series_iuid}&objectUID=${sop_iuid}&columns=128

e. dcmgwConfig.php

  • Location: /data/docker/nv/html/dcmgw/dcmgwConfig.php
  • Update: PATH_BASE_DCM4CHE2 dan $pacsHome as per the file
      $pacsHome = new DCM4CHEE('ABPACS', '206.189.147.234');
      define ('PATH_BASE_DCM4CHE2', '/var/www/dcm4che/dcm4che2/bin/');
    

f. dcmgwPacs.php

  • Location: /data/docker/nv/html/dcmgw/dcmgwPacs.php
  • Update: $port = '11112'; (to match the mapped port) in
      class DCM4CHEE extends PACS {
    function __construct($AETitle, $host) {
      $port = '11112';
      	...
    

Login to Docker

docker login devone.aplikasi.web.id/gitea

user: one
pass: one102938

Run Docker Compose

  • Change Dir cd /home/pacs atau di mana docker-compose.yml berada
  • Execute: docker-compose up

Config Mirth

Config IP dan Port DCM4CHE

  • Buka ip.pacs.server:9080
  • Click 'Launch Mirth Connect Administrator' lalu download file .jnlp
  • Buka file .jnlp dengan
    • Buka terminal di file .jnlp berada
    • Jalankan dengan Java Web Start javaws "nama file.jnlp"
    • Tunggu dan Login, pastikan server mengarah pada https://ip.pacs.server:9443
  • Buka Channel lalu double click ORM Trigger
  • Pilih Destinations lalu klik RIS Send Order
  • Ubah Remote Address menjadi ip.pacs.server dan Remote Port menjadi 2575 atau sesuai port dicom pacs server
  • Jalankan Test Connection
  • Pilih RIS Cancel Order lalu ulangi tahap perubahan IP dan Port
  • Klik Save Changes pada di sidebar
  • Klik Validate Connector lalu Deploy Channel

Config DB di Edit Transformer

  • Buka Channel lalu double click ORM Trigger
  • Pilih Destinations
  • Klik kanan RIS Send Order lalu Edit Transformer
  • Klik Generate ORM Message lalu buka Step di bawahnya
  • Ubah baris kode berikut ini, sesuaikan dengan DB yang digunakan
    dbConn  = connect_mysql('dev.sismedika.online','3306','rsabt201107','hispacs','s1sm3d1k4123!');
    dbConn2 = connect_mysql('206.189.147.234','3306','pacsdb_his','pacs','pacs');
    
  • Jika sudah, maka Back to Channel
  • Klik kanan RIS Cancel Order lalu Edit Transformer
  • Ulangi langkah perubahan script seperti dengan Send Order
  • Save Changes - Validate Connector - Deploy Channel

Test Workflow

  • Perform a test workflow for Modality
    Test Performed Checkbox
    CURL Send Order ke Mirth port 8082 [v]
    CURL Cancel Order ke Mirth port 8082 [v]
    HIS Send Order [v]
    HIS Cancel Order [v]
    Modality Worklist Query dengan Emulator [v]
    Send MPPS Progress [v]
    Image Store [v]
    Send MPPS Completed [v]
    Image Tampil di halaman folder dcm4che [v]
    Images tampil di NV [v]
    CURL api.php untuk INSERT ke pacs_result_series dan release ke HIS untuk di open dari HIS [v]
## Introduction Tahap ini merupakan tahap lanjutan compose PACS sebelumnya dan ditambah **dengan** setup database. ### PACS Server * OS: Ubuntu Server 22.04 * Host: 206.189.147.234 (Digital Ocean) ## Setup MariaDB ### 1. Install OS * Install OS: Ubuntu Server 22.04 * Cek TimeZone Server ```bash timedatectl ``` * Jika Time Zone bukan UTC +7 atau WIB, maka setting timezone server menjadi UTC +7 ```bash sudo timedatectl set-timezone Region/City ``` * ### 2. Create User and Permission ```bash #Login as root sudo -s adduser pacs pacs123 //Ketik manual password adduser mirth mirth123 //Ketik manual password usermod -aG sudo pacs ``` ### 3. Install MariaDB ```bash curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash sudo apt-get update sudo apt-get install mariadb-server sudo mysql_secure_installation ``` ```markdown Root password: sasone102938 Switch to unix_socket_auth: n Change the root password: y Set root password? [Y/n]: Y New password: Enter password sasone102938 Re-enter new password: Repeat password sasone102938 Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y ``` ```bash sudo systemctl restart mysql.service ``` ### 4. Atur Access Privileges * Masuk ke MariaDB: `sudo mysql -uroot -p` * Buat DB dan assign ke tiap user: ```SQL create schema pacsdb; grant all on pacsdb.* to pacs@'%' identified by 'pacs'; flush privileges; create schema arrdb; grant all on arrdb.* to arr@'%' identified by 'arr'; flush privileges; create schema pacsdb_his; grant all on pacsdb_his.* to pacs@'%' identified by 'pacs'; flush privileges; create database mirthdb; grant all privileges on mirthdb.* to mirth@'%' identified by 'mirth'; flush privileges; ``` ### 5. Buat Tabel dari file mysql pacs_installer * Pindah ke direktori user pacs ```bash cd /home/pacs ``` * Download .zip folder berisi .sql: ```bash wget -O mysql.zip https://drive.google.com/uc?id=1N3I9iA0aejL984bPRWcba6TtAaaYeoYw&export=download ``` * Tunggu sekitar 10 detik dan tekan `ctrl+c` * Cek file 'mysql.zip' dengan `ls -l` * Install unzip: * Extract mysql.zip: `sudo apt install unzip` * Which services should be restarted: 'unattended-upgrade.service' * Extract mysql dan jalankan SQL untuk membuat tabel ```bash unzip mysql.zip cd mysql # Jalankan satu per satu mysql -uroot -p arrdb < arrdb.sql mysql -uroot -p mirthdb < mirthdb.sql mysql -uroot -p pacsdb < pacsdb.sql mysql -uroot -p pacsdb_his < pacsdb_his.sql ``` ### 6. Sesuaikan timezone MariaDB * Buka config: ```bash cd /etc/mysql/mariadb.conf.d nano 50-server.cnf ``` * Edit dan Tambahkan: ```nano # Jika ingin mengakses database dari luar local, maka comment bind_address # bind-address = 127.0.0.1 # Tambahkan [mysqld] default_time_zone='+07:00' ``` ### 7. Install Packages untuk keperluan Debugging (just in case) ```bash sudo apt update sudo apt install net-tools sudo apt update sudo apt install telnet sudo apt update sudo apt install ufw ``` ## Install Docker ### 1. Add Docker's official GPG key: ```bash sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc ``` ### 2. Add the repository to Apt sources: ```bash echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update ``` ### 3. Install Docker: ```bash sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo apt install docker-compose ``` ### 4. Verify the installation: ```bash sudo docker run hello-world ``` * Jika sukses akan muncul pesan: ```markdown Hello from Docker! This message shows that your installation appears to be working correctly. ``` ## Compose PACS ### Download Config Files * Download config file dari [Link File Config (/data/docker)](https://drive.google.com/file/d/170luE0Ij1BBJB4G1tIfn6S0q8zNBH_I5/view?usp=drive_link) * Letakkan pada /home di PACS Server * Current Method: Download dulu lalu FTP ke PACS Server * Jalankan: ```bash sudo mkdir -p /data sudo cp /home/one/docker.zip /data/ cd /data sudo unzip docker.zip sudo chown -R pacs:pacs docker ``` * Config files ini nantinya akan di-bind-mount dengan container agar perubahan config dapat dilakukan tanpa rebuild image container ### Create `docker-compose.yml` * Change Dir `cd /home/pacs` * Buat file `touch docker-compose.yml` * Edit file `nano docker-compose.yml` * Tambahkan: ```yaml version: '3.8' services: mirth: image: devone.aplikasi.web.id/one/mirth:1.0 ports: - "9080:9080" - "9443:9443" - "8082:8082" volumes: - "/data/docker/mirth/conf:/srv/mirth/conf" - "/data/docker/mirth/logs:/srv/mirth/logs" - "/data/docker/mirth/appdata/temp:/srv/mirth/appdata/temp" dcm4chee: image: devone.aplikasi.web.id/one/dcm4che:1.0 ports: - "8080:8080" - "2575:2575" - "11112:11112" volumes: - "/data/docker/dcm4chee/server/archive:/srv/dcm4chee/server/default/archive" - "/data/docker/dcm4chee/server/deploy:/srv/dcm4chee/server/default/deploy" - "/data/docker/dcm4chee/server/log:/srv/dcm4chee/server/default/log" - "/data/docker/dcm4chee/server/tmp:/srv/dcm4chee/server/default/tmp" - "/data/docker/dcm4chee/server/work:/srv/dcm4chee/server/default/work" nv: image: devone.aplikasi.web.id/one/apache-nv:1.0 ports: - "80:80" volumes: - "/data/docker/nv/etc-php:/etc/php/7.4/apache2" - "/data/docker/nv/html:/var/www/html" ``` ### Configure Files * Kembali ke `cd /data/docker` #### a. `mirth.properties` * Location: `/data/docker/mirth/conf/mirth.properties` * Update: `database.url = jdbc:mysql://206.189.147.234:3306/mirthdb` #### b. `pacs-mysql-ds.xml` * Location: `/data/docker/dcm4che/server/deploy/pacs-mysql-ds.xml` * Update (Line 11): `<connection-url>jdbc:mysql://206.189.147.234:3306/pacsdb</connection-url>` #### c. `config.php` * Location: `/data/docker/nv/html/nv/config.php` * Updates: + `XOCP_PACS_HOST`: `206.189.147.234` (Local IP) + `XOCP_PACS_WADO_URI`: `http://206.189.147.234:18080/wado` (Local IP and mapped port) + `XOCP_SERVER`: `http://206.189.147.234:80` (Local IP) + Database settings as per the file #### d. `api.php` * Location: `/data/docker/nv/html/api.php` * Updates: + `$db`: `new Database("206.189.147.234", "pacs", "pacs", "pacsdb_his", 3306);` + `$dbhis`: `new Database("dev.sismedika.online", "hispacs", "s1sm3d1k4123!", "rsabt201107", 3306)` + `$wado_thumb`: `http://206.189.147.234:8080/wado?requestType=WADO&studyUID=${study_iuid}&seriesUID=${series_iuid}&objectUID=${sop_iuid}&columns=128` #### e. `dcmgwConfig.php` * Location: `/data/docker/nv/html/dcmgw/dcmgwConfig.php` * Update: `PATH_BASE_DCM4CHE2` dan `$pacsHome` as per the file ```php $pacsHome = new DCM4CHEE('ABPACS', '206.189.147.234'); define ('PATH_BASE_DCM4CHE2', '/var/www/dcm4che/dcm4che2/bin/'); ``` #### f. `dcmgwPacs.php` * Location: `/data/docker/nv/html/dcmgw/dcmgwPacs.php` * Update: `$port = '11112';` (to match the mapped port) in ```php class DCM4CHEE extends PACS { function __construct($AETitle, $host) { $port = '11112'; ... ``` ### Login to Docker ```bash docker login devone.aplikasi.web.id/gitea user: one pass: one102938 ``` ### Run Docker Compose * Change Dir `cd /home/pacs` atau di mana docker-compose.yml berada * Execute: `docker-compose up` ## Config Mirth ### Config IP dan Port DCM4CHE * Buka `ip.pacs.server:9080` * Click 'Launch Mirth Connect Administrator' lalu download file `.jnlp` * Buka file .jnlp dengan * Buka terminal di file .jnlp berada * Jalankan dengan Java Web Start `javaws "nama file.jnlp"` * Tunggu dan Login, pastikan server mengarah pada `https://ip.pacs.server:9443` * Buka **Channel** lalu double click **ORM Trigger** * Pilih **Destinations** lalu klik **RIS Send Order** * Ubah *Remote Address* menjadi `ip.pacs.server` dan *Remote Port* menjadi 2575 atau sesuai port dicom pacs server * Jalankan *Test Connection* * Pilih **RIS Cancel Order** lalu ulangi tahap perubahan IP dan Port * Klik **Save Changes** pada di sidebar * Klik **Validate Connector** lalu **Deploy Channel** ### Config DB di Edit Transformer * Buka **Channel** lalu double click **ORM Trigger** * Pilih **Destinations** * Klik kanan **RIS Send Order** lalu **Edit Transformer** * Klik **Generate ORM Message** lalu buka **Step** di bawahnya * Ubah baris kode berikut ini, sesuaikan dengan DB yang digunakan ```java dbConn = connect_mysql('dev.sismedika.online','3306','rsabt201107','hispacs','s1sm3d1k4123!'); dbConn2 = connect_mysql('206.189.147.234','3306','pacsdb_his','pacs','pacs'); ``` * Jika sudah, maka **Back to Channel** * Klik kanan **RIS Cancel Order** lalu **Edit Transformer** * Ulangi langkah perubahan script seperti dengan Send Order * **Save Changes** - **Validate Connector** - **Deploy Channel** ## Test Workflow * Perform a test workflow for Modality | Test Performed | Checkbox | |-------------------------------------|----------| | CURL Send Order ke Mirth port 8082 | [v] | | CURL Cancel Order ke Mirth port 8082| [v] | | HIS Send Order | [v] | | HIS Cancel Order | [v] | | Modality Worklist Query dengan Emulator | [v] | | Send MPPS Progress | [v] | | Image Store | [v] | | Send MPPS Completed | [v] | | Image Tampil di halaman folder dcm4che | [v] | | Images tampil di NV | [v] | | CURL api.php untuk INSERT ke pacs_result_series dan release ke HIS untuk di open dari HIS | [v] |
Sign in to join this conversation.
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: one/container#1