Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/knopkem/dicomweb-proxy

A proxy to translate between dicomweb and traditional dicom dimse services (PACS communication)
https://github.com/knopkem/dicomweb-proxy

c-find c-get c-move c-store dcmtk dicom dicomweb dimse imaging javascript medical nodejs ohif pacs proxy qido-rs rest viewer wado-rs wado-uri

Last synced: 20 days ago
JSON representation

A proxy to translate between dicomweb and traditional dicom dimse services (PACS communication)

Awesome Lists containing this project

README

        

# dicomweb-proxy

A proxy to translate between [DICOMWEB](https://www.dicomstandard.org/dicomweb) and traditional DICOM [DIMSE](https://dicom.nema.org/medical/dicom/current/output/chtml/part07/sect_7.5.html) services

## Description
* A nodejs tool to easily connect a DICOMWEB capable DICOM viewer to one or more legacy PACS that only know DIMSE services.
Comes preinstalled with the popular [OHIF DICOM Web Viewer](https://github.com/OHIF/Viewers) (version 3.8.0).

Note: Since OHIF 3 is still beta you can also switch back to OHIF 2 version: just remove the public directory and unzip public.zip to public

## What is it for?

* if you want to view image data from one or more legacy PACS that does not understand DICOMWEB nor come with a web-viewer

## How does it work?

* the app should be installed within the hospital intranet and configured to connect via DIMSE networking to on or more PACS (peers)
* it hosts a default DICOMweb viewer (OHIF) which can be replaced
* the webserver exposes the default QIDO and WADOURI/WADORS API needed for the viewer and converts on the fly between the two protocols
* optionally: you can connect to a [DICOMWEB-WEBSOCKET-BRIDGE](https://github.com/knopkem/dicomweb-websocket-bridge) and expose the data to the public (handle with care!)

## Prerequisite

* nodejs 12 or newer

## Setup Instructions - npm

* install in empty directory:
```npm init -y```
```npm install dicomweb-proxy```

* update config file located in:
```./node_modules/dicomweb-proxy/config```

* or better: create config override, see: [config](https://www.npmjs.com/package/config)

* start proxy:
```npx dicomweb-proxy```

## Setup Instructions - source

* clone repository and install dependencies:
```npm install```

* update config file located in:
```./config```

* start proxy:
```npm start```

## What to modify
* (optional) change our port or AET

```
config.source = {
aet: "SOURCE_AET",
ip: "SOURCE_IP",
port: "SOURCE_PORT"
};
```

* change peer(s) to your PACS

```
config.peers = [{
aet: "TARGET_AET",
ip: "TARGET_IP",
port: "TARGET_PORT"
}, { more peers here...}];
```

* in case your PACS does not support C-GET, switch to C-Move:
```config.useCget = false;```

* update webserver port:
```config.webserverPort = 5000;```

* open webbrowser and start viewing:
e.g. ```http://localhost:5000```

## License
MIT