diff --git a/.env b/.env index 686a340..108aac3 100644 --- a/.env +++ b/.env @@ -29,6 +29,7 @@ POSTGRES_DB=orthanc POSTGRES_PORT=5432 POSTGRES_USER=postgres POSTGRES_PASSWORD=password +POSTGRES_HOST=postgres TZ="Asia/Dhaka" PGTZ="Asia/Dhaka" @@ -36,4 +37,9 @@ PGTZ="Asia/Dhaka" PGADMIN_MAIL=admin@blackfish.dev PGADMIN_PASS=secret PGADMIN_SERVER=False -PGADMIN_MASTER_PASS=False \ No newline at end of file +PGADMIN_MASTER_PASS=False + +ORTHANC_AET=BLACKFISH +ORTHANC_USERNAME=blackfish +ORTHANC_PASSWORD=letmein +ORTHANC_TOOLS_MNT=./volumes/orthanc_tools \ No newline at end of file diff --git a/config/meddream/license b/config/meddream/license new file mode 100644 index 0000000..56a6051 --- /dev/null +++ b/config/meddream/license @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/config/orthanc/dicom-web.json b/config/orthanc/dicom-web.json index e7a8859..20c10a1 100644 --- a/config/orthanc/dicom-web.json +++ b/config/orthanc/dicom-web.json @@ -7,7 +7,7 @@ "WadoRoot": "/wado", "Ssl": false, "Servers": { - "main": ["http://orthanc:8042/dicom-web/"] + //"main": ["http://orthanc:8042/dicom-web/"] }, "QidoCaseSensitive": true, "MetadataWorkerThreadsCount": 10, @@ -15,4 +15,4 @@ "StudiesMetadata": "Full", "SeriesMetadata": "Full" } -} +} \ No newline at end of file diff --git a/config/orthanc/explorer.json b/config/orthanc/explorer.json new file mode 100644 index 0000000..0af507f --- /dev/null +++ b/config/orthanc/explorer.json @@ -0,0 +1,6 @@ +{ + "OrthancExplorer2": { + "IsDefaultOrthancUI": true, + "Theme": "dark" + } +} \ No newline at end of file diff --git a/config/orthanc/orthanc.json b/config/orthanc/orthanc.json index f8923c4..77c8c81 100644 --- a/config/orthanc/orthanc.json +++ b/config/orthanc/orthanc.json @@ -7,8 +7,10 @@ "MaximumPatientCount": 0, "MaximumStorageCacheSize": 128, "LuaScripts": [], - "Plugins": ["/usr/share/orthanc/plugins", "/usr/local/share/orthanc/plugins"], - + "Plugins": [ + "/usr/share/orthanc/plugins", + "/usr/local/share/orthanc/plugins" + ], "ExtraMainDicomTags": { "Instance": [ "Rows", @@ -63,26 +65,28 @@ "DicomSenderID", "StationName" ], - "Patient": ["OtherPatientNames", "OtherPatientIDs"] + "Patient": [ + "OtherPatientNames", + "OtherPatientIDs" + ] }, "ConcurrentJobs": 8, - "HttpServerEnabled": true, "OrthancExplorerEnabled": true, "HttpPort": 8042, "HttpDescribeErrors": true, "HttpCompressionEnabled": true, - "WebDavEnabled": true, "WebDavDeleteAllowed": false, "WebDavUploadAllowed": true, - "DicomServerEnabled": true, "DicomAet": "BLACKFISH", "DicomCheckCalledAet": false, "DicomPort": 4242, "DefaultEncoding": "Utf8", - "AcceptedTransferSyntaxes": ["1.2.840.10008.1.*"], + "AcceptedTransferSyntaxes": [ + "1.2.840.10008.1.*" + ], "DeflatedTransferSyntaxAccepted": true, "JpegTransferSyntaxAccepted": true, "Jpeg2000TransferSyntaxAccepted": true, @@ -90,14 +94,12 @@ "JpipTransferSyntaxAccepted": true, "UnknownSopClassAccepted": false, "DicomScpTimeout": 30, - "RemoteAccessAllowed": true, "SslEnabled": false, "SslCertificate": "certificate.pem", "SslMinimumProtocolVersion": 4, "SslVerifyPeers": false, "SslTrustedClientCertificates": "trustedClientCertificates.pem", - "DicomTlsEnabled": false, "DicomTlsRemoteCertificateRequired": true, "DicomAlwaysAllowEcho": true, @@ -117,13 +119,11 @@ "DicomThreadsCount": 4, "OrthancPeers": {}, "OrthancPeersInDatabase": false, - "HttpProxy": "", "HttpVerbose": false, "HttpTimeout": 60, "HttpsVerifyPeers": false, "HttpsCACertificates": "/etc/ssl/certs/ca-certificates.crt", - "UserMetadata": { // "Sample" : 1024 }, @@ -131,7 +131,6 @@ // "sample" : 1024 // "sample2" : [ 1025, "application/pdf" ] }, - "StableAge": 60, "StrictAetComparison": false, "StoreMD5ForAttachments": true, @@ -175,4 +174,4 @@ "W001_TagsBeingReadFromStorage": true, "W002_InconsistentDicomTagsInDb": true } -} +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 712b50d..cea12b6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ services: postgres: image: postgres:alpine container_name: postgres - profiles: [ main ] + profiles: [ main, extra ] networks: pacs: aliases: @@ -14,6 +14,7 @@ services: - POSTGRES_DB=${POSTGRES_DB} - PGDATA=${PGDATA} - PGTZ=${PGTZ} + - POSTGRES_HOST_AUTH_METHOD="trust" volumes: - ${POSTGRES_DATA_MNT}:${PGDATA}:Z healthcheck: @@ -26,7 +27,7 @@ services: orthanc: container_name: orthanc - profiles: [ main ] + profiles: [ main, extra ] image: orthancteam/orthanc ports: - 8042:8042 @@ -35,15 +36,12 @@ services: - ${ORTHANC_CONFIG:-./config/orthanc}:/etc/orthanc/:ro - ${ORTHANC_DB_MNT:-./volumes/orthanc_db}:/var/lib/orthanc/db:Z - ${ORTHANC_OHIF:-./config/ohif/ohif.js}:/usr/local/share/orthanc/ohif.js:ro - #- ${ORTHANC_LOG:-./volumes/orthanc_logs}:/etc/orthanc/logs + - ${ORTHANC_LOG:-./volumes/orthanc_logs}:/var/log/orthanc + env_file: + - orthanc.env environment: - ORTHANC__NAME: "BlackFish" - VERBOSE_ENABLED: "true" - VERBOSE_STARTUP: "true" - DICOM_WEB_PLUGIN_ENABLED: "true" - OHIF_PLUGIN_ENABLED: "true" - VOLVIEW_PLUGIN_ENABLED: "true" - #OSIMIS_WEB_VIEWER1_PLUGIN_ENABLED: "true" + ORTHANC__DICOM_AET: "${ORTHANC_AET}" + ORTHANC__POSTGRESQL__HOST: "${POSTGRES_HOST}" restart: unless-stopped networks: pacs: @@ -54,7 +52,7 @@ services: ohif: container_name: ohif - profiles: [ main ] + profiles: [ main, extra ] image: ohif/app:v3.9.2 ports: - 3000:80 @@ -80,6 +78,9 @@ services: restart: unless-stopped ports: - "80:8080" + depends_on: + - orthanc + - postgres networks: pacs: aliases: @@ -89,6 +90,45 @@ services: #- ./config/meddream/license:/opt/meddream/license:ro - ./config/meddream/system.json:/opt/meddream/sys/settings/system.json:ro + orthanctoolsjs: + profiles: [ extra ] + image: salimkanoun/orthanctoolsjs + restart: unless-stopped + ports: [ "4000:4000" ] + volumes: [ "${ORTHANC_TOOLS_MNT:-./volumes/orthanc_tools}:/OrthancToolsJs/data" ] + environment: + TZ: "${TZ}" + ORTHANC_ADDRESS: "http://orthanc" + ORTHANC_PORT: "8042" + ORTHANC_USERNAME: "${ORTHANC_USERNAME}" + ORTHANC_PASSWORD: "${ORTHANC_PASSWORD}" + REDIS_HOST: "redis" + REDIS_PORT: "6379" + REDIS_PASSWORD: "" + DB_USERNAME: "${POSTGRES_USER}" + DB_PASSWORD: "${POSTGRES_PASSWORD}" + DB_HOST: "${POSTGRES_HOST}" + DB_PORT: ${POSTGRES_PORT} + DB_NAME: ${POSTGRES_DB} + DOMAIN_PROTOCOL: "http" + DOMAIN_ADDRESS: "localhost:4000" + depends_on: + - redis + - orthanc + - postgres + networks: + pacs: + aliases: + - orthanctoolsjs + + redis: + profiles: [ extra ] + image: redis:alpine + networks: + pacs: + aliases: + - redis + pgadmin: container_name: pgadmin profiles: [ extra ] diff --git a/orthanc.env b/orthanc.env new file mode 100644 index 0000000..5c00c6f --- /dev/null +++ b/orthanc.env @@ -0,0 +1,26 @@ +VERBOSE_STARTUP=true +VERBOSE_ENABLED=true +ORTHANC__POSTGRESQL__HOST=orthanc-db + +ORTHANC__OVERWRITE_INSTANCES=true +#ORTHANC__DICOM_MODALITIES={"pacs": ["PACS", "pacs", 4242]} +ORTHANC__DICOM_WEB__SERVERS={"pacs": ["http://orthanc:8042/dicom-web/"]} + +ORTHANC__NAME="BlackFish" +POSTGRESQL_PLUGIN_ENABLED=true +LOGDIR="/var/log/orthanc" +VERBOSE_ENABLED=true +VERBOSE_STARTUP=true +DICOM_WEB_PLUGIN_ENABLED=true +OHIF_PLUGIN_ENABLED=true +VOLVIEW_PLUGIN_ENABLED=true +ORTHANC_WEB_VIEWER_PLUGIN_ENABLED=true +STONE_WEB_VIEWER_PLUGIN_ENABLED=true +PYTHON_PLUGIN_ENABLED=true +TRANSFERS_PLUGIN_ENABLED=true +WORKLISTS_PLUGIN_ENABLED=true +HOUSEKEEPER_PLUGIN_ENABLED=true +ORTHANC_EXPLORER_2_ENABLED=true +#MULTITENANT_DICOM_PLUGIN_ENABLED=true +#INDEXER_PLUGIN_ENABLED=true +#OSIMIS_WEB_VIEWER1_PLUGIN_ENABLED=true