From 1fabada0ab240f4ebc4c0f10ba39bacc5afd81a0 Mon Sep 17 00:00:00 2001 From: Masroor Ehsan Date: Sun, 26 Jan 2025 23:54:56 +0600 Subject: [PATCH] wip --- .env | 6 ++- config/meddream/application.properties | 33 ++++++++++++ config/meddream/system.json | 72 ++++++++++++++++++++++++++ docker-compose.yml | 29 ++++++++++- volumes/orthanc_logs/.gitignore | 2 + 5 files changed, 139 insertions(+), 3 deletions(-) create mode 100644 config/meddream/application.properties create mode 100644 config/meddream/system.json create mode 100644 volumes/orthanc_logs/.gitignore diff --git a/.env b/.env index 3020474..3428096 100644 --- a/.env +++ b/.env @@ -25,6 +25,7 @@ VIEWER_CONFIG=./config/ohif.js ORTHANC_CONFIG=./config/orthanc.json ORTHANC_OHIF=./config/orthanc_ohif.js ORTHANC_DB_MNT=./volumes/orthanc_db +ORTHANC_LOG=./volumes/orthanc_logs # # PostgreSQL database - default values should not be used in production @@ -35,4 +36,7 @@ PGDATA=/var/lib/postgresql/data POSTGRES_DB=orthanc POSTGRES_PORT=5432 POSTGRES_USER=postgres -POSTGRES_PASSWORD=password \ No newline at end of file +POSTGRES_PASSWORD=password + +TZ="Asia/Dhaka" +PGTZ="Asia/Dhaka" \ No newline at end of file diff --git a/config/meddream/application.properties b/config/meddream/application.properties new file mode 100644 index 0000000..ce9a4af --- /dev/null +++ b/config/meddream/application.properties @@ -0,0 +1,33 @@ +server.port=8080 +logging.file.name=mdjavacore +logging.level.com.softneta=INFO +com.softneta.meddream.loginEnabled=true +com.softneta.license.licenseFileLocation=./license + +spring.profiles.include=auth-inmemory,auth-his +authentication.inmemory.users[0].userName=demo +authentication.inmemory.users[0].password=demo +authorization.users[0].userName=demo +authorization.users[0].role=SEARCH,EXPORT_ISO,EXPORT_ARCH,FORWARD,REPORT_VIEW,REPORT_UPLOAD,PATIENT_HISTORY,UPLOAD_DICOM_LIBRARY,3D_RENDERING,ADMIN,DOCUMENT_VIEW,FREE_DRAW_VIEW,FREE_DRAW_EDIT,BOUNDING_BOX_VIEW,BOUNDING_BOX_EDIT,SMART_DRAW_VIEW,SMART_DRAW_EDIT,COPY_TO_DICOM +authentication.his.valid-his-params=study +authorization.defaultHisPermissions=SEARCH,EXPORT_ISO,EXPORT_ARCH,FORWARD,REPORT_VIEW,REPORT_UPLOAD,PATIENT_HISTORY,UPLOAD_DICOM_LIBRARY,3D_RENDERING,DOCUMENT_VIEW,FREE_DRAW_VIEW,FREE_DRAW_EDIT,BOUNDING_BOX_VIEW,BOUNDING_BOX_EDIT,SMART_DRAW_VIEW,SMART_DRAW_EDIT,COPY_TO_DICOM +authorization.defaultLoginPermissions=SEARCH,EXPORT_ISO,EXPORT_ARCH,FORWARD,REPORT_VIEW,REPORT_UPLOAD,PATIENT_HISTORY,UPLOAD_DICOM_LIBRARY,3D_RENDERING,DOCUMENT_VIEW,FREE_DRAW_VIEW,FREE_DRAW_EDIT,BOUNDING_BOX_VIEW,BOUNDING_BOX_EDIT,SMART_DRAW_VIEW,SMART_DRAW_EDIT,COPY_TO_DICOM + + +com.softneta.meddream.pacs.configurations[0].type=Orthanc +com.softneta.meddream.pacs.configurations[0].id=Orthanc +com.softneta.meddream.pacs.configurations[0].baseUrl=http://orthanc:8042 +com.softneta.meddream.pacs.configurations[0].username=orthanc +com.softneta.meddream.pacs.configurations[0].password=orthanc +com.softneta.meddream.pacs.configurations[0].pythonPlugin=true +com.softneta.meddream.pacs.configurations[0].searchApiEnabled=true +com.softneta.meddream.pacs.configurations[0].imageApiEnabled=true +# com.softneta.meddream.pacs.configurations[0].dicomCacheDirectory= +#com.softneta.meddream.pacs.configurations[0].storeScuAet=PACS +#com.softneta.meddream.pacs.configurations[0].storeScuIp=orthanc +#com.softneta.meddream.pacs.configurations[0].storeScuPort=4242 + +com.softneta.meddream.pacs.configurations[0].storeScpAet=PACS +com.softneta.meddream.pacs.configurations[0].storeScpIp=orthanc +com.softneta.meddream.pacs.configurations[0].storeScpPort=4242 + diff --git a/config/meddream/system.json b/config/meddream/system.json new file mode 100644 index 0000000..0feb7f8 --- /dev/null +++ b/config/meddream/system.json @@ -0,0 +1,72 @@ +{ + "disableMultiFrameVideoAutoLoad": false, + "threeDimensionServiceIntegration": { + "serverIP": null, + "port": null, + "protocol": null, + "pathPrefix": null, + "pathPrefixReplaceTo": null + }, + "features": { + "patientHistory": false, + "keyObjectAndPresentationStateQuickSave": true, + "keyObjects": true, + "presentationState": true, + "searchSettings": true, + "viewerSettings": true, + "reportSettings": true, + "hangingProtocolsSettings": true, + "export": true, + "archive": true, + "search": true, + "reports": false, + "liveShare": false, + "openTabsTrackingMethod": "NONE", + "batchImageRequests": true, + "prepareInstances": false, + "thumbnailsPerSeries": "FIRST", + "summaryThumbnailsFor": ["CT", "MR", "PT", "NM"], + "preloadSeries": "ON", + "boundingBoxAnnotations": true, + "viewToClipboard": "IMAGE", + "pngPSToClipboard": "NONE", + "showCalculatedFps": true, + "viewToDICOM": false, + "mistMpr3D": true + }, + "blackListedSopClasses": [], + "forwardPacs": [{ + "storeScpIp": "172.23.0.7", + "storeScpPort": "4242", + "storeScpAet": "PACS", + "description": "Orthanc" + }], + "languages": ["en"], + "dicomLibraryConfiguration": { + "dicomLibrarySender": null, + "dicomLibrarySubject": null, + "languages": null, + "language": null + }, + "asynchronousStudyLoading": false, + "formatIntegrationLinkInViewer": false, + "requestsConfig": { + "maximumMetadataStreams": 5, + "maximumPixelStreams": 15, + "maximumMultiFrameStreams": 4, + "batchSizeMb": 5, + "multiFrameBatchSizeMb": 2 + }, + "workersConfig": { + "maxWorkers": "50%", + "maxSegmentationWorkers": "50%" + }, + "cacheSupervisorConfig": { + "enabled": false, + "runFrequencyInSec": 10 + }, + "personNameConfiguration": { + "formatIn": null, + "formatOut": null + } +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 2d91bfe..02d18f5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,8 +10,21 @@ services: environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - - PGDATA=${PGDATA} - POSTGRES_DB=${POSTGRES_DB} + - PGDATA=${PGDATA} + - PGTZ=${PGTZ} + + pgadmin: + depends_on: + - postgres + container_name: pgadmin + image: dpage/pgadmin4 + restart: unless-stopped + environment: + PGADMIN_DEFAULT_EMAIL: admin@blackfish.dev + PGADMIN_DEFAULT_PASSWORD: password + ports: + - 5050:88 orthanc: container_name: orthanc @@ -23,8 +36,9 @@ services: # configuration file - ${ORTHANC_CONFIG:-./config/orthanc.json}:/etc/orthanc/orthanc.json:ro # storage volume for raw dicoms - - ${ORTHANC_DB_MNT:-./orthanc_db}:/var/lib/orthanc/db + - ${ORTHANC_DB_MNT:-./volumes/orthanc_db}:/var/lib/orthanc/db - ${ORTHANC_OHIF:-./config/orthanc_ohif.js}:/usr/local/share/orthanc/ohif.js:ro + - ${ORTHANC_LOG:-./volumes/orthanc_logs}:/etc/orthanc/logs environment: VERBOSE_ENABLED: "true" VERBOSE_STARTUP: "true" @@ -51,6 +65,17 @@ services: restart: always networks: - pacs + + meddream: + image: meddream/dicom-viewer + restart: always + ports: + - "80:8080" + volumes: + - ./config/meddream/application.properties:/opt/meddream/application.properties + - ./config/meddream/license:/opt/meddream/license + - ./config/meddream/system.json:/opt/meddream/sys/settings/system.json + networks: pacs: diff --git a/volumes/orthanc_logs/.gitignore b/volumes/orthanc_logs/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/volumes/orthanc_logs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore