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) |
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
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.
- http://localhost:8080/weasis-pacs-connector/weasis?patientID=9702672
- http://localhost:8080/weasis-pacs-connector/weasis?patientID=9702672%5E%5E%5Etest
=> to handle an universal patientID, add IssuerOfPatientID like in hl7: patientID=9702672^^^test - http://localhost:8080/weasis-pacs-connector/weasis?patientID=97026728&patientID=2023231696
=> multiple patients - http://localhost:8080/weasis-pacs-connector/weasis?patientID=97026728&modalitiesInStudy=MR,XA
=> only studies containing MR or XA - http://localhost:8080/weasis-pacs-connector/weasis?patientID=97026728&containsInDescription=abdo,thorax
=> only studies containing the string abdo or thorax (accent and case insensitive) in study description (from version 5.0.1) - http://localhost:8080/weasis-pacs-connector/weasis?patientID=97026728&modalitiesInStudy=CT&upperDateTime=2010-01-01T12:00:00Z
=> only studies containing CT which are more recent than 2010-01-01 12:00:00 (UTC time, do not use 'Z' if the store files don't have a time zone) - http://localhost:8080/weasis-pacs-connector/weasis?studyUID=1.3.6.1.4.1.5962.1.2.2.20031208063649.855
- http://localhost:8080/weasis-pacs-connector/weasis?accessionNumber=3224252
- http://localhost:8080/weasis-pacs-connector/weasis?seriesUID=1.2.840.113704.1.111.4924.1273631010.17
- http://localhost:8080/weasis-pacs-connector/weasis?objectUID=1.2.840.113704.1.111.3520.1273640118.5118
- http://localhost:8080/weasis-pacs-connector/weasis?studyUID=1.3.6.1.4.1.5962.1.2.2.20031208063649.855&studyUID=1.3.6.1.4.1.5962.1.2.2.20031208063649.857&seriesUID=1.2.840.113704.1.111.4924.1273631010.17
=> multiple studies and series
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.
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).
- http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=PATIENT&patientID=97026728&mostRecentResults=2
=> query at patient level to get a number of the most recent studies - http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=PATIENT&patientID=97026728&lowerDateTime=2010-01-01T12:00:00
=> query at patient level to get the studies which are older than a date - http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=PATIENT&patientID=97026728&upperDateTime=2010-01-01T12:00:00
=> query at patient level to get the studies which are more recent than a date - http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=PATIENT&patientID=97026728&modalitiesInStudy=MR,XA
=> query at patient level to get the studies containing MR or XA - http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=PATIENT&patientID=97026728&containsInDescription=abdo,thorax
=> query at patient level to get the studies containing the string abdo or thorax (accent and case insensitive) in study description (from version 5.0.1) - http://localhost:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=STUDY&accessionNumber=1657271
=> query at study level with accessionNumber or studyUID
Some Weasis preferences may be overridden in the URL parameters.
- http://localhost:8080/weasis-pacs-connector/weasis?patientID=9702672&pro="weasis.aet%20MYAET"
=> Change the defaut Weasis calling AETitle for DICOM send and DICOM print (by default WEASIS_AE)
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.
When the manifest is built outside weasis-pacs-connector and needs to be transmitted to the viewer.
- http://localhost:8080/weasis-pacs-connector/weasis?upload=manifest
=> with the header parameter "Content-Type: text/xml; charset=UTF-8" and the manifest in the body of the POST request
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:
- http://localhost:8080/weasis-pacs-connector/manifest?studyUID=1.3.6.1.4.1.5962.1.2.2.20031208063649.855
- http://localhost:8080/weasis-pacs-connector/manifest?studyUID=1.3.6.1.4.1.5962.1.2.2.20031208063649.855&gzip
=> return a gzip-compressed XML file - http://localhost:8080/weasis-pacs-connector/manifest?patientID=97026728&modalitiesInStudy=MR&upperDateTime=2014-05-20T12:00:00
=> only studies containing MR which are more recent than 2014-05-20 12:00:00
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.
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.
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