/weasis-pacs-connector

Connect Weasis to any PACS supporting WADO

Primary LanguageJavaEclipse Public License 2.0EPL-2.0

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) and to connect Weasis to any PACS supporting WADO-URI. If you want to make your own connector without weasis-pacs-connector, follow these instructions.

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.

As Java Webstart is deprecated, prefer to use the weasis protocol (defined below by the /weasis service) instead of Java Web Start because it has been removed from Java 11 release and because the end of public Oracle Java 8 updates from April 2019. It only works with Weasis 3.5 (or superior) installed on the system with a native installer.

This component gathers different services (⚠️ => deprecated):

Service Description
/weasis new protocol to launch Weasis with requested images, replacing Java Webstart
/viewer ⚠️ launching Weasis with Java Webstart
/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-URI requests
/[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)

Release History

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

Launch Weasis

The /weasis service uses the weasis protocol by redirecting the http:// request into weasis:// (because some web frameworks such as the wiki or the URL field of some browsers only support the standard protocols). It replaces the old /viewer service using Java Webstart.

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.

Launch Weasis with IHE IID profile

The Invoke Image Display Profile allows the user of an Image Display Invoker, typically a nonimage-aware system like an EHR, PHR or RIS, to request the display of studies for a patient, and have the display performed by an image-aware system like an Image Display (PACS).

Launch Weasis with other parameters

Property syntax (key and value must be URL encoded): &pro="key%20value"

To add parameters related to the launch configuration and user preferences without weasis-pacs-connector, refer to this page.

Upload the manifest via http POST

When the manifest is built outside weasis-pacs-connector and needs to be transmitted to the viewer.

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:

Installation

It requires a web application container like Jetty, Tomcat or JBoss or the server side and an installation Weasis (native installer) from the client side.

Note: For installation with the dcm4chee user interface, see this page.

Go here and download these following files:

  • From weasis-pacs-connector folder:
    • [weasis-pacs-connector.war] Connector between the archive of images and the viewer
  • From the folder with the latest version number (Optional if you want to run only the native version installed on the client system):
    • [weasis.war] Weasis web package which will upgrade the local installation for minor releases (all the plug-ins except the launcher).
    • [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

Note: If Weasis is not installed on the server side, the weasis.base.url property in the weasis-pacs-connector configuration must be commented or set to null.

Configuration

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 at launch, see Launch Weasis with other parameters.

Several archives can be used simultaneously in configuration by defining an archive file in which the property arc.activate must be true.

For dcm4chee-arc-light see the installation instructions.

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

Architecture schema

See How to launch Weasis from any environments