Giter VIP home page Giter VIP logo

weasis-pacs-connector's Introduction

weasis-pacs-connector

License Build Status
Sonar Sonar Sonar Sonar Sonar

weasis-pacs-connector provides the easiest way to launch the Weasis DICOM viewer from a web context (see URL examples below) and to connect Weasis to any PACS supporting WADO or to a WEB API.

The master branch requires Java 8+ and a servlet container 3.1. The 6.x branch requires Java 7+ and a servlet container 2.5.

This component gathers different services:

  • /viewer launching Weasis with the patient ID, study UID... (can be configured to use a combination of UIDs or to hide some of them)
  • /IHEInvokeImageDisplay launching Weasis at Patient and Study level, compliant to the IHE IID profile
  • /manifest building the xml manifest (containing the necessary UIDs) consumed by Weasis to retrieve all the images by WADO requests
  • /[name of the template] (default template: /weasis.jnlp) building a jnlp file from a template (jnlp template path, jnlp properties and jnp arguments can be passed via URL parameters, see the JNLP Builder documentation)

Build weasis-pacs-connector

Prerequisites: JDK 8 and Maven 3

  • Execute the maven command mvn clean package in the root directory of the project and get the package from /target/weasis-pacs-connector.war. Official releases are available at here.

  • Use the loggerless profile for web application container which already embeds slf4j and log4j (like JBoss): mvn clean package -Ploggerless

Launching Weasis with IHE IID profile

Launching Weasis

Note: It is allowed to have multiple UIDs for patient, study, series and instance but within the same level. The configuration file enables to set which ID is allowed and if a combination of UIDs is required. When using a combination of UIDs, the order is not relevant.

Upload the manifest via http POST
Embed the manifest into the jnlp
Open non DICOM images
Launch with specific parameters

Getting the xml manifest

Build an XML file containing the UIDs of the images which will be retrieved in Weasis. There is an XLS schema to validate the content of xml. This file can be either compressed in gzip or uncompressed. Here are examples:

JNLP Builder

See the JNLP Builder documentation

Installation

It requires a web application container like Tomcat or JBoss.

Go here and download these Weasis files.

  • From the folder with the latest version number:
    • [weasis.war] Weasis Web distribution which run with Java Web Start.
    • [weasis-ext.war] Optional package for additional plug-ins (e.g. exporting the images to build an ISO image for CD/DVD)
    • [weasis-i18n.war] Optional package for Weasis translations
  • From weasis-pacs-connector folder:
    • [weasis-pacs-connector.war] Connector between the archive and the viewer
    • [dcm4chee-web-weasis.jar] Optional package for dcm4che-web3

Configuration of weasis-pacs-connector

The default configurations works directly with dcm4che-web3. To override the configuration of weasis-pacs-connector, download weasis-connector-default.properties and rename it weasis-pacs-connector.properties. This file named weasis-pacs-connector.properties and dicom-dcm4chee.properties must be placed in the classpath of the application:

  • In JBoss inferior to version 7, the best location would be "/server/default/conf/"
  • In JBoss 7.2 and 8.x, see here
  • In JBoss Wildfly 10, the location is wildfly/standalone/configuration
  • In Tomcat just specify the directory in shared.loader property of /conf/catalina.properties

To add properties or arguments in the JNLP there are two possibilities:

  1. Add parameters via the URL, see the JNLP Builder documentation (arg, prop, and src)
  2. Change the default template, see jnlp.default.name in weasis-connector-default.properties

weasis-pacs-connector 6.1 generates new manifests and requires Weasis 2.5 and superior. However it is possible to run previous version of Weasis by modifying the weasis-connector-default.properties:

  1. Set the property manifest.version=1
  2. Uncomment the property jnlp.default.name=weasis1.jnlp

Note: when multiple archives are configured, only the references of the first archive containing images will be incorporated in the manifest 1.0. Multiple archives can only work with Weasis 2.5.

For dcm4chee-arc-light see the installation instructions.

New way to launch jnlp

An alternative way to launch Java Webstart (JWS) by changing the scheme of URL:

  • jnlp://localhost:8080/weasis-pacs-connector/viewer?patientID=9702672
  • jnlps://localhost:8443/weasis-pacs-connector/viewer?patientID=9702672 (SSL connection)

or from weasis-pacs-connector 6.1.2 by adding "getJnlpScheme" in the web context:

Advantages of jnlp protocol:

  • Works at the system level (association of a MIME type with an application: jnlp => JWS)
  • Works with most of browsers (Chrome, IE, Firefox, Safari, Opera...)
  • Browsers do not download jnlp anymore. JWS reads directly the URL (do not show the popup "This application will run with unrestricted access" at every launch)
  • Works with other applications which are requesting the default system application for the jnlp protocol
  • No change is required at the client side or at the server side, only replacing the scheme of the jnlp URL is enough
  • Registration of jnlp handler is available in Oracle Java Runtime installer from JRE 8_111 and in the Java 9 installer.
    • Works out of box on Windows
    • On Mac OS X, it could be necessary to run once Java Webstart to register the jnlp handler (/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Resources/javawslauncher.app)
    • On Linux, a configuration is required
  • An implementation has be done on IcedTea-WEB (alternative of the Oracle JWS) and it will be available in the next release (1.7).

For more informations:

Security

There are different ways to treat the security aspects. Here are some:

  • Make a proxy servlet (URL forwarding) to handle authentication and authorization you want and configure weasis-pacs-connector to be called only by the proxy server (hosts.allow=serverhostname)
  • Configure weasis-pacs-connector for UIDs encryption in the URL with a paraphrase (encrypt.key=paraphraseForIDs: just uncomment and set a new key). It works by default with dcm4chee-web3. For other web interface it requires to use the same algorithm with the same key.
  • Configure weasis-pacs-connector for accepting only limited IP/host
  • Configure weasis-pacs-connector for accepting only requests with a combination of several UIDs

Architecture of weasis-pacs-connector

weasis-pacs-connector schema

See How to launch Weasis from any environments

weasis-pacs-connector's People

Contributors

nroduit avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.