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).

End of Life Notice

⚠️ weasis-pacs-connector is approaching end of life. While this project will continue to receive critical maintenance and security updates, no new features are planned.

For new deployments and enhanced functionality, consider migrating to ViewerHub, the next-generation solution that provides:

  • Modern architecture with improved performance and scalability
  • Native support for multiple DICOM archive types (DB, DICOMWeb and DICOM C-FIND)
  • Enhanced security features and authentication mechanisms
  • Better integration with modern web frameworks and cloud environments
  • Active development with new features and improvements

ViewerHub is designed to handle Weasis integration with various types of DICOM archives more efficiently and provides a future-proof solution for medical imaging workflows.

Version Requirements

  • Version 8.x+ (master branch): Requires Java 17+ and Jakarta EE 9+ servlet container (Servlet API 5.0+). Uses Jakarta namespace and works by default with dcm4chee-arc-light. Java Web Start (JNLP) support has been completely removed.
  • Version 7.x (7.x branch): Requires Java 8+ and a servlet container 3.1. This is the last version supporting Java Web Start.
  • Version 6.x (6.x branch): Requires Java 7+ and a servlet container 2.5. This is the latest version working with dcm4chee 2.18.x.

Breaking Changes in 8.x

Java Web Start (JNLP) support has been completely removed in version 8.0.0. This modernization effort aligns with the removal of Java Web Start from Java 11+ and the end of its lifecycle. Use the weasis protocol instead.

Removed services:

  • /viewer service (deprecated Java Web Start launcher)
  • /[template] services for JNLP file generation
  • All JNLP-related configuration properties

Migration path: Replace any /viewer calls with /weasis service calls using the same parameters.

This component provides the following services:

Service Description
/weasis Protocol to launch Weasis with requested images using the weasis:// protocol
/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

Build weasis-pacs-connector

Prerequisites: JDK 17+ and Maven 3.8.1+

  • 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 here.

Launch Weasis

The /weasis service uses the weasis protocol by redirecting the http:// request into weasis:// (because some web frameworks such as wikis or URL fields of some browsers only support standard protocols).

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 non-image-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 XSD schema to validate the content of xml. This file can be either compressed in gzip or uncompressed. Here are examples:

Installation

It requires a Jakarta EE 9+ compatible web application container (such as Tomcat 10+, Jetty 11+, or WildFly 24+) 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 [weasis-pacs-connector.war] in the folder weasis-pacs-connector.

Note: If Weasis is not installed on the server side (only with ViewerHub and weasis-native package), 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 configuration 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 WildFly, 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

About

Connect Weasis to any PACS supporting WADO

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages