### Start OpenDJ Server Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/Installation Start the OpenDJ directory server using the provided script. ```bash $OPENDJ_HOME/bin/start-ds ``` -------------------------------- ### Start First Cluster Node Containers Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Cluster-Keycloak-with-MariaDB-and-LDAP-using-Docker-Standalone This command initiates the LDAP and MariaDB containers on the first cluster node. Ensure these services are running before proceeding with the second node setup. ```bash docker-compose up -d host1-ldap mariadb ``` -------------------------------- ### Start storescp Tool Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/archiveFeatures/generalFeatures/Restrict-C-MOVE-destinations Start the storescp tool to act as a C-MOVE destination. Replace `` with the desired port. ```bash storescp -b STORESCP1: ``` -------------------------------- ### Install JDBC Driver as Core Module Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/securedArchive/Secure-Archive-UI-and-RESTful-Services-using-Keycloak Install a JDBC driver as a core module by extracting the provided ZIP file into the WildFly home directory and copying the driver files to the appropriate module path. This example shows the installation for DB2. ```bash cd $WILDFLY_HOME unzip $DCM4CHEE_ARC/jboss-modules/jdbc-jboss-modules-1.0.0-db2.zip cd $DB2_HOME/java cp db2jcc4.jar db2jcc_license_cu.jar $WILDFLY_HOME/modules/com/ibm/db2/main/ ``` -------------------------------- ### Start Keycloak Standalone Server Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/securedArchive/Secure-Archive-UI-and-RESTful-Services-using-Keycloak Start the Keycloak standalone server using the provided script. ```bash > $KEYCLOAK_HOME/bin/standalone.sh [UNIX] > %KEYCLOAK_HOME%\bin\standalone.bat [Windows] ``` -------------------------------- ### Install keycloak-admin-client library Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/archiveFeatures/restfulServices/restfulForwarding/Secured-Archive-Non-TLS Install the keycloak-admin-client library by unzipping the provided modules archive. Replace '5.x.x' with the correct version number. ```bash cd $WILDFLY_HOME unzip $DCM4CHEE_ARC/jboss-modules/dcm4che-jboss-modules-5.x.x.zip ``` -------------------------------- ### Start WildFly in Standalone Mode Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/securedArchive/Upgrade-Secured Use these commands to start WildFly in standalone mode with the appropriate configuration file for your installation. ```bash $WILDFLY_HOME/bin/standalone.sh -c dcm4chee-arc.xml [UNIX] ``` ```bat %WILDFLY_HOME%\bin\standalone.bat -c dcm4chee-arc.xml [Windows] ``` -------------------------------- ### Start JBoss CLI Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/securedArchive/Secure-Archive-UI-and-RESTful-Services-using-Keycloak Start the JBoss Command Line Interface to configure Keycloak. ```bash > $KEYCLOAK_HOME/bin/jboss.sh -c [UNIX] > %KEYCLOAK_HOME%\bin\jboss.bat -c [Windows] ``` -------------------------------- ### Example Docker Swarm Initialization Output Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Distribute-secured-archive-services-and-Elastic-Stack-over-several-hosts-using-Docker-Swarm This is an example output from the 'docker swarm init' command, showing the swarm initialization and instructions to join worker nodes. ```console $ docker swarm init --advertise-addr 192.168.99.100 Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager. To add a worker to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ 192.168.99.100:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. ``` -------------------------------- ### Start dcm4chee Docker Containers Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/integration-with-third-party-softwares/Connecting-to-Google-Cloud-Healthcare-API Create and start the dcm4chee Docker containers using `docker-compose up`. This command initializes the database and LDAP servers. ```Shell $ docker-compose -p dcm4chee up ``` -------------------------------- ### Install Keycloak Wildfly Adapter Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/securedArchive/Secure-Archive-UI-and-RESTful-Services-using-Keycloak Execute this command to install the Keycloak adapter for WildFly. Use the appropriate command for your operating system. ```bash > $WILDFLY_HOME/bin/jboss-cli.sh -c --file=adapter-elytron-install.cli [UNIX] ``` ```bat > %WILDFLY_HOME%\bin\jboss-cli.bat -c --file=adapter-elytron-install.cli [Windows] ``` -------------------------------- ### Start storescp for Verification Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/mesaTests/Test-IHE-SWF-using-dcm4che-tools Start a storescp instance to listen for incoming DICOM images. This command binds the storescp to the specified AE title and port. ```bash $ storescp -b WORKSTATION:13104 ``` -------------------------------- ### Start Standalone Keycloak with Docker Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/new/secured-archive/identity-providers/Standalone-Keycloak-as-Identity-Provider Use this command to start a standalone Keycloak instance using Docker. Ensure to replace version if needed. ```bash docker run --name keycloak -p 8880:8880 -p 8843:8843 -p 8990:8990 -e HTTP_PORT=8880 -e HTTPS_PORT=8843 -e MANAGEMENT_HTTP_PORT=8990 -e KEYCLOAK_ADMIN_USER=admin -e KEYCLOAK_ADMIN_PASSWORD=admin -d dcm4che/keycloak:22.0.4 ``` -------------------------------- ### Filesystem Storage pathFormat Examples Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/technical-references/configuration/storages/Storage-Properties Examples of pathFormat configurations for storing DICOM instance metadata as JSON or prefetching WADO objects as JPEG. ```plaintext pathFormat={0020000D}-{0020000E}.json ``` ```plaintext pathFormat={0020000D}/{0020000E}/{00080018}/{00081160}.jpeg ``` -------------------------------- ### Start storescp Tool Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/archiveFeatures/generalFeatures/Proxy-retrieve-requests-to-another-Archive Starts the storescp tool, which listens for incoming DICOM C-STORE requests on a specified port. This is the destination for the MOVESCU operation. ```bash storescp -b STORESCP:port ``` -------------------------------- ### Start OpenLDAP and PostgreSQL with Docker Compose Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Upgrade-on-Docker Start the OpenLDAP Server and PostgreSQL Server using Docker Compose after updating image versions in docker-compose.yaml. ```console $ docker-compose -p dcm4chee-arc up -d ldap Creating network "dcm4cheearc_default" with the default driver Creating dcm4cheearc_ldap_1 ... done ``` -------------------------------- ### Start host2-ldap and mariadb containers Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Cluster-Keycloak-with-MariaDB-and-LDAP-using-Docker-Standalone Use this command to start the LDAP and MariaDB containers on the second cluster node. Ensure Docker Compose is configured for your environment. ```bash docker-compose up -d host2-ldap mariadb ``` -------------------------------- ### Example Docker Node List Output Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Distribute-secured-archive-services-and-Elastic-Stack-over-several-hosts-using-Docker-Swarm An example output of the 'docker node ls' command, displaying the status, hostname, availability, and manager status of nodes in the swarm. ```console $ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS jill34qzqqz9x5zlo5vg69sq4 elk-node Ready Active o5xraaz2lhxe8bhmjt22mzzka * arc-node Ready Active Leader rw89dvm047372gswfmzp0v0vh db-node Ready Active ``` -------------------------------- ### Deploy Swarmpit UI to Docker Swarm Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Distribute-secured-archive-services-and-Elastic-Stack-over-several-hosts-using-Docker-Swarm Install Swarmpit, a Docker Swarm UI, by downloading its configuration and deploying it as a stack. Access the UI via your browser at http://:888. ```bash curl -o swarmpit.yaml https://raw.githubusercontent.com/swarmpit/swarmpit/master/docker-compose.yml $ docker stack deploy -c swarmpit.yaml swarmpit ``` -------------------------------- ### Mount Host Time and Timezone to Container Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Distribute-secured-archive-services-and-Elastic-Stack-over-several-hosts-using-Docker-Swarm These bind mounts ensure that the container uses the host's local time and timezone settings. If '/etc/timezone' does not exist on the host, it must be created before starting the service. ```bash --mount type=bind,src=/etc/localtime,dst=/etc/localtime,readonly \ --mount type=bind,src=/etc/timezone,dst=/etc/timezone,readonly \ ``` -------------------------------- ### Configure WildFly Startup Delay for Archive Service Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Distribute-secured-archive-services-and-Elastic-Stack-over-several-hosts-using-Docker-Swarm Delays the start of the WildFly application until dependent services like OpenLDAP, PostgreSQL, and Logstash are listening on their specified ports. ```bash -e WILDFLY_WAIT_FOR='ldap:389 db:5432 logstash:8514' \ ``` -------------------------------- ### Mount WildFly Configuration Directory Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Distribute-secured-archive-services-and-Elastic-Stack-over-several-hosts-using-Docker-Swarm Persists the WildFly server configuration on the host system. This directory is initialized on the first container start if it doesn't exist, preventing data loss upon container recreation. ```bash --mount type=bind,src=/var/local/dcm4chee-arc/wildfly,dst=/opt/wildfly/standalone \ ``` -------------------------------- ### Docker Compose Service Definition Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Distribute-secured-archive-services-and-Elastic-Stack-over-several-hosts-using-Docker-Swarm Example of defining a service within a docker-compose.yml file for deployment using Docker Stack. This snippet shows the basic structure for the Elasticsearch service. ```yaml version: "3.5" services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.15.1 ``` -------------------------------- ### Configure Keycloak to Wait for Dependencies Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Distribute-secured-archive-services-and-Elastic-Stack-over-several-hosts-using-Docker-Swarm This environment variable ensures that the Keycloak service waits until specified dependent services (LDAP, MariaDB, Logstash) are available and listening on their respective ports before starting. ```bash -e KEYCLOAK_WAIT_FOR="ldap:389 mariadb:8514 logstash:8514" ``` -------------------------------- ### Run OpenDJ Setup Utility Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/Installation Execute the OpenDJ GUI-based setup utility to configure the directory server. This process requires logging key connection details. ```bash $OPENDJ_HOME/setup ``` -------------------------------- ### Start HAPI Server using Docker Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/archiveFeatures/schedulerTriggeredFeatures/Patient-Verification-against-external-Patient-Demographics-Provider Use this command to start the HAPI FHIR server with Docker. Ensure you have Docker installed. ```bash $ docker run -it -p 8780:8080 -d smartonfhir/hapi-5:r4-synthea ``` -------------------------------- ### Start First MariaDB Instance with Docker Compose Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/misc/Master-to-Master-Replication-between-two-MariaDB-Servers Starts the first MariaDB server container with binary logging and replication-specific configurations. Ensure the `node1.yml` file is correctly set up. ```bash docker-compose -f node1.yml up -d ``` ```yaml version: "3" services: mariadb: image: mariadb:10.7.1 ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: verys3cret MYSQL_DATABASE: keycloak MYSQL_USER: keycloak MYSQL_PASSWORD: keycloak command: - "--character-set-server=latin1" - "--collation-server=latin1_swedish_ci" - "--log-bin" - "--log-basename=node1" - "--server-id=1" - "--replicate-do-db=keycloak" - "--auto_increment_increment=2" - "--auto_increment_offset=1" volumes: dbdata:/var/lib/mysql volumes: dbdata: ``` -------------------------------- ### DB2 Database Creation and Table Setup Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/Installation Commands to create a DB2 database, grant necessary privileges, and then create tables and indexes using SQL scripts. ```bash > sudo su db2inst1 > db2 db2 => create database pagesize 16 K db2 => connect to db2 => grant createtab on database to user db2 => terminate ``` ```bash > su Password: > db2 connect to > db2 -t < $DCM4CHEE_ARC/sql/db2/create-db2.sql > db2 -t < $DCM4CHEE_ARC/sql/db2/create-fk-index.sql > db2 terminate ``` -------------------------------- ### Start WildFly in Standalone Mode Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/Upgrade Start WildFly in standalone mode with the specified configuration file. ```bash > $WILDFLY_HOME/bin/standalone.sh -c dcm4chee-arc.xml [UNIX] ``` ```bat > %WILDFLY_HOME%\bin\standalone.bat -c dcm4chee-arc.xml [Windows] ``` -------------------------------- ### Start Slave Replication Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/misc/Master-to-Master-Replication-between-two-MariaDB-Servers Execute this command after configuring the master details to initiate the replication process on the slave instance. ```sql START SLAVE; ``` -------------------------------- ### Start IANSCP Listener Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/archiveFeatures/generalFeatures/ian/mpps-supported-by-modality/MPPS-trigger-no-IAN Start the IANSCP service to listen for Instance Availability Notifications on the specified port. ```bash ianscp -b IANSCP:11117 ``` -------------------------------- ### Start Keycloak, db, and arc containers on first cluster Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Cluster-Keycloak-with-MariaDB-and-LDAP-using-Docker-Standalone After successful LDAP and MariaDB replication, start the Keycloak, database (PostgreSQL), and application runtime containers on the first cluster. ```bash docker-compose up -d keycloak db arc ``` -------------------------------- ### Store Study and Start IANSCP Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/archiveFeatures/generalFeatures/ian/MPPS-Not-Supported-by-Modality Commands to store a study on the archive and start the IANSCP service for verification. ```bash storescu -c DCM4CHEE@localhost:11112 /pathToStudy ``` ```bash ianscp -b IANSCP:11117 ``` -------------------------------- ### Start MariaDB Server for Keycloak with GELF Logging Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Run-secured-archive-services-and-Elastic-Stack-on-a-single-host Launches a MariaDB container for Keycloak, configured with GELF logging. It sets up root password, database name, user, and password, and maps volumes for data persistence. ```bash $ docker run --network=dcm4chee_network --name mariadb \ --log-driver gelf \ --log-opt gelf-address=udp://:12201 \ --log-opt tag=mariadb \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=secret \ -e MYSQL_DATABASE=keycloak \ -e MYSQL_USER=keycloak \ -e MYSQL_PASSWORD=keycloak \ -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ -v /var/local/dcm4chee-arc/mysql:/var/lib/mysql \ -d mariadb:10.11.4 ``` -------------------------------- ### Start PostgreSQL Server Container Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Run-minimum-set-of-archive-services-on-a-single-host Launch a PostgreSQL server container, connecting it to the Docker network and configuring it with database credentials and persistent storage. Timezone synchronization is also configured. ```bash $ docker run --network=dcm4chee_network --name db \ -p 5432:5432 \ -e POSTGRES_DB=pacsdb \ -e POSTGRES_USER=pacs \ -e POSTGRES_PASSWORD=pacs \ -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ -v /var/local/dcm4chee-arc/db:/var/lib/postgresql/data \ -d dcm4che/postgres-dcm4chee:17.4-34 ``` -------------------------------- ### Install MicroK8s Snap Package Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Deploy-Docker-Images-to-Kubernetes Installs the MicroK8s snap package on Ubuntu. Ensure you are using a compatible channel. ```bash sudo snap install microk8s --classic --channel=1.24/stable ``` -------------------------------- ### Start STOW-RS Server Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/archiveFeatures/restfulServices/stow-rs-upload-performance/STOW-RS-Upload-performance-measurements-Parallel-TCP-Connections Starts the stowrsd tool acting as a STOW-RS server on port 8080, ignoring any incoming requests. ```bash stowrsd -b 8080 --ignore ``` -------------------------------- ### Start PostgreSQL with Docker Compose Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Upgrade-on-Docker If using Docker Compose, update the image version tags in your `docker-compose.yaml` file and then start the PostgreSQL server using the `docker-compose up` command. ```bash $ docker-compose -p dcm4chee-arc up -d db ``` -------------------------------- ### Start dcmqrscp Tool Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/archiveFeatures/generalFeatures/Proxy-retrieve-requests-to-another-Archive Starts the dcmqrscp tool listening on a specified port. This tool acts as a destination for MOVESCU requests. ```bash dcmqrscp -b DCMQRSCP:11112 --dicomdir /media/cdrom/DICOMDIR ``` -------------------------------- ### Start MariaDB Server for Keycloak Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/get-started-tutorials/docker/Run-secured-archive-services-on-a-single-host Launches a MariaDB container to serve as the database for Keycloak. It's configured with a specific database, user, and password, and its data is persisted on the host. Timezone synchronization is also configured. ```bash docker run --network=dcm4chee_network --name mariadb \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=secret \ -e MYSQL_DATABASE=keycloak \ -e MYSQL_USER=keycloak \ -e MYSQL_PASSWORD=keycloak \ -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ -v /var/local/dcm4chee-arc/mysql:/var/lib/mysql \ -d mariadb:10.11.4 ``` -------------------------------- ### Displaying Installation Status Source: https://github.com/dcm4che/dcm4chee-arc-light/blob/master/dcm4chee-arc-ui2/src/app/configuration/devices/devices.component.html Represents the installation status of a device, likely as a boolean. 'false' and 'true' are shown as potential states. ```html false ``` ```html true ``` -------------------------------- ### Generate Keystore with keytool Source: https://github.com/dcm4che/dcm4chee-arc-light/wiki/howTo-guides/new/secured-archive/Enable-SSL-HTTPS-for-the-Keycloak-Server Use this command to generate a keystore file. You will be prompted for password and certificate details. Ensure the Common Name (CN) matches the hostname or IP address of the connecting host. ```bash keytool -genkeypair -keyalg RSA -keystore mykey.p12 ```