Skip to content

nroduit/weasis-pacs-connector

Repository files navigation

weasis-pacs-connector

License License Build
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.

Note: A simpler configuration without weasis-pacs-connector is possible if the DICOM archive has DICOMWeb services (see examples here).

  • The master branch requires Java 8+ and a servlet container 3.1. It works by default with dcm4chee-arc-light.
  • The 6.x branch requires Java 7+ and a servlet container 2.5. This is the latest version working with dcm4chee 2.18.x.

❗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 (:warning: => 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)

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 possible to limit the type of UIDs (patientID, studyUID, accessionNumber, seriesUID, objectUID) that can be called from services. See "request.ids" in this configuration file which enables to set which ID is allowed, by default all are allowed.

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

Some Weasis preferences may be overridden in the URL 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 on the server side and an installation of Weasis (native installer) on the client side.

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 parameter cdb with no value must be added to the URL (e.g. http://localhost:8080/weasis-pacs-connector/weasis?patientID=9702672&cdb) or 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 dcm4chee-arc-light. To override the configuration of weasis-pacs-connector, download 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 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. Otherwise requires to have the archive ID in the request URL (e.g. http://host?patientID=9702672&archive=1000).

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 IPs/hosts
  • Limit the type of UIDs (patientID, studyUID, accessionNumber, seriesUID, objectUID) that can be called from services

Architecture

Architecture schema

See How to launch Weasis from any environments