[Docker] MedDream DICOM Viewer for Orthanc PACS server

MedDream DICOM Viewer for Orthanc PACS server

The MedDream DICOM Viewer integrated into Orthanc 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 cloud.

MedDream is designed to aid medical professionals in 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, OEM‘s and national system providers.

Installation of MedDream DICOM Viewer with Orthanc PACS server

Installing orthanc DICOM archive and viewer in docker environment:

docker network create orthanc
docker run --restart=always --network=orthanc --name orthanc -v /mnt/orthanc-db/:/var/lib/orthanc/db/ -itd -p 4242:4242 -p 8042:8042 jodogne/orthanc-plugins:latest
docker run --restart=always --network=orthanc --name meddream -itd -p 80:80 -e integration=study meddream/orthanc-dicom-viewer:7.5.3

Sending sample DICOM study to orthanc PACS:

docker run --rm --network=orthanc meddream/dicom-studies:latest storescu -cSENDTOPACS@orthanc:4242 .

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 MedDeam Study Search window to see all uploaded DICOM studies.

Integration into HIS

MedDream can be integrated into Healtcare Information systems: Hospital information system (HIS), Radiology information system (RIS), PACS server / PACS syste, 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"

Viewer will open study by specified Study UID.

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

docker network create orthanc;
docker run --restart=always --network=orthanc --name orthanc -itd -p 4242:4242 -p 8042:8042 jodogne/orthanc-plugins:latest
docker run --restart=always --network=orthanc --name meddream -itd -p 80:80 -e integration=study meddream/orthanc-dicom-viewer:7.5.3
docker run --restart=always --network=orthanc -d -p 81:80 --name his -e integration=study meddream/dicom-viewer-integration:0.5
docker run --rm --network=orthanc meddream/dicom-studies:latest storescu -cSENDTOPACS@orthanc:4242 .

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

http://127.0.0.1:81/

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

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

Integration by Secure Token in URL parameters

Access permissions and resources can be specified and passed by 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 orthanc DICOM archive, MedDream DICOM viewer, information system integration example and sample studies:

docker network create orthanc;
docker run --restart=always --network=orthanc --name orthanc -itd -p 4242:4242 -p 8042:8042 jodogne/orthanc-plugins:latest
docker run --restart=always --network=orthanc --name meddream -itd -p 80:80 -e integration=token meddream/orthanc-dicom-viewer:7.5.3
docker run --restart=always --network=orthanc --name meddream-token-service -itd -p 8088 meddream/token-service:0.6
docker run --restart=always --network=orthanc -d -p 81:80 --name his -e integration=token meddream/dicom-viewer-integration:0.5
docker run --rm --network=orthanc meddream/dicom-studies:latest storescu -cSENDTOPACS@orthanc:4242 .

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

http://127.0.0.1:8080/

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

Please contact info@softneta.com" style="box-sizing: border-box; background-color: transparent; color: rgb(15, 108, 158); overflow-wrap: break-word; text-decoration-line: none;">info@softneta.com for detailed Integration Instruction or other integration options (3'rd party or integrating vendor's token generation and validation service can be used).

Configuration of Orthanc Viewer

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

docker run --restart=always --network=orthanc --name meddream -itd -p 80:80 -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/orthanc-dicom-viewer:7.5.3

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

com.softneta.license.licenseFileLocation=./license

server.port=80
logging.file.name=mdjavacore
logging.level.com.softneta=INFO

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
authentication.his.valid-his-params=study
authorization.defaultHisPermissions=EXPORT_ISO,EXPORT_ARCH,FORWARD,REPORT_VIEW,REPORT_UPLOAD,PATIENT_HISTORY,UPLOAD_DICOM_LIBRARY,3D_RENDERING,DOCUMENT_VIEW
authorization.defaultLoginPermissions=SEARCH,EXPORT_ISO,EXPORT_ARCH,FORWARD,REPORT_VIEW,REPORT_UPLOAD,PATIENT_HISTORY,UPLOAD_DICOM_LIBRARY,3D_RENDERING,DOCUMENT_VIEW

com.softneta.meddream.loginEnabled=true
features.search=true

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].searchApiEnabled=true
#com.softneta.meddream.pacs.configurations[0].imageApiEnabled=true
#com.softneta.meddream.pacs.configurations[0].dicomCacheDirectory={Path to DICOM files}
#com.softneta.meddream.pacs.configurations[0].storeScuAet={Remote AE Title for uploading annotations and KOs}
#com.softneta.meddream.pacs.configurations[0].storeScuIp={IP of remote AE for uploading annotations and KOs}
#com.softneta.meddream.pacs.configurations[0].storeScuPort={Port of remote AE for uploading annotations and KOs}

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

{
  "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
  },
  "blackListedSopClasses": [],
  "forwardPacs": [{
            "storeScpIp": "127.0.0.1",
            "storeScpPort": "104",
            "storeScpAet": "PACS",
            "description": "An example destination for Forward"
        }],
  "languages": ["en"],
  "dicomLibraryConfiguration": {
    "dicomLibrarySender": null,
    "dicomLibrarySubject": null
  },
  "asynchronousStudyLoading": false,
  "formatIntegrationLinkInViewer": false
}

Stop

To stop working containers:

docker stop his
docker stop meddream
docker stop meddream-token-service
docker stop orthanc

To remove containers:

docker rm his
docker rm meddream
docker rm meddream-token-service
docker rm orthanc

License

MedDream DICOM Viewer licensed under the Commercial License. Please contact info@softneta.com" style="box-sizing: border-box; background-color: transparent; color: rgb(15, 108, 158); overflow-wrap: break-word; text-decoration-line: none;">info@softneta.com to get TRIAL license.

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

com.softneta.license.licenseFileLocation=./license
0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

웹개발

번호 제목 글쓴이 날짜 조회수
122 [Dart] Dart 문법 정리 최고관리자 09-09 24,845
121 [Flutter] absorbpointer-and-ignorepointer 최고관리자 09-08 24,166
120 [PHP] 타입선언 최고관리자 08-22 23,995
119 [PHP] error_level 셋팅과 실제 출력 최고관리자 08-21 24,100
118 [MySql] 타입지정시 괄호안의 숫자 최고관리자 08-18 24,131
117 [MySql] MySQL 최적의 데이터 타입 선택 방법 최고관리자 08-18 23,808
116 [MySql] 인덱스 조회시 주의 사항 최고관리자 08-18 23,813
115 [MySql] NOT NULL과 DEFAULT 를 동시에 쓸 필요가 있는가? 최고관리자 08-18 23,833
114 [Flutter] Row and Column 최고관리자 08-16 23,691
113 [Flutter] Linting 설정으로, 흔하게 실수할 수 있는 것을 build 전 방지하기. 최고관리자 08-16 23,856
112 [PHP] PHP 7.x PHP 8.x에서의 조건문 최고관리자 07-26 23,829
111 [JS] Webpack을 쓰는 이유 최고관리자 07-24 23,885
110 [Vue] Vue Router 최고관리자 07-22 23,763
109 [Vue] Vue.js 기본 원리 최고관리자 07-22 24,250
108 [MySql] 쿼리 결과를 합치는 union vs union all의 차이 최고관리자 07-10 23,777
107 [Vue] 일반적인 프로젝트의 구조에 대해 알아보자. 최고관리자 06-18 23,844
106 [JSP] vue등의 스크립트 분석을 위해 %태그 정도는 알자. 최고관리자 06-18 23,971
105 [MySql] 페이징(paging) 쿼리시 전체개수를 한번에 처리하는 방법 최고관리자 06-14 24,609
104 [MySql] Join vs Sub Query 비교 최고관리자 06-05 24,021
103 [SQL] SQL Join에 대한 이해 최고관리자 06-05 23,871