Sign inSign up

meddream/dcm4chee-dicom-viewer

By meddream

•Updated 6 days ago

MedDream DICOM Viewer for DCM4CHEE Archive 5

Image
Web servers
3

10K+

meddream/dcm4chee-dicom-viewer repository overview

⁠MedDream DICOM Viewer for DCM4CHEE5 PACS server

The MedDream DICOM Viewer is integrated into the DCM4CHEE5 DICOM archive.

MedDream HTML5 Zero-footprint DICOM Viewer which is vendor-neutral and ready to be integrated into PACS, HIS/RIS/EHR/EMR, Telemedicine, Patient Portals, National Systems, CAD, and AI algorithms. MedDream Universal Enterprise Viewer can be installed on-premises, in any virtual environment, or on the cloud.

MedDream is designed to aid medical professionals in the day-to-day decision-making process. The Viewer is CE-certified and FDA-cleared for diagnostic use as a Class 2 medical device. MedDream is a cost-effective certified solution perfect for software vendors, integrators, OEMs, and national system providers.

⁠Installation of MedDream DICOM Viewer with DCM4CHEE5 PACS server

Installing MedDream DICOM Viewer and DCM4CHEE5 DICOM archive in the docker environment:

docker network create dcm4chee_net
docker run --restart=always --network=dcm4chee_net --name ldap \
           -p 389:389 \
           -v /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data \
           -v /var/local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d \
           -d dcm4che/slapd-dcm4chee:2.6.8-34.2
		   
docker run --restart=always --network=dcm4chee_net --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
		   
docker run --restart=always --network=dcm4chee_net --name arc \
           -p 8080:8080 \
           -p 8443:8443 \
           -p 9990:9990 \
           -p 9993:9993 \
           -p 11112:11112 \
           -p 2762:2762 \
           -p 2575:2575 \
           -p 12575:12575 \
           -e POSTGRES_DB=pacsdb \
           -e POSTGRES_USER=pacs \
           -e POSTGRES_PASSWORD=pacs \
           -e WILDFLY_WAIT_FOR="ldap:389 db:5432" \
           -v /etc/localtime:/etc/localtime:ro \
           -v /etc/timezone:/etc/timezone:ro \
           -v /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone \
           -d dcm4che/dcm4chee-arc-psql:5.34.2
		
docker run --restart=always --network=dcm4chee_net --name meddream -itd -p 80:8080 -v /var/local/dcm4chee-arc/wildfly/data/fs1:/storage -e integration=study meddream/dcm4chee-dicom-viewer:8.9.1; chown -R 1023:1023 /var/local/dcm4chee-arc/wildfly

Sending sample DICOM study to DCM4CHEE5 PACS server:

docker run --rm --network=dcm4chee_net meddream/dicom-studies:latest storescu -cDCM4CHEE@arc:11112 .

⁠Login to MedDream DICOM Viewer

MedDream DICOM Viewer Login Form:

http://127.0.0.1/login.html

or just

http://127.0.0.1/

Default Login username and password:
User: demo
Password: demo

Note: Please select "Any" date in the MedDeam Study Search window to see all uploaded DICOM studies.

⁠Integration into HIS

MedDream can be integrated into Healthcare Information systems: Hospital information system (HIS), Radiology information system (RIS), PACS server / PACS system, Vendor Neutral Archive (VNA), Electronic health record (EHR), or Electronic medical record (EMR), National eHealth system or e-Health project, National portal or Patients portal, Telemedicine service or Telemedicine collaboration, DICOM Routing, Medical Imaging Cloud or other DICOM and medical imaging services.

⁠Integration by Study UID in URL parameters

Integration example by Study UID in URL parameters:

http://127.0.0.1/?study={studyUID}

URL integration of the DICOM study sample:

http://127.0.0.1/?study=1.2.826.0.1.3680043.8.1055.1.20161012115812848.450575715.8637545

The viewer will open the study by specified Study UID.

Installing DCM4CHEE5 DICOM archive, MedDream DICOM viewer, information system integration example, and sample studies:

docker network create dcm4chee_net
docker run --restart=always --network=dcm4chee_net --name ldap \
           -p 389:389 \
           -v /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data \
           -v /var/local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d \
           -d dcm4che/slapd-dcm4chee:2.6.8-34.2
		   
docker run --restart=always --network=dcm4chee_net --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
		   
docker run --restart=always --network=dcm4chee_net --name arc \
           -p 8080:8080 \
           -p 8443:8443 \
           -p 9990:9990 \
           -p 9993:9993 \
           -p 11112:11112 \
           -p 2762:2762 \
           -p 2575:2575 \
           -p 12575:12575 \
           -e POSTGRES_DB=pacsdb \
           -e POSTGRES_USER=pacs \
           -e POSTGRES_PASSWORD=pacs \
           -e WILDFLY_WAIT_FOR="ldap:389 db:5432" \
           -v /etc/localtime:/etc/localtime:ro \
           -v /etc/timezone:/etc/timezone:ro \
           -v /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone \
           -d dcm4che/dcm4chee-arc-psql:5.34.2

docker run --restart=always --network=dcm4chee_net --name meddream -itd -p 80:8080 -v /var/local/dcm4chee-arc/wildfly/data/fs1:/storage -e integration=study meddream/dcm4chee-dicom-viewer:8.9.1; chown -R 1023:1023 /var/local/dcm4chee-arc/wildfly
docker run --restart=always --network=dcm4chee_net -d -p 81:80 --name his -e integration=study meddream/dicom-viewer-integration:0.5

Sending sample DICOM study to DCM4CHEE5 PACS server:

docker run --rm --network=dcm4chee_net meddream/dicom-studies:latest storescu -cDCM4CHEE@arc:11112 .

Information system integration example (integration Java Script code) will be available by

http://127.0.0.1:81/

You can open the viewer by clicking on the "Interrogation by Study UID" link.

Security Warning: You need to use additional authentication or authorization methods if you need to prevent unauthorized access to the link.

⁠Integration by Secure Token in URL parameters

Access permissions and resources can be specified and passed using secure token-based integration. MedDream token service (https://hub.docker.com/r/meddream/token-service⁠) can be used for token generation and validation.

Installing DCM4CHEE5 DICOM archive, MedDream DICOM viewer, information system integration example, and sample studies:

docker network create dcm4chee_net
docker run --restart=always --network=dcm4chee_net --name ldap \
           -p 389:389 \
           -v /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data \
           -v /var/local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d \
           -d dcm4che/slapd-dcm4chee:2.6.8-34.2
		   
docker run --restart=always --network=dcm4chee_net --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
		   
docker run --restart=always --network=dcm4chee_net --name arc \
           -p 8080:8080 \
           -p 8443:8443 \
           -p 9990:9990 \
           -p 9993:9993 \
           -p 11112:11112 \
           -p 2762:2762 \
           -p 2575:2575 \
           -p 12575:12575 \
           -e POSTGRES_DB=pacsdb \
           -e POSTGRES_USER=pacs \
           -e POSTGRES_PASSWORD=pacs \
           -e WILDFLY_WAIT_FOR="ldap:389 db:5432" \
           -v /etc/localtime:/etc/localtime:ro \
           -v /etc/timezone:/etc/timezone:ro \
           -v /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone \
           -d dcm4che/dcm4chee-arc-psql:5.34.2

docker run --restart=always --network=dcm4chee_net --name meddream -itd -p 80:8080 -v /var/local/dcm4chee-arc/wildfly/data/fs1:/storage -e integration=token meddream/dcm4chee-dicom-viewer:8.9.1; chown -R 1023:1023 /var/local/dcm4chee-arc/wildfly
docker run --restart=always --network=dcm4chee_net -d -p 81:80 --name his -e integration=token meddream/dicom-viewer-integration:0.5
docker exec -d his sed -i 's/"storage": "Orthanc"/"storage": "Dcm4chee5"/g' getToken.php
docker run --restart=always --network=dcm4chee_net --name meddream-token-service -itd -p 8088:8088 meddream/token-service:2.1.23

Sending sample DICOM study to DCM4CHEE5 PACS server:

docker run --rm --network=dcm4chee_net meddream/dicom-studies:latest storescu -cDCM4CHEE@arc:11112 .

Information system integration example (integration Java Script code) will be available by

http://127.0.0.1:81/

You can open the viewer by clicking on the "Integration by Secure Token" link.

Please contact [email protected]⁠ for detailed Integration Instructions or other integration options (3rd party or integrating vendor's token generation and validation service can be used).

⁠Configuration of MedDream DICOM Viewer with DCM4CHEE5 PACS server

Custom Viewer configuration (application.properties and system.json) can passed by using the -v parameter:

docker run --restart=always --network=dcm4chee_net --name meddream -itd -p 80:8080 -v /home/meddream/license:/opt/meddream/license -v /home/meddream/application.properties:/opt/meddream/application.properties -v /home/meddream/system.json:/opt/meddream/sys/settings/system.json meddream/dcm4chee-dicom-viewer:8.9.1

Default application.properties file (for -v /home/meddream/application.properties):

server.port=8080
logging.file=mdjavacore
logging.level.com.softneta=INFO
com.softneta.license.licenseFileLocation=./license
com.softneta.meddream.loginEnabled=true


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,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,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,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=Dcm4chee5
com.softneta.meddream.pacs.configurations[0].id=Dcm4chee5
com.softneta.meddream.pacs.configurations[0].url=jdbc:postgresql://db:5432/pacsdb
com.softneta.meddream.pacs.configurations[0].username=pacs
com.softneta.meddream.pacs.configurations[0].password=pacs
com.softneta.meddream.pacs.configurations[0].storage=fs1=/storage/
com.softneta.meddream.pacs.configurations[0].storeScpAet=DCM4CHEE
com.softneta.meddream.pacs.configurations[0].storeScpIp=arc
com.softneta.meddream.pacs.configurations[0].storeScpPort=11112
com.softneta.meddream.pacs.configurations[0].pacsVersion=5.31
com.softneta.meddream.pacs.configurations[0].searchApiEnabled=true
com.softneta.meddream.pacs.configurations[0].imageApiEnabled=true

Default system.json (for -v /home/meddream/system.json):

{
	"disableMultiFrameVideoAutoLoad": false,
	"features": {
		"patientHistory": true,
		"keyObjectAndPresentationStateQuickSave": true,
		"keyObjects": true,
		"presentationState": true,
		"searchSettings": true,
		"viewerSettings": true,
		"reportSettings": true,
		"hangingProtocolsSettings": true,
		"export": true,
		"archive": true,
		"search": true,
		"reports": false,
		"remoteReports": false,
		"liveShare": false,
		"hangingProtocols": true,
		"openTabsTrackingMethod": "NONE",
		"batchImageRequests": true,
		"prepareInstances": false,
		"thumbnailsPerSeries": "FIRST",
		"summaryThumbnailsFor": [
			"CT",
			"MR",
			"PT",
			"NM"
		],
		"preloadSeries": "OFF",
		"boundingBoxAnnotations": true,
		"viewToClipboard": "IMAGE",
		"pngPSToClipboard": "NONE",
		"showCalculatedFps": true,
		"viewToDICOM": false,
		"mistMpr3D": true,
		"clearCache": false,
		"measurementsPropagation": true,
		"digitalSubtraction": false
	},
	"blackListedSopClasses": [],
	"forwardPacs": [
		{
			"storeScpIp": "127.0.0.1",
			"storeScpPort": "104",
			"storeScpAet": "PACS",
			"description": "An example destination for Forward"
		}
	],
	"languages": [
		"en"
	],
	"dicomLibraryConfiguration": {
		"dicomLibrarySender": "[email protected]",
		"dicomLibrarySubject": "My special study",
		"languages": null,
		"language": null
	},
	"formatIntegrationLinkInViewer": false,
	"textureInterpolationType": 1,
	"requestsConfig": {
		"maximumMetadataStreams": 5,
		"maximumPixelStreams": 15,
		"maximumMultiFrameStreams": 4,
		"batchSizeMb": 5,
		"multiFrameBatchSizeMb": 2
	},
	"workersConfig": {
		"maxWorkers": "50%",
		"maxSegmentationWorkers": "50%"
	},
	"cacheSupervisorConfig": {
		"enabled": false,
		"runFrequencyInSec": 10
	},
	"scrollingConfig": {
		"modality": [
			"CT",
			"MR",
			"PT",
			"OPT",
			"NM",
			"MG",
			"OCT"
		],
		"sopClass": []
	},
	"fusionConfig": {
		"modality": [
			"CT",
			"MR",
			"PT"
		],
		"sopClass": []
	},
	"notificationsConfig": {
		"autoCloseAfterSec": 10
	},
	"personNameConfiguration": {
		"formatIn": null,
		"formatOut": null
	},
	"searchHistoryByPatientId": true,
	"segmentationConfig": {
		"smartPaintPreloadOptions": "wait-for-toolbar",
		"messagingLevel": "minimal"
	},
	"dontAutoOpenTheseAnnotations": [],
	"windowPosition": []
}

⁠Stop and remove containers

To stop working containers:

docker stop meddream his meddream-token-service arc ldap db

To remove containers:

docker rm meddream his meddream-token-service arc ldap db

⁠License

MedDream DICOM Viewer is licensed under the Commercial License. Please get in touch with [email protected]⁠ to get a TRIAL license.

The license can be registered by using the License Serial number. The license folder must be mounted by using -v /home/meddream/license:/opt/meddream/license. In application.properties must be:

com.softneta.license.licenseFileLocation=./license

If you want to use several instances of the MedDream DICOM Viewer on docker, you MUST use a unique License Serial number and unique meddream.lic file for each instance.

Tag summary

Content type

Image

Digest

sha256:ecb9f3263…

Size

1.4 GB

Last updated

6 days ago

docker pull meddream/dcm4chee-dicom-viewer:8.10.0-rc.10