DCM4CHEE installation

We have installed the DCM4CHEE using the below link with the docker-compose, Please find the below link which I 've followed

And this is the docker-compose file

version: “3” services: ldap: image: dcm4che/slapd-dcm4chee:2.6.7-33.1 logging: driver: json-file options: max-size: “10m” ports: - “389:389” environment: STORAGE_DIR: /storage/fs1 volumes: - /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data - /var/local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d db: image: dcm4che/postgres-dcm4chee:17.1-33 logging: driver: json-file options: max-size: “10m” ports: - “5432:5432” environment: POSTGRES_DB: pacsdb POSTGRES_USER: pacs POSTGRES_PASSWORD: pacs volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /var/local/dcm4chee-arc/db:/var/lib/postgresql/data arc: image: dcm4che/dcm4chee-arc-psql:5.33.1 logging: driver: json-file options: max-size: “10m” ports: - “8080:8080” - “8443:8443” - “9990:9990” - “9993:9993” - “11112:11112” - “2762:2762” - “2575:2575” - “12575:12575” environment: POSTGRES_DB: pacsdb POSTGRES_USER: pacs POSTGRES_PASSWORD: pacs WILDFLY_CHOWN: /storage WILDFLY_WAIT_FOR: ldap:389 db:5432 depends_on: - ldap - db volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone - /var/local/dcm4chee-arc/storage:/storage

After completing the compose everything is running fine I’ve not find any error logs also UI is coming, but looks the backed end some issue, it is showing 500 error in the UI. Please find the below image for the error I’m facing

Thanks and Regards, Kolle Ramanjulu.

Bahmni Distribution so far bundles DCM4CHEE 2 as the out of the box package. You can find the relevant configurations here. GitHub - Bahmni/bahmni-docker: Bahmni docker compose setup to run LITE and STANDARD images

If you trying to run only standalone dcm4chee, then please check on DCM4CHEE community. Also, if you are planning on upgrading DCM4CHEE to latest version, please share more details on your steps and approach.

Agreed this should be a question for DCM4CHEE forums but I had some similar issues, maybe this tip will help you: Sometimes on first run the LDAP container is not fully ready and you will see these Error 500 messages. Try this: Delete the docker volumes that were created (back up any important data you have saved, but this looks like a new install).

Run first: docker compose up ldap and watch the output in the terminal until the ldap container has finished all it’s initialisation.

Then: Ctrl + C

Then: docker compose up -d

Hope that helps you!

@mohant I would be interested to see how dcm4chee 5 could be integrated into Bahmni. Is it on the road map? Is there a way I could get involved?

@andylinton Thanks for the info. If you can spend some capacity on contributing to DCM4CHEE upgrade, the core team can guide you.

I’ve tried this steps, but no luck. Can you please look into docker-compose file and let me know if any changes are required?

version: “3” services: ldap: image: dcm4che/slapd-dcm4chee:2.6.7-33.1 logging: driver: json-file options: max-size: “10m” ports: - “389:389” environment: STORAGE_DIR: /storage/fs1 volumes: - /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data - /var/local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d db: image: dcm4che/postgres-dcm4chee:17.1-33 logging: driver: json-file options: max-size: “10m” ports: - “5432:5432” environment: POSTGRES_DB: pacsdb POSTGRES_USER: pacs POSTGRES_PASSWORD: pacs volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /var/local/dcm4chee-arc/db:/var/lib/postgresql/data arc: image: dcm4che/dcm4chee-arc-psql:5.33.1 logging: driver: json-file options: max-size: “10m” ports: - “8080:8080” - “8443:8443” - “9990:9990” - “9993:9993” - “11112:11112” - “2762:2762” - “2575:2575” - “12575:12575” environment: POSTGRES_DB: pacsdb POSTGRES_USER: pacs POSTGRES_PASSWORD: pacs WILDFLY_CHOWN: /storage WILDFLY_WAIT_FOR: ldap:389 db:5432 depends_on: - ldap - db volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone - /var/local/dcm4chee-arc/storage:/storage

Thank, Kolle Ramanjulu

Hi Kolle, the docker-compose you shared works fine on my Linux system. It seems unchanged from the dcm4chee website. But I notice in the screenshot above you are trying to access the webui of dcm4chee on part 8082 so I guess you have customised something? I would question what OS you are running and what other services/ports are active on your system. Often a good idea to run in a fresh install of a linux server VM (eg Ubuntu) because then unlikely that other services will conflict. Good luck! I think your issues are outside the scope of the discussion on the OpenMRS site, feel free to DM if I can suggest anything else.

C:\Users\40015347\Desktop\DCM4CHEE>docker compose up time=“2025-01-21T06:47:52+05:30” level=warning msg=“C:\Users\40015347\Desktop\DCM4CHEE\docker-compose.yml: the attribute version is obsolete, it will be ignored, please remove it to avoid potential confusion” [+] Running 4/4 :heavy_check_mark: Network dcm4chee_default Created 0.4s :heavy_check_mark: Container dcm4chee-db-1 Created 3.2s :heavy_check_mark: Container dcm4chee-ldap-1 Created 3.1s :heavy_check_mark: Container dcm4chee-arc-1 Created 3.6s Attaching to arc-1, db-1, ldap-1 db-1 | db-1 | PostgreSQL Database directory appears to contain a database; Skipping initialization db-1 | ldap-1 | 678ef5d5.1e52abe5 0x7fec02d3fb28 @(#) $OpenLDAP: slapd 2.6.7 (Feb 1 2024 19:18:47) $ ldap-1 | openldap ldap-1 | 678ef5d6.0d4c925a 0x7fec02d3fb28 slapd starting db-1 | 2025-01-21 01:18:16.823 UTC [1] LOG: starting PostgreSQL 17.1 (Debian 17.1-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit db-1 | 2025-01-21 01:18:16.851 UTC [1] LOG: listening on IPv4 address “0.0.0.0”, port 5432 db-1 | 2025-01-21 01:18:16.851 UTC [1] LOG: listening on IPv6 address “::”, port 5432 db-1 | 2025-01-21 01:18:16.961 UTC [1] LOG: listening on Unix socket “/var/run/postgresql/.s.PGSQL.5432” db-1 | 2025-01-21 01:18:16.963 UTC [29] LOG: database system was shut down at 2025-01-21 01:16:59 UTC db-1 | 2025-01-21 01:18:17.293 UTC [1] LOG: database system is ready to accept connections arc-1 | Importing keystore /opt/wildfly/standalone/configuration/keystores/cacerts.p12 to /usr/lib/jvm/java-21-amazon-corretto/lib/security/cacerts… arc-1 | Entry for alias mykey successfully imported. arc-1 | Import command completed: 1 entries successfully imported, 0 entries failed or cancelled arc-1 | Waiting for ldap:389 … arc-1 | done arc-1 | Waiting for db:5432 … arc-1 | done arc-1 | Starting Wildfly 34.0.0.Final arc-1 | ========================================================================= arc-1 | arc-1 | JBoss Bootstrap Environment arc-1 | arc-1 | JBOSS_HOME: /opt/wildfly arc-1 | arc-1 | JAVA: /usr/lib/jvm/java-21-amazon-corretto/bin/java arc-1 | arc-1 | JAVA_OPTS: -Djdk.serialFilter=“maxbytes=10485760;maxdepth=128;maxarray=100000;maxrefs=300000” -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.url.ldap=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.url.ldaps=ALL-UNNAMED --add-exports=jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.naming/javax.naming=ALL-UNNAMED -Djava.security.manager=allow arc-1 | arc-1 | ========================================================================= arc-1 |

Yes, I’ve customized the ports since 8080 and 8443 occupied by some other services. Apart from that I’ve not changed anything I’m using the same docker-compose file. Environment: OS: Windows RAM: 32.0 GB