Weasis: Free DICOM viewer

A free / libre DICOM viewer for medical imaging

Weasis is a powerful, multifunctional, open-source DICOM viewer for both standalone and web-based use. From routine reading to AI-assisted review and quantitative imaging, it is engineered for seamless integration with PACS, VNA, and DICOM workflows in hospitals, multicenter research trials, and patient-facing portals.

Download Weasis Try a live sample Read the tutorials

Find your way around

🩺 Clinicians & end users

Open studies, drive the 2D / MPR / 3D viewers, measure, annotate, share findings.

🛠 Integrators & administrators

Connect Weasis to your PACS, DICOMweb endpoints, EHR / RIS / HIS portals.

💻 Developers & contributors

Build plug-ins, extend the architecture, contribute code, translations, or documentation.

Why Weasis

Built for clinical reading

Opens every common DICOM exam — CT, MR, ultrasound, X-ray, mammography, PET, ECG, structured reports, segmentations, RT plans. Multi-monitor, HiDPI, MPR, 3D, full annotation toolkit.

Fits into your environment

Connects to your hospital's PACS or web archive, opens from any clinical portal in one click, and reads files from a local folder, USB drive, or DICOM CD. Works offline.

Trusted, free, and open

Free under EPL 2.0 / Apache 2.0, open on GitHub — no vendor lock-in. Production-grade at HUG and across hospitals, trials, and portals worldwide — heir to a Geneva lineage of open imaging viewers.

See the complete feature list → · Read the case studies →

Simple on the surface, advanced underneath


Community & support

Subsections of Weasis: Free DICOM viewer

Getting Started

Try Weasis now

Visit the Download Page for a comprehensive list of installation options adapted to your system.

Since version 4, only the distribution with a native installer is maintained to ensure a better user experience in terms of installation, configuration and compatibility. This distribution also supports launching Weasis from a web context via the weasis protocol.

General Topics

Get started with these links to learn more about Weasis and its features:

Developer Documentation

Dive into advanced topics and technical resources for developers:

Subsections of Getting Started

Download Weasis DICOM Viewer

Installation Methods

Prerequisites

Weasis runs on Windows, macOS, and Linux without requiring additional frameworks like Java. However, certain graphics capabilities are needed for Volume Rendering.

Warning

The open-source distribution of Weasis is not a certified medical device (CE or FDA). Any primary diagnostic use requires you to ensure full compliance with the laws and regulations applicable in your jurisdiction.

Native Installers

Download standalone installers for manual installation:

Download Weasis DICOM Viewer binaries
Pack. System Arch. Size Weasis installer Comments
DEB  Linux x86-64 53.6 MB weasis_4.7.0-1_amd64.deb Requires GLIBC_2.17
DEB  Linux arm-64 51.5 MB weasis_4.7.0-1_arm64.deb Requires GLIBC_2.27
MSI  Windows x86-64 51.1 MB Weasis-4.7.0-x86-64.msi Requires Windows 10 or higher
PKG  macOS arm-64 60.8 MB Weasis-4.7.0-aarch64.pkg Requires macOS 12 or higher (Apple Silicon)
PKG  macOS x86-64 63.5 MB Weasis-4.7.0-x86-64.pkg Requires macOS 11 or higher (Intel)
RPM  Linux x86-64 53.7 MB weasis-4.7.0-1.x86_64.rpm Requires GLIBC_2.17, libstdc++.so.6 and libgcc
Linux Compatibility: See the compatibility matrix for GLIBC version requirements and distribution compatibility.

For older releases, visit these repositories:

Stay Updated: Subscribe to our Google Group and select “Email” to receive release notifications.

Package Management Systems

Install via package managers to receive automatic updates.

Windows

macOS

  • Homebrew (Intel & Apple Silicon)
    brew install --cask weasis

Linux

Note

Sandbox Limitations: Flatpak and Snap packages run in sandboxed environments, which may restrict certain functionalities:

The Snap installation uses <user.home>/snap/weasis/current/.weasis instead of the standard <user.home>/.weasis directory.

Embedding in dcm4chee

This page explains how to integrate Weasis with dcm4chee-arc-light using weasis-pacs-connector. To launch Weasis without the connector, follow the alternative instructions.

dcm4chee-arc-light dcm4chee-arc-light

Follow these steps for the integration with weasis-pacs-connector:

  1. Install dcm4chee, if not already done (Installation with Docker is straightforward).

  2. Go here and download weasis-pacs-connector.war — See Configuration Matrix below for the recommended version according to your dcm4chee-arc-light version.

  3. Open the WildFly management console (at http://<your-host>:9990). Note: with some Keycloak versions, the management console may not be accessible.

    • Select the “Deployments” tab
    • Add weasis-pacs-connector.war using the “Add” button (Choose Upload a new deployment or select Replace when the file already exists)
      Note

      Alternatively one may deploy the .war using JBoss Command Line Interface Console.

  4. Configure weasis-pacs-connector (optional if default settings are sufficient).
    The default configuration is stored in two files inside weasis-pacs-connector.war. To override the default configuration:

    • Download the current download>weasis-pacs-connector.properties and download>dicom-dcm4chee-arc.properties (configuration of the dcm4chee archive)
    • Edit the configuration as needed. For example, dcm4chee may be running on a different computer than Weasis, or the AE Title of dcm4chee may have been changed. If so, edit weasis-pacs-connector.properties or dicom-dcm4chee-arc.properties (Change pacs.host, pacs.port, and pacs.aet).
    • Copy weasis-pacs-connector.properties and dicom-dcm4chee-arc.properties into $WILDFLY_HOME/standalone/configuration (where $WILDFLY_HOME is the path of the running Wildfly).
      With the docker installation use the docker copy command ($ docker cp …)
      Tip

      Instead of copying the files into $WILDFLY_HOME/standalone/configuration, JBoss Command Line Interface Console can be used to override files in the war. Add the two configuration files with the deployment-overlay command:

      deployment-overlay add --name=dcm4chee-arc --deployments=weasis-pacs-connector.war --content=WEB-INF/classes/weasis-pacs-connector.properties=/tmp/weasis-pacs-connector.properties,WEB-INF/classes/dicom-dcm4chee-arc.properties=/tmp/dicom-dcm4chee-arc.properties --redeploy-affected
    • To apply the new configuration, from the management console “Disable” weasis-pacs-connector.war then “Enable”
  5. To activate Weasis in the dcm4chee-arc-light user interface (See also Invoke Image Display in dcm4chee): you need to add attributes by either editing docker-compose.env (from 5.22.0) or from the left menu Configuration > Devices > dcm4chee-arc > Extensions > Edit extension > Child Objects > Web Applications > DCM4CHEE:

    • Configure the URL for a view button at patient or study level and then copy the properties from Configuration Matrix.
      • From dcm4chee-arc-light 5.10.2 to 5.19.0, the left menu: Configuration > Devices > dcm4chee-arc > Extensions > Archive Device
      • From dcm4chee-arc-light 5.19.1 the left menu: Configuration > Devices > dcm4chee-arc > Extensions > Edit extension > Child Objects > Web Applications > DCM4CHEE
      • From dcm4chee-arc-light 5.22.0 by editing docker-compose.env (allows applying properties at deploy time). Note: the character & must be escaped (e.g., IID_STUDY_URL=../../weasis-pacs-connector/weasis?studyUID={{studyUID}}\\&access_token={{access_token}})
        Note

        URL parameters

        • access_token is necessary in secure mode (secured RESTful services) from dcm4chee-arc-light 5.15.1
        • _self avoids opening a new empty window in the browser
    • InfoOptional Add other properties in the URL.
    • Refresh the web page and the view button should appear as in the screenshot above
    • To launch the viewer from the web portal, the client computer must have installed the Weasis package.

Configuration Matrix

Note

The list below maps dcm4chee-arc-light versions to the recommended weasis-pacs-connector, and gives the properties to add in dcm4chee-arc-light configuration to enable Weasis launching.

Older versions pass _self via query parameter (target=_self); newer versions (5.22.2+) use the dedicated property IID_URL_TARGET=_self.

dcm4chee-arc-light 5.10.2 to 5.19.0

weasis-pacs-connector7.x

Unsecured Mode

  • ../../weasis-pacs-connector/weasis?&patientID={}&cdb&target=_self
  • ../../weasis-pacs-connector/weasis?&studyUID={}&cdb&target=_self

Secured Mode (from 5.15.1)

  • ../../weasis-pacs-connector/weasis?&patientID={}&cdb&target=_self&access_token={}
  • ../../weasis-pacs-connector/weasis?&studyUID={}&cdb&target=_self&access_token={}

dcm4chee-arc-light 5.19.1 to 5.22.1

weasis-pacs-connector7.x

Unsecured Mode

  • IID_PATIENT_URL=../../weasis-pacs-connector/weasis?&patientID={}&cdb&target=_self
  • IID_STUDY_URL=../../weasis-pacs-connector/weasis?&studyUID={}&cdb&target=_self

Secured Mode

  • IID_PATIENT_URL=../../weasis-pacs-connector/weasis?&patientID={}&cdb&target=_self&access_token={}
  • IID_STUDY_URL=../../weasis-pacs-connector/weasis?&studyUID={}&cdb&target=_self&access_token={}

dcm4chee-arc-light 5.22.2 to 5.30.x

weasis-pacs-connector7.x

Unsecured Mode

  • IID_PATIENT_URL=../../weasis-pacs-connector/weasis?patientID={{patientID}}&cdb
  • IID_STUDY_URL=../../weasis-pacs-connector/weasis?studyUID={{studyUID}}&cdb
  • IID_URL_TARGET=_self

Secured Mode

  • IID_PATIENT_URL=../../weasis-pacs-connector/weasis?patientID={{patientID}}&cdb&access_token={{access_token}}
  • IID_STUDY_URL=../../weasis-pacs-connector/weasis?studyUID={{studyUID}}&cdb&access_token={{access_token}}
  • IID_URL_TARGET=_self

dcm4chee-arc-light 5.31.0+

weasis-pacs-connector8.x
Warning

Requirements: Java 17+ and Jakarta EE 10 (WildFly 29.0.1.Final or later)
Note:the context path has changed from ../../ to ../../../

Unsecured Mode

  • IID_PATIENT_URL=../../../weasis-pacs-connector/weasis?patientID={{patientID}}&cdb
  • IID_STUDY_URL=../../../weasis-pacs-connector/weasis?studyUID={{studyUID}}&cdb
  • IID_URL_TARGET=_self

Secured Mode

  • IID_PATIENT_URL=../../../weasis-pacs-connector/weasis?patientID={{patientID}}&cdb&access_token={{access_token}}
  • IID_STUDY_URL=../../../weasis-pacs-connector/weasis?studyUID={{studyUID}}&cdb&access_token={{access_token}}
  • IID_URL_TARGET=_self

Weasis Web Protocol

The Weasis Protocol enables the launch of Weasis (starting from v3.6.0) in a web context using a specific URI scheme: weasis://?commands.

How to Use the Weasis Protocol

To launch Weasis from various contexts:

  1. From a Web Page: Create a link that begins with weasis://? (see below How to build an URI).
    If certain web frameworks (e.g., WIKI) or contexts only support HTTP protocols, you can use a URL redirection starting with https://. A tool such as Weasis PACS Connector can help with this.
  2. From the Command Line: Utilize the appropriate Weasis command from the terminal:
    start weasis://?%24dicom%3Aget+-w+%22https%3A%2F%2Fnroduit.github.io%2Fdemo-archive%2FLumbar%2Fmf.xml%22
    xdg-open weasis://?%24dicom%3Aget+-w+%22https%3A%2F%2Fnroduit.github.io%2Fdemo-archive%2FLumbar%2Fmf.xml%22
    open weasis://?%24dicom%3Aget+-w+%22https%3A%2F%2Fnroduit.github.io%2Fdemo-archive%2FLumbar%2Fmf.xml%22

How to Build a URI

The weasis://? URI scheme allows you to launch Weasis directly from the system’s URI handler. By constructing the correct URI path, you can execute Weasis commands to load images or perform other actions.

Weasis PACS Connector can dynamically generate manifests (listing references for images to load) and build the required URI through an API. This tool also manages user preferences and other launch parameters.

If you’re not using the Weasis PACS Connector, you can build a URI manually by following these steps:

  1. Choose Commands: Select one or more commands to execute.
  2. Encode the Commands: Use a URL encoder to format the commands correctly for URI inclusion.
  3. Prefix the Commands: Add the weasis://? scheme at the beginning of the encoded command string to create the final URI.
Example: Loading a Remote Image
  1. Use $dicom:get to load an image from URL
    $dicom:get -r "https://nroduit.github.io/demo-archive/us-palette.dcm"
  2. Format the URI path with a URL encoder
    %24dicom%3Aget+-r+%22https%3A%2F%2Fnroduit.github.io%2Fdemo-archive%2Fus-palette.dcm%22
  3. Make the final URI by adding “weasis://?” at the beginning Open the remote image
Tip

For loading multiple images, it’s recommended to use a manifest file that references all desired images instead of including each image individually in the URI. The easiest way to build this manifest dynamically is by using the Weasis PACS Connector. Alternatively, you can create the manifest manually following the provided instructions.

Examples to Load Images

If you use weasis-pacs-connector, please refer to Launch Weasis.

  • Use $dicom:get to load a static XML manifest containing direct links (without WADO server) Launch
    $dicom:get -w "https://nroduit.github.io/demo-archive/Lumbar/mf.xml"
  • Use $dicom:rs to load DICOM files with DICOMWeb RESTful services (see other examples) Launch
    $dicom:rs --url "https://demo.orthanc-server.com/dicom-web" -r "patientID=5Yp0E"
  • Use $dicom:get to load an image from URL and remove all the previous images if Weasis is already open Launch
    $dicom:close --all $dicom:get -r "https://nroduit.github.io/demo-archive/us-palette.dcm"
  • Use $dicom:get to load multiple local folders and a remote image Launch
    $dicom:get -l "D:/DICOM/Overlay" -l "D:/DICOM/Shutter" -r "https://nroduit.github.io/demo-archive/us-palette.dcm"
  • Use $image:get to load a non DICOM image Launch
    $image:get -u "https://user-images.githubusercontent.com/993975/59107662-6c9ed300-8939-11e9-83ee-28f2725f4ae1.jpg"

Modify the Launch Parameters

The command for modifying the configuration at launch is $weasis:config which can have different arguments:

  • cdb is the Weasis web context (The URL of weasis-native.zip package in ViewerHub). If the value is null, the weasis version installed from the native installer is used. In the weasis-pacs-connector configuration, the default value is defined by weasis.base.url.
  • arg is an argument for the launcher. The value must start by $, like arg="$dicom:close –all" (Note: the value can also be directly in the base URI, outside $weasis:config). Single-valued argument but can be specified multiple times.
  • pro is a property for the launcher containing a key and a value separate by a space. Single-valued property but can be specified multiple times.
  • auth is the web authorization parameter
  • wcfg is the URL the remote Weasis configuration service.

Here are some examples that modify the launcher properties without using weasis-pacs-connector:

  • Configuration for launching Weasis Dicomizer Launch
    $weasis:config pro="felix.extended.config.properties file:conf/dicomizer.json" pro="gosh.port 17181"
  • Change the user, by default, is the one of the current system session. The local preferences are associated to a user. Launch
    $weasis:config pro="weasis.user user2"

Enterprise Deployment: Browser Protocol Configuration

By default, Weasis registers the weasis:// protocol through standard OS mechanisms. To ensure a seamless user experience in institutional environments, administrators can suppress the browser’s security confirmation dialog using central policies.

Official Documentation:

Recommended for AD environments.

  1. GPO Path:
    • Chrome/Edge: Computer ConfigurationAdmin Templates[Google Chrome/Microsoft Edge]Content SettingsAllow access to a list of URLs
    • Firefox: Computer ConfigurationAdmin TemplatesMozillaFirefoxWebsiteFilterExceptions
  2. Value: Add weasis://*

Direct Registry Deployment:

Windows Registry Editor Version 5.00

; Chrome
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\URLAllowlist]
"1"="weasis://*"

; Chromium
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium\URLAllowlist]
"1"="weasis://*"

; Microsoft Edge
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\URLAllowlist]
"1"="weasis://*"

; Firefox
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Mozilla\Firefox\WebsiteFilter\Exceptions]
"1"="weasis://*"

Note: The number in quotes (“1”) should be incremented if you already have other entries in the list.

Create a policy file in the managed directory.

  • Chrome: /etc/opt/chrome/policies/managed/weasis.json
  • Chromium: /etc/chromium/policies/managed/weasis.json
  • Firefox: /etc/firefox/policies/policies.json

Example JSON (Chrome/Chromium):

{
  "URLAllowlist": ["weasis://*"]
}

Example JSON (Firefox):

{
  "policies": {
    "WebsiteFilter": { "Exceptions": ["weasis://*"] }
  }
}

Deploy via MDM (Jamf, Kandji, etc.) using the URLAllowlist key. Chrome/Chromium Payload:

<key>URLAllowlist</key>
<array>
    <string>weasis://*</string>
</array>

PayloadType: com.google.Chrome (Chrome) or com.brave.Browser (Brave). Firefox: Use the macOS Mozilla Policy structure.

Building Weasis

These instructions guide you through building Weasis directly from its GitHub repository. For IDE-based builds, refer to the Weasis plugin development guidelines.

Prerequisites

  1. JDK 25 or higher
  2. Maven 3.8.1 or higher
    If your computer is behind a proxy server, refer to the Maven proxy configuration guide.
  3. Git

Getting the Source Code

In order to clone the repository, install Git and either use a graphical client or run the following command in a terminal:

git clone https://github.com/nroduit/Weasis.git

Building All Plugins

  • Navigate to the root directory of the cloned Weasis repository, compile and install all plugins into the local Maven repository:

    mvn clean install

  • Package weasis-native.zip (located in target/native-dist/), since Version4.0.0 :

    mvn -P compressXZ -f weasis-distributions clean package
    Tip

    -P compressXZ: Option for compressing the packages in xz, only from Weasis 3.6.0. The compression pack200 is not supported anymore (removed from Java 14), before 3.6.0 the profile was -P pack200.

    Tip

    -P purgeI18nPackage: Option to delete the translation package in the local maven repository (active by default). To disable this option, add - before the profile:

    mvn -P compressXZ,-purgeI18nPackage -f weasis-distributions clean package
    Warning

    For production, the version must not include SNAPSHOT (as packages with a SNAPSHOT are always downloaded, not cached). To remove SNAPASHOT or create your own release (use a specific name to prevent package conflicts in the cache), update the changelist property. From the Weasis root folder, execute:

    mvn -Dchangelist=-mybuild-beta clean install
    mvn -Dchangelist=-mybuild-beta -P compressXZ -f weasis-distributions clean package

Building native binaries and installers

Starting with Version4.0.0, the native installer has fully replaced the portable and Java WebStart distributions.

The official build process is executed via GitHub Actions using GitHub-hosted runners across Linux, macOS, and Windows.

However, you can also build the native binaries and installer locally using the package-weasis.sh script. This process is not guaranteed to work on all systems, as it requires proper configuration of multiple tools. Refer to the jpackage prerequisites for more details.

  • Obtain the weasis-native.zip file, extract the archive, and navigate to the root folder in a Bash prompt.
  • Run the following command to build the native binaries and installer:
    ./build/script/package-weasis.sh --jdk "/home/.jdks/openjdk-25"
Note
  • Replace --jdk with the path to your local JDK installation.
  • To generate only the native binaries (without creating an installer), include the --no-installer flag.
  • For additional command options, run:
    ./build/script/package-weasis.sh --help
Tip

On Windows the bash script must be executed with Git Bash or Cygwin. Avoid having spaces in the input and output paths.

Guidelines

Weasis Plugin Development

This page describes the necessary configurations to be able to debug Weasis using an IDE. For developers who want to create new plugins, you can visit How to build and install a plugin.

We recommend the use of IntelliJ IDEA because the following instructions are based on it. Nevertheless, it is possible to use other IDEs by configuring weasis-launcher with similar instructions described in Add a launcher.

Prerequisites

  1. Install IntelliJ IDEA (Community or Ultimate Edition 2024.3 or higher)
  2. Use JDK 25 or higher and set the language level to SDK Default in File > Project Structure… >.
    Required Maven version is 3.8.1 or higher.
  3. In File > Settings… > Plugins install google-java-format plugin from Marketplace and enable it from google-java-format Settings

Code style and convention

Weasis uses google-java-format as coding conventions. The format can be applied by Maven through the Spotless plugin or from the IDE (by importing the IntelliJ Java Google Style file). Formatting code with an IDE is not 100% compatible with Spotless, so it is better to use the latter before submitting new commits. This guarantees identical code formatting regardless of the system or code editor used.

  • From Maven command: mvn spotless:apply
  • From the Maven panel Maven Spotless Maven Spotless

Getting the source and building Weasis

  • Getting the Source
    • For an external Git client, see Building Weasis.
    • From IntelliJ IDEA: New > Project from Version Control…
      • In the Get from Version Control dialog, select the menu Repository URL and enter the following URL: https://github.com/nroduit/Weasis.git (public repository)
  • Building Weasis plugins
    • In the maven panel, select clean/install in Lifecycle of weasis-framework (root) to compile and to install all the plugins in the local Maven repository.
Tip
  • It is possible to use a JVM Option (e.g. -Dweasis.arch=linux-x86-64) to limit the build of native plugins only to the architecture of the current system (do not use this option when building the distribution).
  • See also building the final Weasis Distributions

Add a launcher

For running or debugging Weasis, you need to create a launcher:

  • Open Run > Edit Configurations…

  • Create a new Application

    • Select weasis-launcher as a module (field starting by -cp)
    • Main Class: browse org.weasis.launcher.AppLauncher
    • Click on Modify Options
      • Select Add dependencies with “Provided” scope to classpath
      • Select Do not build before run
      • Select Add VM Options and enter -Xms64m -Xmx768m -Dgosh.port=17179
    • Working Directory: remove the current value and add %MODULE_WORKING_DIR% from the Insert Macros button Launcher Configuration Launcher Configuration
      Note

      As the default build task has been removed it is necessary to apply the Maven command install on modules with modified code before launching the Run or Debug mode.
      Keeping the build task and delegating the build to Maven does not seem configurable for a multi-module project, see this issue.

  • Examples of launching parameters by entering values in the Program arguments text box

    • Loading DICOM files from a local path:
      $dicom:get -l \"D:\images test\dicom\"
      Note

      Some command interpreters need to escape the quotes or double quotes required for paths or URLs. This is the case with IntelliJ IDEA or Eclipse.
      For more commands at startup see also Weasis commands.

      Warning

      In Eclipse launcher parameters, ‘&’ within URLs needs to be escaped with a backslash.

  • Examples of other VM options for overriding the default Preferences

    • Removing the possibility of exporting DICOM: -Dweasis.export.dicom=false
    • Defines a new user (for getting specific preferences): -Dweasis.user=user1
    • Examples with specific configuration files:
      • For launching Weasis Dicomizer: -Dfelix.extended.config.properties=file:target/conf/dicomizer.json
      • Configuration from a URL: -Dfelix.extended.config.properties=https://mysite.com/weasis/conf/config.json
        Note

        felix.config.properties defines the location of base.json (the OSGI configuration and the list of plugins to install/start)
        felix.extended.config.properties defines the location of a json file (extends/overrides base.json)

Internationalization

Translation files are hosted and managed on the Transifex website. Get an account and help to translate to your language! If your language is missing, just head over to Transifex and request a new language.

Warning

Text length: The translations for many languages frequently exceed the length of the corresponding English source. It could be a problem for the layout of graphical components (e.g., buttons). Some elements have a character limit on the translation tool.

Tip

Special characters: Some characters representing values (%d, %s), newline (\n) and HTML tags must not be translated. For other translating recommendations, see Transifex help
For special words or particular contexts look at the “Instructions” text box (gives explanations or definitions).

Building Weasis-i18n

weasis-i18n is the internationalization project (i18n) of Weasis. As a separate project, it can have its own release cycle. The OSGi fragments of plugins contain only the translation files which are merged during runtime to the matching module of the application.

To obtain daily built packages, see this page.

Note

That means the translation packages can be deployed at any time; it does not need to follow the Weasis life cycle. With remote packages, the plugin translation will be updated by Weasis only if the timestamp number has changed. This timestamp is set during the build phase described below.

Info

Additional projects to obtain a full translation of Weasis:
The java-swing-dialogs translations must be updated manually in the weasis-launcher module and docking-frames translations must be packaged witin the library.

Prerequisites

  1. JDK 11 or higher
  2. Maven 3 or higher
    If your computer is behind a proxy server, configure maven.
  3. Git or directly download the source code from GitHub

Getting the Source

To clone the repository, first install GIT and either clone using a graphical GIT client (such as Tortoise Git) or directly from the command line using the command:

$ git clone https://github.com/nroduit/weasis-i18n.git

Build the distribution

Go in the weasis-i18n directory, Compile and install all the plugins in the local Maven repository

$ mvn clean install -Dtransifex.token="<your-token>"

All the APIs require to be authenticated. So the value “your-token” must be replaced by your generated token, see how to get this token on Transifex.

Command if you are behind a proxy server:

$ mvn clean install -DproxySet=true -DproxyHost="host" -DproxyPort="port" -Dtransifex.token="<your-token>"

Info

The distribution files are located in the weasis-i18n-dist/target/dist folder.

Apply the translations

The translation package can be built manually as described below, or it is automatically built every 24 hours and can be downloaded from here. When Building Weasis, the last package is downloaded automatically.

  • In order to update Weasis with new translations, unzip weasis-i18n.zip and either:
    • Pass the weasis.i18n location into the launch command:
      $weasis:config pro="weasis.i18n <your-uri>"
      $weasis:config pro="weasis.i18n file:/home/weasis-i18n-dist-4.0.0-SNAPSHOT"
      $weasis:config pro="weasis.i18n https://<your-domain>/weasis-i18n-dist-4.0.0"
    • Replace the files in the “bundle-i18n” folder where Weasis is installed (not possible when Weasis is distributed from an application store or the Mac signed package).
Note

weasis-launcher-i18n cannot be updated dynamically as the launcher is not an OSGi module. It must be imported manually into the Weasis source (weasis-launcher).

Tip

Basics

The Basics section is the reference layer of the Weasis documentation. It targets administrators, integrators, and power users who deploy Weasis into a clinical or research environment and need to understand its internals — beyond what an end user needs to know to read a study.

You will find:

  • Architecture — the OSGi-based plugin model, how the application boots, and how a plugin fits into the runtime.
  • Customize — application preferences, integration with a PACS or web portal, and plugin packaging.
  • Shortcuts — the full keyboard-shortcut reference.
  • Commands — the command-line and console catalog ($dicom:get, $image:close, …) usable from scripts, the Weasis console, or remote control.
  • System Resources — heap sizing, file handles, network tuning, and other runtime knobs for large workstations or multi-user deployments.
  • DICOM Conformance — the DICOM conformance statement (SOP classes, transfer syntaxes, services).

If you are deploying Weasis behind a PACS / VNA, see also the Customize → Integration guide and the ViewerHub launcher.

Subsections of Basics

Weasis Architecture

Weasis is built on a modular architecture powered by OSGi: the dynamic module system for Java. This design allows for a highly flexible, dynamic, and extendable structure. At its core, Weasis utilizes the Apache Felix OSGi framework, a lightweight open-source implementation of the OSGi specification.

Key Architectural Features

The following diagrams illustrate the main plugin types (known as bundles in OSGi terminology) and their relationships. These include Viewer, Viewer Tool Pane, Tool Bar, Data Explorer, and Codec bundles, which are dynamically registered using Declarative Services—a mechanism to seamlessly provide or consume services in the OSGi environment.

OSGI plugins Weasis Launcher and Apache Felix OSGi framework Codec [Codec] Data Explorer [DataExplorerView,ExplorerModel] Weasis Core Weasis Base UI (UI plugins aggregator) Viewer [ViewerPlugin] Viewer Tool Pane [DockableTool] Tool Bar [Toolbar] [...] = Java abstract class or interface to implement Web Browser Desktop App Mime Type Open a viewer related to the mime type Weasis protocol (URI) Mime types / Extensions

Understanding The Categories of Plugins

Weasis employs a modular approach, where individual plugins (or bundles in OSGi terminology) handle specific functionalities. Here are the plugin categories represented by layers in the diagram:

  1. Media Viewer and Editor
    This category handles the main viewing and editing functionalities. Except the 2D viewer, it includes specialized viewers for different modalities and representations.
  2. UI Aggregator
    UI Aggregator plugins bring together various interface components to create a cohesive and user-friendly experience. They dynamically adapt the interface to include provided tools or modules, ensuring that Weasis remains customizable and modular.
  3. Data Access and Management (Data Explorer)
    This category focuses on managing how data is loaded, retrieved, and handled within the system.
  4. Codec (Media Decoding)
    Codec plugins are responsible for decoding and interpreting medical media files in the DICOM format and other supported formats. They sometimes include native libraries.
  5. Utility and Core Services
    This plugin provides essential utility functions and core services needed to support the other modules.

Each of these categories contributes to the flexibility and extensibility of Weasis, enabling it to be customized and adapted to different clinical and research workflows.

packages packages

Fragment Bundles

A fragment bundle is a special type of bundle that is attached to a host bundle to provide additional resources or classes. In Weasis, fragment bundles are used to provide translations and native libraries for codecs. This design allows for a clean separation of concerns and ensures that only the required resources are loaded at runtime.

Bundle Translation Management

Each bundle has its translation files packaged in a separate bundle fragment (ending in i18n), an OSGi concept that merges these files dynamically during runtime. This design allows translations to be maintained independently, and they are automatically loaded by the application whenever they are available.

Codec Support with Native Libraries

Certain Codec bundles contain fragments with native libraries (using JNI wrappers). The Weasis launcher dynamically loads only the required native binaries relevant to the platform on which it is running, ensuring lightweight and efficient operation.

Shortcuts

Keyboard and Mouse Shortcuts

Here is a list of the default keyboard and mouse shortcuts in Weasis. The shortcuts are divided into different categories for better understanding.

Note

Since v4.7.0, most keyboard shortcuts can be customized in Preferences > General > Keyboard Shortcuts. This page documents the default configuration. To get the current configuration (including any customizations), use Help > Keyboard Shortcuts (this page is internationalized).

Central panel containing viewers and editors

Shortcut Action
Ctrl + Tab Select the next tab
Ctrl + Shift + Tab Select the previous tab
Ctrl + Shift + E Open the docking panel list for selection
Ctrl + M Maximize/Restore the selected tab
Ctrl + W Close the tab
Ctrl + E Externalize the tab (when multiple screens)
Ctrl + N Normalize the tab
Tab Right-click Open the contextual menu for more options (Close Others, All, Maximize)

Selected view in the 2D DICOM Viewer

Shortcut Action
Left Arrow Display previous series
Right Arrow Display next series
Page Up Display first series
Page Down Display last series
Ctrl + Left Arrow Display previous study
Ctrl + Right Arrow Display next study
Ctrl + Page Up Display first study
Ctrl + Page Down Display last study
Up Arrow Display previous image
Down Arrow Display next image
Home Display first image
End Display last image
Shift + Up Arrow Go 10 images back
Shift + Down Arrow Go 10 images forward
Ctrl + Up Arrow Display previous patient
Ctrl + Down Arrow Display next patient
Ctrl + Home Display first patient
Ctrl + End Display last patient
Tab Go to the next view when layout has more than one view
Shift + Tab Go to the previous view when layout has more than one view
Alt + Up Arrow Move image up 5 pixels (with Pan action)
Alt + Down Arrow Move image down 5 pixels (with Pan action)
Alt + Left Arrow Move image left 5 pixels (with Pan action)
Alt + Right Arrow Move image right 5 pixels (with Pan action)
Alt + Shift + Up Arrow Move image up 10 pixels (with Pan action)
Alt + Shift + Down Arrow Move image down 10 pixels (with Pan action)
Alt + Shift + Left Arrow Move image left 10 pixels (with Pan action)
Alt + Shift + Right Arrow Move image right 10 pixels (with Pan action)
Ctrl + NumPad + Zoom in
Ctrl + NumPad - Zoom out
Ctrl + Enter Set zoom to best fit
T Translate (pan) the image canvas
W Window / Level
S Series scroll
Z Zoom
R Rotation
H Crosshair: in multiview mode synchronizes the crosshair position to all the views (Note: Ctrl + click or Ctrl + Shift + click allows changing the Window/Level values)
C Cine Start / Stop
M Measure
D Distance measurement
A Angle measurement
Y Polyline measurement
G Draw
B Textbox
N No Action
Q Context menu
Ctrl + Spacebar Change to the next action
Ctrl + mouse drag Accelerate the current action
Ctrl + Shift + mouse drag Accelerate more the current action
Alt + R 90° rotation (clockwise)
Alt + L 90° rotation (counterclockwise)
Alt + F Flip horizontally (after rotation action)
0 1 2 3 DICOM presets
K Toggle key image state
Spacebar Show/Hide all the annotations (three states)
I Show/Hide all the annotations (three states)
Escape Reset the selected view
P Print view(s) with the operating system printer
Right-click Open the contextual menu for more options
Double click or F11 Toggle fullscreen (F11 since v4.5.2)
Left mouse drag Perform the selected left mouse action (default: Window/Level)
Middle mouse drag Perform the selected middle mouse action (default: Pan)
Mouse scroll Perform the selected scroll action (default: Series scroll)
Drag files/directories
(from the OS file manager)
Open DICOMs files

Selected view in the MPR Viewer

MPR view inherits the same shortcuts as the 2D viewer, with the following additional shortcuts since v4.6.0 :

Shortcut Action
Alt + X Center crosshair of the selected view
Alt + C Show/Hide the crosshair center of the selected view
Alt + V Show/Hide the crosshair of the selected view
Ctrl + Alt + X Center crosshair of all views
Ctrl + Alt + C Show/Hide the crosshair center of all views
Ctrl + Alt + V Show/Hide the crosshair of all views
Ctrl + Alt + B Change the MIP type (None/Min/Mean/Max)
Alt + mouse scroll On selected axis, increase/decrease the MIP thickness

DICOM explorer

Shortcut Action
Ctrl + click on the thumbnail Select multiple series
Click on a thumbnail and then Shift + click on another one Select all series between
Ctrl + A Select all the series
Home or Page Up Select the first series
End or Page Down Select the last series
Up Arrow Select previous series
Down Arrow Select next series
Enter Open the selected series in the default viewer
Click + drag a thumbnail in the main view Display a series
Right-click Open the contextual menu for more options
Drag files/directories
(from the OS file manager)
Open DICOMs files
Note

Downloading Priorities: Selecting a thumbnail gives the best priority to download.

Graphics

Shortcut Action
Click on a graphic Select a Graphics
Click + mouse drag In selection mode: select all the graphics inside the selection area.
In drawing mode: draw the selected graphic shape.
Ctrl + A Select all the graphics
Ctrl + D Deselect all the graphics
Delete Delete the selected graphics
Shift + click on a graphic In selection mode: add or remove a graphic to the current selection.
In drawing mode: force to draw on another graphic (without shift the graphic is selected).
Double click Stop adding points for polyline (also available in the context menu)
Right-click Open the contextual menu for more options

Tips and Tricks

Window / Level Adjustment

  • Move the mouse horizontally to the right to increase the window width (reduce the perceived contrast).
  • Move the mouse vertically upwards to lower the window center (increase the perceived brightness).
    Tip: Use Preferences to reverse the direction of level adjustments.

Drawing a Segment

You can draw a segment in two ways:

  1. Click + Drag: Click, drag to draw, then release.
  2. Click > Release > Drag: Click to start, release, drag to draw, and release again.

Subsections of Customize

Integration

How to launch Weasis from any environments

Here we present how to launch Weasis with associated images from any context either using weasis-pacs-connector or ViewerHub as its successor or by building your own connector. The launch of the application is based on the weasis protocol available since Version3.5.3.

Using weasis-pacs-connector or ViewerHub allows a high degree of integration and facilitates connection to a PACS. Here are some of the advantages:

  • Automatically build a manifest according to a configuration with a PACS
  • The initial URL starts with HTTP and is then redirected to weasis://? (useful when a custom URI scheme is not allowed by wiki, blog platforms, etc.)
  • Efficiently manages to build the manifest simultaneously with the start of Weasis, optimizing loading time
  • Easily handles secure manifest requests and manages tokens for the DICOMWeb services

However, it is also possible:

These integrations provide flexibility to meet the specific needs of healthcare environments, ensuring seamless integration.

Note

Requires Weasis installed on the system with the native installer.

Use weasis-pacs-connector

For connecting to dcm4chee web interface, follow the instructions in Installing Weasis in DCM4CHEE. Otherwise, refer to the documentation of weasis-pacs-connector.

Standard workflow when connecting Weasis to a PACS, RIS, EMR, EPR or any web interface:

PACSLauncherDICOMQueryWeasisConfig(Configurationoftheuserpreferencesandthelauncherparameters)XMLmanifestBuilder(asynchronoustaskstartinstep2andreturndirectlyanURLwithanIDorder)2.manifestbuilderURL3.URLredirectionintoweasisprotocol(weasis://parameters)DownloadManager(ReadXMLmanifest)1.Request(URLwithUIDs,includeInvokeImageDisplayIHEProfile)6.GetDICOMfilesbyWADO5.GetthemanifestWeasisweasis-pacs-connectorClient(oranywebordesktopapplications)dcm4cheewebui4.Executeweasisprotocol

Note

The schema above shows that the queries to the PACS are made at the same time as the viewer starts. This makes it possible to optimize the launch by simultaneously launching weasis and building the manifest.

Tip

weasis-pacs-connector services allow either to build a manifest from a PACS via DICOM C-Find or to upload the manifest by http POST.

Build your own connector

This documentation describes how to create your own connector without weasis-pacs-connector and with different DICOM archive types. The weasis protocol allows you to build URIs to launch Weasis according to different configurations and allows to load DICOM files locally or remotely.

Here are examples with XML manifests or with DICOMWeb RESTful services.

Build an XML manifest

Use $dicom:get to load a XML manifest returned by your service.

$dicom:get -w "https://myservice/manifest?studyUID=2.16.756.5.5.100.397184556.14391.1373576413.1508"

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

<?xml version="1.0" encoding="UTF-8" ?>
<manifest xmlns="http://www.weasis.org/xsd/2.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <arcQuery additionnalParameters="" arcId="1001" baseUrl="http://archive-weasis.rhcloud.com/archive/wado" requireOnlySOPInstanceUID="false">
        <Patient PatientID="H13885_9M" PatientName="TEST NON SQUARE PIXELS" PatientSex="F">
            <Study AccessionNumber="" ReferringPhysicianName="" StudyDate="20130711" StudyDescription="TEST NON SQUARE PIXELS" StudyID="PKD" StudyInstanceUID="2.16.756.5.5.100.397184556.14391.1373576413.1508" StudyTime="170013">
                <Series Modality="US" SeriesDescription="NON SQUARE PIXELS: PIXEL ASPECT RATIO" SeriesInstanceUID="1.2.40.0.13.1.1.87878503032592846377547034671833520632" SeriesNumber="2">
                    <Instance InstanceNumber="107" SOPInstanceUID="1.2.40.0.13.1.1.126082073005720329436273995268222863740"/>
                </Series>
                <Series Modality="MR" SeriesDescription="NON SQUARE PIXELS: PIXEL SPACING" SeriesInstanceUID="2.16.756.5.5.100.397184556.7220.1373578035.1" SeriesNumber="40001">
                    <Instance InstanceNumber="1" SOPInstanceUID="2.16.756.5.5.100.397184556.7220.1373578035.1.0"/>
                    <Instance InstanceNumber="2" SOPInstanceUID="2.16.756.5.5.100.397184556.7220.1373578035.1.1"/>
                    <Instance InstanceNumber="3" SOPInstanceUID="2.16.756.5.5.100.397184556.7220.1373578035.1.2"/>
                    <Instance InstanceNumber="4" SOPInstanceUID="2.16.756.5.5.100.397184556.7220.1373578035.1.3"/>
                </Series>
                <Series Modality="MR" SeriesDescription="NON SQUARE PIXELS: PIXEL SPACING" SeriesInstanceUID="2.16.756.5.5.100.397184556.7220.1373578664.2" SeriesNumber="50001">
                    <Instance InstanceNumber="1" SOPInstanceUID="2.16.756.5.5.100.397184556.7220.1373578664.2.0"/>
                    <Instance InstanceNumber="2" SOPInstanceUID="2.16.756.5.5.100.397184556.7220.1373578664.2.1"/>
                    <Instance InstanceNumber="3" SOPInstanceUID="2.16.756.5.5.100.397184556.7220.1373578664.2.2"/>
                    <Instance InstanceNumber="4" SOPInstanceUID="2.16.756.5.5.100.397184556.7220.1373578664.2.3"/>
                </Series>
            </Study>
        </Patient>
    </arcQuery>
</manifest>
Note

Important Parameters (except mandatory parameters defined in xsd):

  • PatientBirthDate helps to identify a patient.
  • StudyDate, StudyTime, Modality, SeriesNumber and InstanceNumber help to sort data before downloading images.
  • SeriesDescription and StudyDescription allow immediately displaying the descriptions before downloading the images.

Tip

From Weasis 2.5 it is possible to have multiple archives (allows several arcQuery tags) and the presentations tag which contains the image annotations.

Build an XML manifest (no WADO server)

This example requires only a WEB server. Weasis will download DICOM files by URLs.

Use $dicom:get to load a XML manifest containing direct links Launch

$dicom:get -w "https://nroduit.github.io/demo-archive/Lumbar/mf.xml"

Note

Required Parameters:

  • DirectDownloadFile defines the URL of the DICOM file to download (the final URL is the combination of wadoURL + DirectDownloadFile)
  • DirectDownloadThumbnail defines the URL of the JPEG file representing the series (the final URL is the combination of wadoURL + DirectDownloadThumbnail)
  • See in the previous note above.

Download directly with DICOMWeb RESTful services

This integration requires a PACS/VNA with DICOMweb services (QUERY/RETRIEVE) where the requests are managed directly by Weasis. Here are some of the advantages:

  • Straightforward integration
  • Do not require to install weasis-pacs-connector
  • Allow passing token directly in headers (not in the URL)

The following configurations allow images to be loaded by initiating the request from a WEB context. However, it is possible to access DICOMWeb services by initiating the request directly from the Weasis import.

Use $dicom:rs to load DICOM files. Here are some configuration examples of DICOMweb applications:

dcm4chee-arc-light

This configuration requires at least dcm4chee-arc-light 5.22.2 and Weasis 3.6.0. To activate Weasis in dcm4chee-arc-light user interface, you need to add the four following properties in the web portal from the left menu Configuration > Devices > dcm4chee-arc > Extensions > Edit extension > Child Objects > Web Applications > DCM4CHEE

IID_PATIENT_URL=weasis://?$dicom:rs --url "{{qidoBaseURL}}{{qidoBasePath}}" -r "patientID={{patientID}}" --query-ext "&includedefaults=false" -H "Authorization: Bearer {{access_token}}"
IID_STUDY_URL=weasis://?$dicom:rs --url "{{qidoBaseURL}}{{qidoBasePath}}" -r "studyUID={{studyUID}}" --query-ext "&includedefaults=false" -H "Authorization: Bearer {{access_token}}"
IID_URL_TARGET=_self

The properties can also be passed directly to the docker-compose.env file:

IID_PATIENT_URL=weasis://?$dicom:rs --url "{{qidoBaseURL}}{{qidoBasePath}}" -r "patientID={{patientID}}" --query-ext "\&includedefaults=false" -H "Authorization: Bearer {{access_token}}"
IID_STUDY_URL=weasis://?$dicom:rs --url "{{qidoBaseURL}}{{qidoBasePath}}" -r "studyUID={{studyUID}}" --query-ext "\&includedefaults=false" -H "Authorization: Bearer {{access_token}}"
IID_URL_TARGET=_self

Finally, refresh the page for having the viewer button.

Warning

Configuration notes:

  • See configuration for versions before 5.22.2.
  • From 5.24.0 {{qidoBaseURL}} must be replaced by your base URL (e.g. https://pacs2.test.com:8443)
  • The character ‘&’ must be escaped in the Docker environment variables.
  • The Authorization header is not required for unsecure service.
  • URL with HTTPS requires a real valid certificate; otherwise, the certificate must be imported into the Weasis Java keystore or must be installed at system level (from Weasis 4.6.1).
Note

Known issue on Windows: Weasis cannot open the images because of the token length which is cut by the browser. It is only working with Firefox on Windows. It is recommended to use weasis-pacs-connector or ViewerHub to solve this issue.

Orthanc WEB Server

https://www.orthanc-server.com/static.php?page=dicomweb

$dicom:rs --url "https://demo.orthanc-server.com/dicom-web" -r "patientID=ozp00SjY2xG"
Launch

Currently, the DICOMWeb service of Orthanc doesn’t support:

  • Thumbnail service is not implemented.

Google Cloud Healthcare API

https://cloud.google.com/healthcare/docs/how-tos/dicomweb

$weasis:config pro="dicom.qido.query.multi.params true" $dicom:rs --url "https://healthcare.googleapis.com/v1beta1/projects/chc-nih-chest-xray/locations/us-central1/datasets/nih-chest-xray/dicomStores/nih-chest-xray/dicomWeb" -r "studyUID=1.3.6.1.4.1.11129.5.5.184301693334578016850836775758484230512396" -H "Authorization: Bearer <your-token>"

Currently, the DICOMWeb service for getting thumbnails doesn’t work in the Google API.

Note

<your-token> must be replaced by a valid token.

DICOMcloud (for Azure cloud)

https://github.com/DICOMcloud/DICOMcloud

$dicom:rs --url "https://dicomcloud.azurewebsites.net/api" -r "studyUID=1.3.6.1.4.1.14519.5.2.1.4429.7055.198257099234774234268879426857"
Launch
Note

The demo server is no longer accessible.

Currently, the DICOMWeb service of DICOMcloud doesn’t support:

  • Thumbnail service is not implemented.

Kheops

https://kheops.online

$dicom:rs --url "https://demo.kheops.online/api" -r "studyUID=1.3.6.1.4.1.14519.5.2.1.4429.7055.198257099234774234268879426857" -H "Authorization: Bearer <your-token>"
Note

<your-token> must be replaced by a valid token.

Amazon HealthImaging

https://aws.amazon.com/health/health-imaging/

Prefer to use dicomweb-proxy to manage the token and the URL of the DICOMWeb service. See Weasis configuration at the end of this page.

Preferences

ViewerHub (is a separate project that will be available soon) is a tool designed for managing server-side Weasis preferences across all native client installations. The preferences are defined in each release package (bin-dist/weasis/conf within weasis-native.zip) and can be modified either through the ViewerHub web portal or via the Weasis protocol with the pro parameter.

Some server-side preferences are applied by Weasis only during the initial launch, as they can later be adjusted in the Weasis user interface. On the other hand, certain server-side preferences are utilized by Weasis during every launch and cannot be modified through the User Interface (client-side).

Changing Preferences in Weasis

Client-Side Preferences

Local preferences can be modified in the following ways:

  • Through the Weasis User Interface: Navigate to File > Preferences.
  • Using the Weasis Protocol: Use the weasis:config command with the pro parameter.

Server-Side Preferences

Server-side preferences can be updated using any of the following methods:

  • Through the ViewerHub Web Portal: Manage preferences directly via the web portal for all users, for user group or for a specific hostname.
  • By Extending the Configuration File: Create a new JSON file to extend the base.json configuration.

Priority order for loading a property

Here is the priority order to set a property:

  1. Java System property providing from parameters of weasis:config or the launching URI)
  2. Property defined in weasis/conf/xxx.json
  3. The default value of the property (see table below)

Example to change language property (It will work only during the first launch of Weasis on a user session, otherwise delete ${user.home}/.weasis/preferences/).

  1. If you are using weasis-pacs-connector, add the property locale.lang.code:
    http://localhost:8080/weasis-pacs-connector/weasis?patientID=9702672&pro="locale.lang.code%20fr_CH"
  2. Add the property in weasis/conf/xxx.json:
    locale.lang.code=fr_CH
  3. The default value is “en_US”

List of preferences

The preferences listed below are extracted from the base.json file, which is located in the source code.

The properties are grouped into categories (note: not all categories are shown in the list below), and each property includes the following details:

  1. Property Key: The name of the property, used as a key by the viewer.
  2. Default Value: The property’s default value, provided after the arrow. If it is marked as Null, the property is not set by default.
  3. First Badge: The JavaType of the property, indicating its type in Java (String, Integer, Boolean, etc.).
  4. Second Badge: Represents the Type, defining how the viewer handles the property:
    • F: Processed only during the viewer’s initial launch as it can be adjusted in the client-side preferences.
    • A: Always processed by the viewer.
    • AP: Always processed by the viewer but only from base.json or other .json files.
  5. Description: A brief explanation of the property, provided on the second line.

Base preferences

Dicom Category
  • weasis.aetNull string A
    Calling AETitle for DICOM send and Dicomizer publish. ? null means displaying the DICOM calling node combobox otherwise the combo is not displayed and the value is directly used
  • weasis.dicom.root.uid2.25 string A
    Set values for dicom root UID when creating DICOM objects (KO or PR). See company list at https://www.iana.org/assignments/enterprise-numbers
  • weasis.download.immediatelytrue boolean F
    Start to download series immediately
  • download.concurrent.series3 int A
    Controls the number of series downloaded simultaneously
  • download.concurrent.series.images4 int A
    The number of concurrently downloaded images within a series
  • weasis.rt.dvh.recalculate.enabletrue boolean F
    Enables experimental DVH (re)calculation in the RT plugin (derived from dicompyler, not clinically validated). When false (default), only DVHs stored in RTDOSE files are displayed.
General Category
  • weasis.themeorg.weasis.launcher.FlatWeasisTheme string F
    FaltLaf Look and feel, see https://www.formdev.com/flatlaf/themes/
  • weasis.confirm.closingfalse boolean F
    Show a message of confirmation when closing the application
  • locale.lang.codeen string F
    Specifies the language code (see Java Locale: https://www.oracle.com/java/technologies/javase/jdk20-suported-locales.html). Default value is "en".
  • locale.format.codesystem string F
    Uses the operating system's locale (on the client-side) with "system". For other values refer to Java Locale: https://www.oracle.com/java/technologies/javase/jdk20-suported-locales.html
  • weasis.auth.back.port0 int A
    Define the port for the authentication callback. 0 means random port
Launch Category
  • weasis.clean.previous.versionfalse boolean A
    If true, the bundle cache is cleared when the weasis version has changed from the previous launch
  • weasis.main.uiweasis-base-ui string A
    Application main user interface bundle. Mandatory with the default launcher.
  • weasis.nameWeasis string AP
    Change the name of the application everywhere in UI
  • weasis.profiledefault string AP
    Application profile: when no profile name is provided, the value is "default". It allows having a custom preferences' directory on the client side (will not share preferences with other Weasis instances)
  • weasis.userNull string AP
    Defines a user name to store its own preferences. Null value will be the system user.
  • weasis.pref.store.local.sessionNull string AP
    Store user preferences when weasis.user is not specified (only with remote preferences service)
  • flatlaf.uiScaleNull string F
    Specifies a custom scale factor used to scale the user interface. Allowed values: e.g. 1.5, 1.5x, 150% or 144dpi (96dpi is 100%)
  • weasis.resources.url${dollar}{weasis.codebase.url}/resources.zip string A
    Application resources (logo, presets, LUTs, dicom annotations configuration...) "resources.zip" is downloaded again only when the last modified date has changed
  • weasis.show.disclaimertrue boolean A
    Show a disclaimer at the first launch of Weasis (requires to be accepted to start the application)
  • weasis.show.releasetrue boolean A
    Show a message when the release has changed
  • weasis.update.releasetrue boolean A
    Show a message when a new release is available
  • weasis.portable.dicom.directorydicom,DICOM,IMAGES,images string A
    For loading automatically DICOMs in the portable Weasis distribution (CD/DVD). Comma-separated directories relative to the Weasis executable file.
Log Category
  • felix.log.level1 int A
    Set the logging levels for OSGI framework 0=None / 1(default)=Error / 2=Warning / 3=Information / 4=Debug
  • org.apache.sling.commons.log.levelINFO string F
    Application logging level. This may be any of the defined logging levels TRACE, DEBUG, INFO, WARN, ERROR
  • org.apache.sling.commons.log.file.activatefalse boolean F
    Activation of rolling log files
  • org.apache.sling.commons.log.file.number20 int F
    The max number of rolling log files
  • org.apache.sling.commons.log.file.size10MB string F
    The max size of a rolling log file
  • org.apache.sling.commons.log.pattern%d{dd.MM.yyyy HH:mm:ss.SSS} *%-5level* [%thread] %logger{36}: %msg%ex{3}%n string F
    Log pattern: {0} The timestamp of type java.util.Date, {1} the log marker, {2} the name of the current thread, {3} the name of the logger, {4} the debug level and {5} the actual debug message.
  • org.apache.sling.commons.log.stack.limit3 int F
    Defines the maximum number of lines for stack trace (0 => NONE, -1 => ALL). Default value is 3
  • audit.logfalse boolean A
    Audit log for usage statistics in Weasis
Ui Category
  • weasis.import.imagestrue boolean A
    Show the import image toolbar and menu
  • weasis.import.dicomtrue boolean A
    Show the DICOM import menu and dialog
  • weasis.import.dicom.qrtrue boolean A
    Show the DICOM Q/R page in the DICOM Export dialog
  • weasis.export.dicomtrue boolean A
    Show the DICOM export menu and dialog
  • weasis.export.dicom.sendtrue boolean A
    Show the send page in the DICOM Export dialog
  • weasis.export.annotationsfalse boolean A
    Show the Export Annotations button in the toolbar
  • weasis.toolbar.mouse.buttons7170 int A
    Show all mouse buttons. Sum of LEFT=1024 + MIDDLE=2048 + RIGHT=4096 + SCROLL=2. Show all:7170 and show none:0.
  • weasis.all.cinetoolbar.visiblefalse boolean A
    Show all the cine toolbars
  • weasis.all.keyobjecttoolbar.visiblefalse boolean A
    Show all the key object toolbars
  • weasis-dicom-viewer2d.all.rotationtoolbar.visiblefalse boolean A
    Show the rotation toolbars in DICOM 2D viewer
  • weasis.contextmenu.lutShapefalse boolean A
    Show LUT Shape in the contextual menu
  • weasis.contextmenu.lutfalse boolean A
    Show LUT in the contextual menu
  • weasis.contextmenu.filterfalse boolean A
    Show Filter in the contextual menu
  • weasis.plugins.licensetrue boolean A
    Show license activation in Help menu
Viewer Category
  • weasis.color.wl.applytrue boolean F
    Allow applying Window/Level on color images
  • weasis.level.inversetrue boolean F
    Inverse level direction (moving the cursor down to increase brightness
  • weasis.apply.latest.prfalse boolean F
    Apply by default the most recent Presentation State to the related image
  • weasis.force.3dfalse boolean A
    Force to detect a graphic card at every launch
  • weasis.toolbar.mouse.leftwinLevel string F
    Left mouse button action, possible values: pan|winLevel|sequence|zoom|rotation|measure|drawings|contextMenu|crosshair|none
  • weasis.toolbar.mouse.middlepan string F
    Middle mouse button action, possible values: pan|winLevel|sequence|zoom|rotation|measure|drawings|contextMenu|crosshair|none
  • weasis.toolbar.mouse.rightcontextMenu string F
    Right mouse button action, possible values: pan|winLevel|sequence|zoom|rotation|measure|drawings|contextMenu|crosshair|none
  • weasis.toolbar.mouse.wheelsequence string F
    Mouse wheel action, possible values: sequence|zoom|rotation|none

Dicomizer preferences

Dicom Category
  • weasis.acquire.dest.hostNull string A
    Hostname of DICOM send destination for Dicomizer. If no value, the list of DICOM nodes for storage is displayed.
  • weasis.acquire.dest.aetDCM4CHEE string A
    AETitle of DICOM send destination for Dicomizer
  • weasis.acquire.dest.port11112 int A
    Port of DICOM send destination for Dicomizer
  • weasis.acquire.video.max.size1024 int A
    Maximum size in MB of a video file that can be imported into the Dicomizer. A video file larger than this value is rejected with a message. A value of 0 or less disables the limit.
Metadata Category
  • weasis.acquire.meta.global.displayPatientID,PatientName,PatientBirthDate,PatientSex,AccessionNumber,StudyDescription string A
    Comma-separated list of patient and study tags which are displayed in UI. When a required tag has no value, it will be displayed.
  • weasis.acquire.meta.global.editStudyDescription string A
    Comma-separated list of patient and study tags which are editable in UI. When a required tag has no value, it will be editable.
  • weasis.acquire.meta.global.requiredPatientID,PatientName,AccessionNumber,StudyDescription string A
    Comma-separated list of patient and study tags which are required to publish an image
  • weasis.acquire.meta.series.displayModality,OperatorsName,ReferringPhysicianName,SeriesDescription string A
    Comma-separated list of series tags which are displayed in UI. When a required tag has no value, it will be displayed.
  • weasis.acquire.meta.series.editReferringPhysicianName,SeriesDescription string A
    Comma-separated list of series tags which are editable in UI. When a required tag has no value, it will be editable.
  • weasis.acquire.meta.series.requiredModality,SeriesDescription string A
    Comma-separated list of series tags which are required to publish an image
  • weasis.acquire.meta.image.displayImageComments,ContentDate,ContentTime,AnatomicRegion string A
    Comma-separated list of image tags which are displayed in UI. When a required tag has no value, it will be displayed.
  • weasis.acquire.meta.image.editImageComments,ContentDate,ContentTime,AnatomicRegion string A
    Comma-separated list of image tags which are editable in UI. When a required tag has no value, it will be editable.
  • weasis.acquire.meta.image.requiredContentDate string A
    Comma-separated list of image tags which are required to publish an image
  • weasis.acquire.meta.study.descriptionPictures of follow-up,Pictures of observation,Pictures preoperative,Pictures intraoperative,Pictures postoperative string A
    Comma-separated list of study description elements (to obtain a selection in a combo box). Empty value will be an editable text field
  • weasis.acquire.meta.series.descriptionNull string A
    Comma-separated list of series description elements (to obtain a selection in a combo box). Empty value will be an editable text field
Ui Category
  • weasis-base-viewer2d.all.rotationtoolbar.enablefalse boolean A
    Show the rotation toolbar with base 2D viewer
  • weasis-base-viewer2d.all.importtoolbar.enablefalse boolean A
    Show the import toolbar with base 2D viewer
  • weasis-base-viewer2d.all.minitool.enablefalse string A
    Show the mini tool with base 2D viewer
  • weasis-base-viewer2d.all.imagetool.enablefalse boolean A
    Show Image Tools with base 2D viewer
  • weasis-base-viewer2d.all.measuretool.enablefalse boolean A
    Application
  • weasis.toolbar.layout.buttonfalse boolean A
    Show the layout toolbar
  • weasis.toolbar.synch.buttonfalse boolean A
    Show the synch toolbar

Customize resources

The default resources are located:

  • With ViewerHub you can upload a new package “resources.zip” for a specific release.
  • For the installed distribution in installedPath/app/resources

How to add DICOM nodes or DICOM printers at the server-side

  • From the graphical user interface, configure the DICOM printers from File > Print > DICOM Print or DICOM nodes from File > Preferences > Dicom node list
  • Go to the folder ${user.home}/.weasis/data/weasis-dicom-explorer
  • Copy the desired configuration files: dicomNodes.xml, dicomPrinterNodes.xml, dicomWebNodes.xml and dicomCallingNodes.xml
  • Paste at the root path of resources. For web distribution, unzip, place files and zip again.
  • The new configurations should appear for all the users as non-editable configurations in Weasis

Build Plugins

How to build and install a plugin

This page provides a guide on creating new Weasis plugins and explains how to integrate them into the distributions. For details on configuring the development environment, refer to this guidelines page.

Types of Plugins in Weasis

The following list describes the types of plugins, the interfaces they implement and the factories they use:

  1. Media Viewer or Editor
    • Represents the main central panel and implements either ViewerPlugin or ImageViewerPlugin.
    • The factory for this type implements SeriesViewerFactory.
    • For DICOM special modalities, you can use DicomSpecialElementFactory to associate a viewer with a specific DICOM object.
  2. Toolbar Associated with a Viewer
    • Implements the Toolbar or DynamicToolbar interface.
    • The factory for this type implements InsertableFactory
  3. Tool Associated with a Viewer
    • Represents the right panel and implements DockableTool.
    • The factory for this type implements InsertableFactory.
  4. Data Explorer
    • The explorer model implements DataExplorerModel.
    • The explorer view implements DataExplorerView.
    • The factory for this type implements DataExplorerViewFactory.
  5. Import Data into an Explorer
    • Adds a new page into the DICOM Import UI with ImportDicom.
    • The factory for this type implements DicomImportFactory.
  6. Export Data from an Explorer
    • Adds a new page into the DICOM Export UI with ExportDicom
    • The factory for this type implements DicomExportFactory.
  7. Media Codec
    • Implements the Codec interface to decode and encode media files related to a file extension or a mime type.
  8. Preferences
    • Implements PreferencesPageFactory to add a new page in the Preferences dialog.
  9. UI Aggregator
    • Represents the bundle for the application’s main user interface which aggregates various interface components.
    • The Maven artifact for this bundle must be defined in the base.json file (e.g., code:weasis.main.ui value:weasis-base-ui).
Note

The factories are used to create the instances of the plugins and are registered as OSGi services. For performance reasons, the factories are created at startup and the plugins are created only if they are needed.

Tip

For more information about the plugin hierarchy and their relationships, refer to the Weasis Architecture.

Building Plugins Using Maven Archetype

  1. To add the Weasis archetypes to your local Maven repository, go to the Weasis/archetype directory and execute the following command:
       mvn install
  2. Navigate to the target folder, which should be the parent folder of the new plugin project, and execute the following command to create your plugin:
       mvn archetype:generate -DarchetypeCatalog=local
  3. When prompted, enter the number of one of the archetypes. Currently, the following archetypes are available:
    • weasis-plugin-base-viewer-archetype: Example of a toolbar and tool for a non-DICOM viewer.
    • weasis-plugin-dicom-viewer-archetype: Example of a toolbar and tool for a DICOM viewer.
  4. Modify the generated project as needed.
    • In the pom.xml file, ensure the <relativePath> tag corresponds to the location of your Weasis source folder. By default, the value is <relativePath>../Weasis/weasis-parent/pom.xml</relativePath> (In this scenario, the plugin resides in the same parent folder as the Weasis source code).
    • When the relative path is set correctly, <version>${revision}${changelist}</version> in the pom.xml file will automatically be updated to the latest version of the Weasis source.
    • For easier version management in the pom.xml, you can remove <version> at the project level to inherit it from the parent.
  5. Build the plugin by executing the following command in the plugin project directory:
       mvn clean install

Integrating Plugins into Weasis Distributions

Once the plugin is built, it can be integrated into the Weasis distributions either locally or remotely.

Warning

The plugin depends on the Weasis framework, and its version must align with the version of the Weasis distribution being integrated.
If the versions do not match, the plugin may fail to start and produce an error such as org.osgi.framework.BundleException: Unable to resolve myplugin ….

Testing the Plugin

To test the plugin with an installed version of Weasis without making any changes to the installed directory, create a JSON file that extends the configuration specified in base.json.

  1. Create a new json file (e.g., myplugin.json) with the following content:
    {
      "weasisPreferences": [
        {
          "code": "org.osgi.framework.startlevel.beginning",
          "value": "550"
        },
        {
          "code": "felix.auto.start.500",
          "value": "file:///git/myplugin/target/myplugin-4.5.2.jar",
          "description": "Myplugin - a viewer for ..."
        }
      ]
    }
  2. Update the content of myplugin.json as required:
    • Ensure the plugin start level (above 500) is lower than the OSGi beginning level (above 550). Avoid using values below this range to prevent conflicts with other plugins.
    • For easier testing, use an absolute JAR path that matches your local plugin directory. Use a URI format for the path like:
        file:///D:/git/myplugin/target/myplugin-4.5.2.jar
      
        file:///git/myplugin/target/myplugin-4.5.2.jar
      
        file:///git/myplugin/target/myplugin-4.5.2.jar
      
  3. Launch Weasis with your configuration:
    • Use the following parameter to extend the configuration (adapt the path to your local file):
        $weasis:config pro="felix.extended.config.properties file:///D:/git/myplugin/myplugin.json"
      
        $weasis:config pro="felix.extended.config.properties file:///git/myplugin/myplugin.json"
      
        $weasis:config pro="felix.extended.config.properties file:///git/myplugin/myplugin.json"
      
    • Build a valid URI with the above parameter (see How to build an URI) and launch Weasis from the command on a terminal:Construct a valid URI using the parameter mentioned above (refer to How to build a URI)) and launch Weasis from the terminal using a command:
        start weasis://?%24weasis%3Aconfig%20pro%3D%22felix.extended.config.properties%20file%3A%2F%2F%2FD%3A%2Fgit%2Fmyplugin%2Fmyplugin.json%22
      
        xdg-open weasis://?%24weasis%3Aconfig%20pro%3D%22felix.extended.config.properties%20file%3A%2F%2F%2Fgit%2Fmyplugin%2Fmyplugin.json%22
      
        open weasis://?%24weasis%3Aconfig%20pro%3D%22felix.extended.config.properties%20file%3A%2F%2F%2Fgit%2Fmyplugin%2Fmyplugin.json%22
      

Using ViewerHub

This feature will be available soon. It will allow you to manage the plugins and their configurations directly from the ViewerHub web portal.

Build OSGi Services

All the plugin type described in the list above are OSGi services that are registered and aggregated in the GUI. Building the plugin from the Maven archetype will configure the OSGi service automatically. For adding new OSGi services, here is the procedure:

  1. Create a class that implements the Insertable interface and represents a visual component. For example,

    public class MyPrefView extends AbstractItemDialogPage {
    
       public MyPrefView() {
           super("My Preferences", 100); // Provide a name and the page position
           initGUI();
       }
    
       private void initGUI() {
           // Add a basic JLabel to the preference panel for demonstration
           add(new JLabel("Welcome to My Preferences!"));
       }
    
       @Override
       public void closeAdditionalWindow() {
           // Handle any cleanup or saving preferences when closing
       }
    
       @Override
       public void resetToDefaultValues() {
           // Reset preferences to default values
       }
    }

  2. Create a class that implements one of the plugin factories and include the annotations @Component and the @Service parameter. For example,

    @org.osgi.service.component.annotations.Component(service = PreferencesPageFactory.class)
    public class MyViewerPrefFactory implements PreferencesPageFactory {
    
        @Override
        public AbstractItemDialogPage createInstance(Hashtable<String, Object> properties) {
        return new MyPrefView();
        }
        
        @Override
        public boolean isComponentCreatedByThisFactory(Insertable component) {
        return component instanceof MyPrefView;
        }
    }
    Tip

    For more details on annotations, refer to the Apache Felix SCR Annotations documentation.

Weasis Commands

The commands listed below can be applied at start-up or in a telnet session. All the commands starting with “dcmview2d:” allow you to drive Weasis and are not adapted to be used at start-up.

Info

This page matches to Weasis 3.5.1 or higher. The syntax of usage comes from POSIX.

To obtain the list of commands, after starting Weasis, open a local telnet session of the OSGI Console and type lb for getting the list of bundles and their state or type help for getting all the available commands:

telnet localhost 17179

Trying 127.0.0.1...

Connected to localhost.localdomain.

Escape character is '^]'.

____________________________

Welcome to Apache Felix Gogo

g!

List of Weasis commands

dcmview2d:layout

g! dcmview2d:layout
Select a split-screen layout
Usage: dcmview2d:layout ( -n NUMBER | -i ID )
  -n --number=NUMBER  select the best matching number of views
  -i --id=ID          select the layout from its identifier
  -? --help           show help

dcmview2d:mouseLeftAction

g! dcmview2d:mouseLeftAction
Change the mouse left action
Usage: dcmview2d:mouseLeftAction COMMAND
COMMAND is (sequence|winLevel|zoom|pan|rotation|crosshair|measure|draw|contextMenu|none)
  -? --help       show help

dcmview2d:move

g! dcmview2d:move
Pan the selected image
Usage: dcmview2d:move -- X Y
X and Y are Integer. It is mandatory to have '--' (the end of options) for negative values
  -? --help       show help

dcmview2d:reset

g! dcmview2d:reset

Reset image display
Usage: dcmview2d:reset (-a | COMMAND...)
COMMAND is (winLevel|zoom|pan|rotation)
  -a --all        reset to original display
  -? --help       show help

dcmview2d:scroll

g! dcmview2d:scroll
Scroll into the images of the selected series
Usage: dcmview2d:scroll ( -s NUMBER | -i NUMBER | -d NUMBER)
  -s --set=NUMBER       set a new value from 1 to series size
  -i --increase=NUMBER  increase of some amount
  -d --decrease=NUMBER  decrease of some amount
  -? --help             show help

dcmview2d:synch

g! dcmview2d:synch
Set a synchronization mode
Usage: dcmview2d:synch VALUE
VALUE is (None|Stack|Tile)
  -? --help       show help

dcmview2d:wl

g! dcmview2d:wl
Change the window/level values of the selected image (increase or decrease into a normalized range of 4096)
Usage: dcmview2d:wl -- WIN LEVEL
WIN and LEVEL are Integer. It is mandatory to have '--' (the end of options) for negative values
  -? --help       show help

dcmview2d:zoom

g! dcmview2d:zoom
Change the zoom value of the selected image
Usage: dcmview2d:zoom (set VALUE | increase NUMBER | decrease NUMBER)
  -s --set=VALUE        [decimal value]  set a new value from 0.0 to 12.0 (zoom magnitude, 0.0 => default, -200.0 => best fit, -100.0 => real size)
  -i --increase=NUMBER  increase of some amount
  -d --decrease=NUMBER  decrease of some amount
  -? --help             show help

dicom:get

g! dicom:get
Load DICOM files remotely or locally
Usage: dicom:get ([-l PATH]... [-w URI]... [-r URI]... [-p] [-i DATA]... [-z URI]...)
PATH is either a directory(recursive) or a file
  -l --local=PATH   open DICOMs from local disk
  -r --remote=URI   open DICOMs from a URI
  -w --wado=URI     open DICOMs from an XML manifest
  -z --zip=URI      open DICOM ZIP from a URI
  -p --portable     open DICOMs from configured directories at the same level of the executable
  -i --iwado=DATA   open DICOMs from an XML manifest (GZIP-Base64)
  -? --help         show help

dicom:close

g! dicom:close
Close DICOM files
Usage: dicom:close  (-a | ([-y UID]... [-s UID]...))
  -a --all           close all the patients
  -p --patient=ID    close a patient from its patient ID (since v4.4.1)
  -y --study=UID     close a study, UID is Study Instance UID
  -s --series=UID    close a series, UID is Series Instance UID
  -? --help          show help

dicom:rs

g! dicom:rs
Load DICOM files from DICOMWeb API (QIDO/WADO-RS)
Usage: dicom:rs -u URL -r QUERYPARAMS... [-H HEADER]... [--query-header HEADER]... [--retrieve-header HEADER]... [--query-ext EXT] [--retrieve-ext EXT] [--accept-ext EXT]
  -u --url=URL               URL of the DICOMWeb service
  -r --request=QUERYPARAMS   Query params of the URL, see weasis-pacs-connector
  -H --header=HEADER         Pass custom header(s) to all the requests
  --query-header=HEADER      Pass custom header(s) to the query requests (QIDO)
  --retrieve-header=HEADER   Pass custom header(s) to the retrieve requests (WADO)
  --query-ext=EXT            Additionnal parameters for Query URL (QIDO)
  --retrieve-ext=EXT         Additionnal parameters for Retrieve URL (WADO)
  --accept-ext=EXT           Additionnal parameters for DICOM multipart/related Accept header of the retrieve URL (WADO). Default value is: transfer-syntax=*
  --show-whole-study         when downloading a series, show all the other series (ready for download) from the same study
  -? --help                  show help

image:get

g! image:get
Load images remotely or locally
Usage: image:get ([-f file]... [-u url]...)
  -f --file=FILE     open an image from a file
  -u --url=URL       open an image from a URL
  -? --help          show help

image close

g! image:close
Close images
Usage: dicom:close (-a | ([-g UID]... [-s UID]...))
  -a --all         close all series
  -g --group=UID   close a group from its UID
  -s --series=UID   close an series/image from its UID
  -? --help        show help

weasis:info

g! weasis:info
Show information about Weasis
Usage: weasis:info (-v | -a)
  -v --version    show version
  -a --all        show weasis specifications
  -? --help       show help

weasis:ui

g! weasis:ui
Manage user interface
Usage: weasis:ui (-q | -v)
  -q --quit     shutdown Weasis
  -v --visible  set window on top
  -? --help     show help

acquire:patient

g! acquire:patient
Load Patient Context from the first argument
Usage: acquire:patient (-x | -i | -s | -u) arg
arg is an XML text in UTF8 or an url with the option '--url'
  -x --xml         open Patient Context from an XML data containing all DICOM Tags
  -i --inbound     open Patient Context from an XML data containing all DICOM Tags, decoding syntax is [Base64/GZip]
  -s --iurlsafe    open Patient Context from an XML data containing all DICOM Tags, decoding syntax is [Base64_URL_SAFE/GZip]
  -u --url         open Patient Context from a URL (XML file containing all DICOM TAGs)
  -? --help        show help

weasis:config (only at launch)

This command can be used only at launch, see Modify the launch parameters

Note

For identifying the commands at start-up, the symbol “$” must be added before the command (not required in the OSGI console). See examples below.

Warning

Special characters: A command containing special characters like ‘&’ or space must be within quotes or double quotes. Example:

dicom:get -w "http://localhost/weasis-pacs-connector/manifest?patientID=97026728&modalitiesInStudy=MR"

Depending on the command line system, quotes or double quote needs to be escaped with a backslash. With IDE, a simple quote must be escaped in Eclipse but not in Intellij.

System Resources

Weasis routinely handles studies far larger than its memory: a CT or MR series is hundreds of slices, a digital mammography image is tens of megabytes, a 3D volume is hundreds of megabytes. The System resources panel shows, in real time, how much of the machine Weasis is using, whether the hardware matches your daily practice, and — when it does not — what to upgrade.

Open it from the menu Help > System resources.

The panel does not change anything by itself. It is a diagnostic view: it observes, measures across all your sessions, and gives a verdict you can act on.

How memory works in Weasis

To read the panel, it helps to know that Weasis uses memory in two separate pools:

  • JVM heap — holds the user interface, the DICOM metadata and temporary copies of pixels. Its maximum size is fixed when Weasis starts.
  • Native image memory — holds the decoded pixel data of images. This is the pool that grows when you open large studies. It is not part of the heap; it is sized from the physical memory of the machine.

A third pool, GPU memory (VRAM), is used only by the 3D viewer.

This separation is why a single “memory” number is not enough — and why the panel shows both pools side by side.

Reading the panel

The dialog refreshes every two seconds while it is open. It has five sections.

Hardware

A static description of the machine:

Row Meaning
Operating system OS name, version and architecture
CPU cores Number of processor cores available to Weasis
Physical memory Total RAM of the machine
JVM heap maximum Upper bound of the heap pool
Native memory budget Upper bound of the decoded-image pool
Graphics processor The GPU detected by the 3D viewer, and its OpenGL version
Note

The graphics processor row stays not assessed until a 3D view has been opened at least once — Weasis only learns the GPU when the 3D engine starts. If it reports software rendering, the 3D viewer is running without GPU acceleration and will be slow; install or enable a proper graphics driver.

Live pressure

Three bars showing current use, each with its peak value for the session:

  • JVM heap — interface and metadata memory.
  • Native image memory — decoded images currently cached.
  • CPU load — processor use by Weasis.

A bar turning red above 90 % means that pool is close to its limit. Native image memory reaching its limit is normal and harmless: Weasis simply drops the least-recently-seen images from the cache and reloads them transparently when you scroll back. A heap bar staying near 100 %, on the other hand, is a real warning sign.

Assessment

The verdict — the heart of the panel. Each line is rated with one of four levels:

Level Color Meaning
Collecting… neutral Not enough activity yet to judge — keep using Weasis
Sub-optimal red The resource limited Weasis; the machine should have more
Optimal green The resource matched the workload well
Abundant blue The resource was barely used; the machine has spare capacity
  • Overall — the worst of the rows below.
  • Memory — based on real failure signals, not on raw usage: out-of-memory errors, a 3D volume that had to spill to disk, or sustained garbage-collection overhead. A rare event is tolerated; a recurring one turns the verdict red.
  • CPU — sub-optimal on 2 cores or fewer; abundant on 8+ cores left mostly idle.
  • Recommended upgrade — see below.
Info

The verdict is cumulative across all your sessions, not just the current one. It stays Collecting… until Weasis has run long enough and done enough work to judge fairly, so a fresh installation will not show a verdict immediately.

Workload

What the heaviest study you opened actually demanded: the largest image (in megabytes) and the largest volume (in number of slices). These explain why a verdict came out the way it did.

Events (all sessions)

The counters behind the memory verdict, accumulated over every session:

Counter What it means
Session uptime This session, then total time and number of sessions
Cache evictions Images dropped from the cache and reloaded — informational, not a problem
Out-of-memory errors The heap ran out — turns red when it is driving a sub-optimal verdict
Volume disk spills A 3D volume did not fit in memory and was written to disk — slow
Garbage-collection overhead Share of time spent reclaiming heap memory; above ~10 % the heap is too small

A non-zero count is not necessarily a problem — the panel colors a counter red only when it is the signal currently causing a sub-optimal memory verdict.

Acting on the recommendation

When Memory or CPU is sub-optimal, the Recommended upgrade line gives a concrete target. Weasis distinguishes a configuration problem from a hardware one:

  • A larger heap (-Xmx) — shown when the machine has free RAM but Weasis was not allowed to use enough of it. This is fixed by changing a setting, not by buying hardware.
  • More RAM — shown when the heap is already a fair share of physical memory: the machine itself is the limit.
  • More CPU cores — shown when too few cores slowed image decoding and reconstruction.

Increasing the memory limits

The heap maximum and the native-memory budget are controlled by start-up options. The simplest way to raise the heap is the -Xmx option; the native-image pool is controlled by a Weasis property:

Option / property Effect Default
-Xmx<size> Absolute maximum of the JVM heap, e.g. -Xmx4g 25 % of RAM
weasis.native.memory.percent Native image memory as a percentage of RAM (1–90) 50

For an installed Weasis, edit the java-options of the application configuration (for example app/Weasis.cfg next to the installation). For a study workstation that opens large studies, raising the native-memory percentage keeps more images cached and avoids reloads:

weasis.native.memory.percent=70
Warning

The heap and the native pool share the same physical RAM, so keep their combined share comfortably below 100 %. Raising the heap reduces the room left for the image cache. On a machine with little RAM, raising one means lowering the other.

The full set of memory parameters is described in the Memory Management developer guide.

Exporting the report

The Copy report button places a plain-text summary of the whole panel on the clipboard — hardware, verdict, recommendation and event counters. Paste it into a bug report or a message to your IT department when asking for a hardware upgrade.

Tip

The verdict and the limiting events are also written to the Weasis log files in <user home>/.weasis/log/, and the cumulative statistics are kept in <user home>/.weasis/resource-stats.properties. You do not need the panel open for Weasis to keep measuring.

Dicom Conformance

Compatibility of DICOM Transfer Syntax

This table lists the DICOM Transfer Syntaxes supported by Weasis.

Transfer Syntax UID Media Type Description Read Write
1.2.840.10008.1.2 Implicit VR - Little Endian yes No
1.2.840.10008.1.2.1 Explicit VR - Little Endian yes yes
1.2.840.10008.1.2.1.99 Deflated Explicit VR Little Endian yes No
1.2.840.10008.1.2.2 Explicit VR Big Endian (Retired) yes No
1.2.840.10008.1.2.5 RLE (Run Length Encoding) Lossless yes No
1.2.840.10008.1.2.4.50 image/jpeg JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression yes yes
1.2.840.10008.1.2.4.51 image/jpeg JPEG Extended (Process 2 & 4): Default Transfer Syntax for Lossy JPEG 12 Bit Image Compression (Process 4 only) yes yes
1.2.840.10008.1.2.4.53 image/jpeg JPEG Spectral Selection, Non-Hierarchical (Process 6 & 8) (Retired) yes No
1.2.840.10008.1.2.4.55 image/jpeg JPEG Full Progression, Non-Hierarchical (Process 10 & 12) (Retired) yes No
1.2.840.10008.1.2.4.57 image/jpeg JPEG Lossless, Non-Hierarchical (Process 14) yes yes
1.2.840.10008.1.2.4.70 image/jpeg JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1]) yes yes
1.2.840.10008.1.2.4.80 image/jls JPEG-LS Lossless Image Compression yes yes
1.2.840.10008.1.2.4.81 image/jls JPEG-LS Lossy (Near-Lossless) Image Compression yes yes
1.2.840.10008.1.2.4.90 image/jp2 JPEG 2000 Image Compression (Lossless Only) yes yes
1.2.840.10008.1.2.4.91 image/jp2 JPEG 2000 Image Compression yes yes
1.2.840.10008.1.2.4.92 image/jpx JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only) yes No
1.2.840.10008.1.2.4.93 image/jpx JPEG 2000 Part 2 Multi-component Image Compression yes No
1.2.840.10008.1.2.4.110 image/jxl JPEG XL Lossless yes yes
1.2.840.10008.1.2.4.111 image/jxl JPEG XL JPEG Recompression yes yes
1.2.840.10008.1.2.4.112 image/jxl JPEG XL yes yes
1.2.840.10008.1.2.4.201 image/jphc High-Throughput JPEG 2000 Image Compression (Lossless Only) yes No
1.2.840.10008.1.2.4.202 image/jphc High-Throughput JPEG 2000 with RPCL Options Image Compression (Lossless Only) yes No
1.2.840.10008.1.2.4.203 image/jphc High-Throughput JPEG 2000 Image Compression yes No

Transfer Syntax UID Media Type Description Read Write
1.2.840.10008.1.2.6.1 mime type RFC 2557 MIME Encapsulation yes No
1.2.840.10008.1.2.4.100 video/mpeg MPEG-2 Main Profile Main Level yes No
1.2.840.10008.1.2.4.101 video/mpeg MPEG-2 Main Profile High Level yes No
1.2.840.10008.1.2.4.102 video/mp4 MPEG-4 AVC/H.264 High Profile / Level 4.1 yes No
1.2.840.10008.1.2.4.103 video/mp4 MPEG-4 AVC/H.264 BD-compatible High Profile / Level 4.1 yes No
1.2.840.10008.1.2.4.104 video/mp4 MPEG-4 AVC/H.264 High Profile / Level 4.2 For 2D Video yes No
1.2.840.10008.1.2.4.105 video/mp4 MPEG-4 AVC/H.264 High Profile / Level 4.2 For 3D Video yes No
1.2.840.10008.1.2.4.106 video/mp4 MPEG-4 AVC/H.264 Stereo High Profile / Level 4.2 yes No
1.2.840.10008.1.2.4.107 video/H265 HEVC/H.265 Main Profile / Level 5.1 yes No
1.2.840.10008.1.2.4.108 video/H265 HEVC/H.265 Main 10 Profile / Level 5.1 yes No
Note

The latter groups of TSUIDs are opened by the default system application associated with the MIME type.

Supported “Photometric Interpretation” pixel format

This table lists the Photometric Interpretation supported by Weasis.

Photometric Interpretation Description Supported
MONOCHROME1 grey level image description (high values=dark, low values=bright) yes
MONOCHROME2 grey level image description (high values=bright, low values=dark) yes
PALETTE COLOR pseudo color image description yes
RGB true color image description yes
YBR_FULL true color image description yes
YBR_FULL_422 true color image description yes
YBR_PARTIAL_422 true color image description (Retired) yes
YBR_PARTIAL_420 true color image description yes
YBR_ICT true color image description (JPEG-2000) yes
YBR_RCT true color image description (JPEG-2000) yes

ViewerHub

ViewerHub is the successor to weasis-pacs-connector. It allows to launch different viewers (such as Weasis, Ohif, 3D Slicer, MicroDicom) depending on search criteria.

This is a server component with an administration interface for managing viewers selection, preferences, plugins, and versions of Weasis with DICOM archives.

Essentially, it simplifies the management of viewers in IT environments and facilitates connections to DICOM archives.

The main features of ViewerHub are:

  • Viewers launch selection depending on modalities and archives
  • Management of Weasis user preferences
  • Control of launch contexts and profiles by user, group, or host
  • Handling of live minor version updates of Weasis at the client side
  • Management of Weasis translation packages
  • Integration with connectors for DICOM archives
  • Configuration of Keycloak clients and token transmission for DICOMWeb or WADO URI calls

Here is a list of pages related to ViewerHub documentation:

  • Imaging Hub

    Install all the required components for testing or debugging

  • Guidelines for development

    How to develop and debug ViewerHub

  • Connectors

    Configuration of the connectors used to connect to the different PACS

  • Launch APIs

    The launch APIs allow you to launch Weasis from your own web application with specific parameters.

  • Weasis Manifest

    Creation of manifest for Weasis

  • Cryptography

    Encrypt the URL search parameters when launching the Weasis viewer

  • User Guide

    Viewer Selection Weasis

Subsections of ViewerHub

Imaging Hub

This page describes how to install the Imaging Hub, a Docker Compose stack for managing dcm4chee PACS, ViewerHub, and related services.

Warning

This stack is designed for development and testing purposes only. It enables debugging ViewerHub and testing integration with dcm4chee PACS. It is not suitable for production use.

Included Services

This stack comprises the following components:

  • dcm4chee: PACS server for storing and retrieving medical images.
  • ViewerHub: Manages the launch of different viewers.
  • MinIO: Object storage server compatible with Amazon S3 APIs.
  • Redis: Cache service storing manifest data for Weasis resources.
  • Postgres: Database backend for ViewerHub and dcm4chee.
  • Keycloak: Manages user authentication and access.
  • Config-server: Manages configuration of all services.
  • Eureka: Provides service discovery for stack components.

Prerequisites

  • Docker
  • Docker Compose CLI

Configurations

This stack supports multiple configurations:

  • Debug (local): Includes all the required stack except ViewerHub and uses local volumes.
  • Unsecure (unsecure): Enables HTTP and uses development-grade settings. dcm4chee and ViewerHub services have no authentication.
  • Secure (secure) [Not yet available]: Enables HTTPS and uses production-grade settings. dcm4chee and ViewerHub services have authentication.

Usage

Run the following commands based on the environment:

  • For debugging ViewerHub:
    ./scripts/start.sh local
    And then run ViewerHub from your IDE

Minio

Minio is an open-source object storage server compatible with Amazon S3 APIs. It is used to store resources required by the different versions of Weasis.

Access the Minio console at: http://localhost:9090

Use the following credentials:

  • User: viewer-hub
  • Password: viewer-hub

Keycloak

Keycloak is an open-source identity and access management server used to authenticate users.

Access the Keycloak console at: http://localhost:8085

Use the following credentials:

  • User: admin
  • Password: admin

Dcm4chee

Dcm4chee is a PACS server that enables storing and retrieving medical images.

Access the dcm4chee console at: http://localhost:8080/dcm4chee-arc/ui2/en/study/study

For secure mode, access the dcm4chee console at: https://localhost:8443/dcm4chee-arc/ui2/en/study/study Use the following credentials:

  • User: admin
  • Password: changeit

Viewer-Hub Gateway

ViewerHub gateway is used to handle different types of authentication in order for viewers to get authentified when requesting data from the pacs.

ViewerHub Gateway handles basic authentication and oAuth2 (client credential and authorization code flow).

In order to install the gateway, follow the instructions in the README.md file: https://github.com/nroduit/viewer-hub-gateway

ViewerHub

ViewerHub is a web application that manages the launch of different viewers.

Access the ViewerHub console at: http://localhost:8081

Use the following credentials:

  • User: viewer-hub-user
  • Password: password

Guidelines for development

This page provides guidelines for developing and debugging ViewerHub.

We recommend the use of IntelliJ IDEA because the following instructions are based on it.

Add a Launcher

  • Open Run > Edit Configurations…
  • Add in VM options the following properties:
  -Duser.timezone=UTC
  -DENVIRONMENT=local
  -DEUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE=http://localhost:8761/eureka
  -DREGION=local
  -DDATACENTER=local
  -Dserver.port=8081
  -Dmanagement.server.port=19001
  -DBACKEND_URI=http://localhost:8081
  -DDB_HOST=localhost
  -DDB_PORT=45101
  -DDB_NAME=viewer-hub
  -DDB_USER=viewer-hub
  -DDB_PASSWORD=viewer-hub
  -DCONFIGSERVER_URI=http://localhost:8888
  -DS3_ACCESS_KEY=access-key
  -DS3_SECRET_KEY=secret-key
  -DS3_ENDPOINT=http://localhost:9080
  -DS3_BUCKET_NAME=viewer-hub-bucket
  -DBACKEND_URI=http://localhost:8081
  • Then clean/install + Run…

ViewerHub

In order to access to ViewerHub:

http://localhost:8081

with

User: viewer-hub-user
Password: password

Launch Weasis

Launch the below URL to launch Weasis and load the dicom image stored in the Dcm4chee or Orthanc pacs:

  • Spring profile “connectors-dicom-no-gtw”

Dcm4chee:

http://localhost:8081/display?viewer=WEASIS&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=dcm4chee-local

Orthanc:

http://localhost:8081/display?viewer=WEASIS&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=orthanc-local
  • Spring profile “connectors-dicom-gtw”

Dcm4chee:

http://localhost:8081/display/auth?viewer=WEASIS&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=dcm4chee-local

Orthanc:

http://localhost:8081/display/auth?viewer=WEASIS&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=orthanc-local

Launch Ohif

Launch the below URL to launch Ohif and load the dicom image stored in the Dcm4chee or Orthanc pacs:

  • Spring profile “connectors-dicom-no-gtw”

Dcm4chee

http://localhost:8081/display?viewer=OHIF&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=dcm4chee-local

Orthanc

http://localhost:8081/display?viewer=OHIF&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=orthanc-local
  • Spring profile “connectors-dicom-gtw” or “connectors-dicomweb-gtw”

Dcm4chee

http://localhost:8081/display/auth?viewer=OHIF&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=dcm4chee-local

Orthanc

http://localhost:8081/display/auth?viewer=OHIF&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=orthanc-local

Launch 3D Slicer

You need to install 3D Slicer in your machine to use it.

Launch the below URL to launch 3D Slicer and load the dicom image stored in the Dcm4chee or Orthanc pacs:

  • Spring profile “connectors-dicom-gtw” or “connectors-dicomweb-gtw”

Dcm4chee

http://localhost:8081/display/auth?viewer=SLICER&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=dcm4chee-local

Orthanc

http://localhost:8081/display/auth?viewer=SLICER&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=orthanc-local

Launch Micro Dicom

You need to install Micro Dicom in your machine to use it. You also need to add the MICRODICOM AET to the Dcm4chee pacs and to configure the Dicom server corresponding to the Dcm4chee pacs in MicroDicom (localhost:11112, aet DCM4CHEE)

Launch the below URL to launch Micro Dicom and load the dicom image stored in the Dcm4chee or Orthanc pacs:

  • Spring profile “connectors-dicom-no-gtw”

Dcm4chee

http://localhost:8081/display?viewer=MICRODICOM&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=dcm4chee-local

Orthanc

http://localhost:8081/display?viewer=MICRODICOM&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=orthanc-local

Information

These URLs work with the Imaging Hub stack. If you are using a different setup, you may need to adjust the URL accordingly.

For more information, refer to the Launch APIs documentation.

Connectors

This page outlines the configuration of connectors used by Viewer-Hub to connect to DICOM archives.

Model

In order to retrieve the metadata used to identify the studies to display, connectors are configured to enable connections to various PACS or VNA systems.
Three types of connectors are defined in the configuration server: DB, DICOM, and DICOM_WEB.

These connectors are defined according to this model: connector_model.yml

Global connector configuration

The global connector configuration is defined as follows:

connector:
    # If value is present: use the connectors specified, if not present or wrong connector ids: use all the valid connectors defined in the config
    default: # connectorId1, connectorId2

    # Limit the dicom-web connector when retrieving metadata at study or serie level
    dicom-web-level-limit: # STUDY, SERIE

    config:
        connector-id:
            type:  # Type of connector used => DB, DICOM, DICOM_WEB
            
            # ------- Search Criteria ----
            search-criteria:
                deactivated: # If a search criteria needs to be deactivated=> SOP_INSTANCE_UID, SERIE_INSTANCE_UID, STUDY_INSTANCE_UID, STUDY_ACCESSION_NUMBER, PATIENT_ID

            # ------- Specific parameters for Weasis manifest----
            weasis:
                manifest:
                    transfer-syntax-uid:
                    compressionRate:
                    requireOnlySOPInstanceUID:  # true/false
                    additionnalParameters:
                    overrideDicomTags:
                    httpTags: 

Database connector

This connector is used to connect to the PACS database in order to find the metadata of studies, series, instances to retrieve.

db-connector:
    user: # Database user
    password: # Encoded password
    uri: # Database uri
    driver: # Database driver
    query:
        select: # SQL query to retrieve patientName, patientId, patientBirthDate, patientSex, studyInstanceUid, studyDate, accessionNumber, studyId, referringPhysicianName, studyDescription, seriesInstanceUid, modality, seriesDescription, seriesNumber, sopInstanceUid, instanceNumber
        accession-number-column: # Accession number column used in the SQL query above
        patient-id-column: # Patient id column used in the SQL query above
        study-instance-uid-column: # Study instance uid column used in the SQL query above
        serie-instance-uid-column: # Serie instance uid column used in the SQL query above
        sop-instance-uid-column: # Sop instance uid column used in the SQL query above
    wado: 
        authentication:
            ... => described below in the section "Authentication configuration"

DICOM connector

This connector is used to connect to the PACS in Dicom in order to find the metadata of studies, series, instances to retrieve.

dicom-connector:
    dimse:
        calling-aet: # Calling aet
        aet: # Aet
        host: # Host
        port: # Port
        # Specific configuration for dicom connector when using CFind
        tls:
            mode:
            need-client-authentication:
        keyStore:
            url:
            type:
            password:
            keyStorePassword:
        truststore:
            url:
            type:
            password:
    wado: 
        authentication:
            ... => described below in the section "Authentication configuration"

DICOM Web connector

This connector is used to connect to the PACS in Dicom Web in order to find the metadata of studies, series, instances to retrieve.

dicom-web-connector:
    qido-rs:
        authentication:
            ... => described below in the section "Authentication configuration"
    wado-rs:
        authentication:
            ... => described below in the section "Authentication configuration"

Authentication configuration

Authentication configuration is used to build the web clients for Dicom Web connectors which will get the metadata from the archive or used to handle Weasis authentication when building the manifest in order for Weasis to retrieve the images

    authentication:
        type: # BASIC, OAUTH2
        oauth2:
            oidc-id: # Id of the oidc configuration (defined in application-oidc.yml)
            server:
                url:  # Url 
                port: # Port 
                context: # Context 
        basic:
            login: # Basic credential login 
            password: # Basic credential password
            server:
                url: # Url 
                port: # Port 
                context:  # Context 

Launch APIs

Launch viewers from your own web application

The display service is available at the URL: http://localhost:8081/display

To launch viewers from your own web application, you need to build the URL with the following parameters:

  • viewer: The specific viewer used to display studies. Available viewer parameter values: “WEASIS”, “OHIF”, “SLICER”, “MICRODICOM”. If this parameter is not present in the request, viewer-hub will determine which viewer to display depending on selection rules (based on modalities and archives) defined in the admin interface of viewer-hub.
  • archive: The archive name to be used to retrieve the study. The list of archives is defined in the config server.
  • patientID: The Patient ID of the study to be displayed. Note to handle a universal patientID, add IssuerOfPatientID like in hl7: patientID=1168514^^^issuerValue
    • Ex: http://localhost:8081/display?viewer=WEASIS&patientID=1168514&archive=dcm4chee-local
    • Ex with multiple patientID: http://localhost:8081/display?viewer=WEASIS&patientID=1168514&patientID=2023231696&archive=dcm4chee-local
    • Ex with URL encoding of separators ^^^ and IssuerOfPatientID value test: http://localhost:8081/display?viewer=WEASIS&patientID=1168514%5E%5E%5Etest&archive=dcm4chee-local
  • studyUID: The Study Instance UID of the study to be displayed.
    • Ex: http://localhost:8081/display?viewer=WEASIS&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021&archive=dcm4chee-local
  • accessionNumber: The Accession Number of the study to be displayed.
    • Ex: http://localhost:8081/display?viewer=WEASIS&accessionNumber=2066852&archive=dcm4chee-local
  • seriesUID: The Series Instance UID of the series to be displayed.
    • Ex: http://localhost:8081/display?viewer=WEASIS&seriesUID=1.3.12.2.1107.5.1.4.54023.30000004093016410718700008612&archive=dcm4chee-local
    • Ex with multiple studies and series: http://localhost:8081/display?viewer=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&archive=dcm4chee-local
  • objectUID: The SOP Instance UID of the object to be displayed.
    • Ex: http://localhost:8081/display?viewer=WEASIS&objectUID=1.3.12.2.1107.5.1.4.54023.30000004093016410718700010432&archive=dcm4chee-local

Filters

  • mostRecentResults: The number of the most recent studies to be displayed.
    • Ex: http://localhost:8081/display?viewer=WEASIS&patientID=11685148&mostRecentResults=2
  • modalitiesInStudy: Filter the studies containing the specified modalities.
    • Ex with only CT or XA: http://localhost:8081/display?viewer=WEASIS&patientID=1168514&modalitiesInStudy=CT,XA&archive=dcm4chee-local
  • containsInDescription: Filter the studies containing the specified string in the study description. Note that the search is case-insensitive and diacritic-insensitive.
    • Ex with only coronary or thorax: http://localhost:8081/display?viewer=WEASIS&patientID=1168514&containsInDescription=coronary,thorax&archive=dcm4chee-local
  • lowerDateTime: Filter the studies which are older than the specified date.
    • Ex CT older than 01.01.2010 12:00:00: http://localhost:8081/display?viewer=WEASIS&patientID=1168514&modalitiesInStudy=CT&lowerDateTime=2010-01-01T12:00:00Z&archive=dcm4chee-local
  • upperDateTime: Filter the studies which are more recent than the specified date.
    • Ex CT more recent than 01.01.2010 12:00:00: http://localhost:8081/display?viewer=WEASIS&patientID=1168514&modalitiesInStudy=CT&upperDateTime=2010-01-01T12:00:00Z&archive=dcm4chee-local
Note

You can restrict the types of UIDs (patientID, studyUID, accessionNumber, seriesUID, objectUID) that services can access. Refer to the “request.ids” section in the configuration file to specify which UIDs are permitted. By default, all UIDs are allowed.

Launch viewers with IHE IID profile

he Invoke Image Display Profile enables an Image Display Invoker, typically a non-image-aware system such as an EHR, PHR, or RIS, to request the display of patient studies, which are then presented by an image-aware system like an Image Display (PACS). The display service is available at the URL: http://localhost:8081/display/IHEInvokeImageDisplay

To launch Weasis with IHE IID profile, you need to build the URL with the following parameters:

  • viewer: The specific viewer used to display studies. Available viewer parameter values: “WEASIS”, “OHIF”, “SLICER”, “MICRODICOM”. If this parameter is not present in the request, viewer-hub will determine which viewer to display depending on selection rules (based on modalities and archives) defined in the admin interface of viewer-hub.
  • archive: The archive name to be used to retrieve the study. The list of archives is defined in the config server.
  • requestType: The type of the request (PATIENT, STUDY)
  • patientID: The Patient ID of the study to be displayed. Note to handle a universal patientID, add IssuerOfPatientID like in hl7: patientID=1168514^^^issuerValue
  • studyUID: The Study Instance UID of the study to be displayed.
    • Ex: http://localhost:8081/display/IHEInvokeImageDisplay?viewer=WEASIS&requestType=STUDY&studyUID=1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021
  • accessionNumber: The Accession Number of the study to be displayed.
    • Ex: http://localhost:8081/display/IHEInvokeImageDisplay?viewer=WEASIS&requestType=STUDY&accessionNumber=2066852

Filters

  • mostRecentResults: The number of the most recent studies to be displayed.
    • Ex: http://localhost:8081/display/IHEInvokeImageDisplay?viewer=WEASIS&requestType=PATIENT&patientID=11685148&mostRecentResults=2
  • modalitiesInStudy: Filter the studies containing the specified modalities.
    • Ex studies containing CT or XA: http://localhost:8081/display/IHEInvokeImageDisplay?viewer=WEASIS&requestType=PATIENT&patientID=11685148&modalitiesInStudy=CT,XA
  • containsInDescription: Filter the studies containing the specified string in the study description. Note that the search is case-insensitive and diacritic-insensitive.
    • Ex studies containing coronary or thorax: http://localhost:8081/display/IHEInvokeImageDisplay?viewer=WEASIS&requestType=PATIENT&patientID=11685148&containsInDescription=coronary,thorax
  • lowerDateTime: Filter the studies which are older than the specified date.
    • Ex studies older than 01.01.2010 12:00:00: http://localhost:8081/display/IHEInvokeImageDisplay?viewer=WEASIS&requestType=PATIENT&patientID=11685148&lowerDateTime=2010-01-01T12:00:00
  • upperDateTime: Filter the studies which are more recent than the specified date.
    • Ex studies more recent than 01.01.2010 12:00:00: http://localhost:8081/display/IHEInvokeImageDisplay?viewer=WEASIS&requestType=PATIENT&patientID=11685148&lowerDateTime=2010-01-01T12:00:00

Weasis Manifest

Manifest

The manifest contains the list of exams, series, and instances to retrieve when loading images by Weasis.

The manifest is represented in this format.

The creation of the manifest occurs when a client calls ViewerHub to launch Weasis through the launch URL using the Launch APIs.

Construction

According to the search criteria of the request, ViewerHub constructs the manifest through connectors.

There are 3 types of connectors:

  • DB (database)
  • DICOM (DICOM DIMSE)
  • DICOM_WEB (Weasis will use DICOMWeb connector in a future release).

DB queries or DICOM calls are made to retrieve the necessary information to populate the manifest according to the search criteria.

The connectors are defined according to a model in the config server.

Cache Redis

Once the manifest built, it will be stored in a Redis cache for a defined period (TTL currently 3 minutes).

This mechanism allows multiple instances of ViewerHub, as the retrieval of the manifest by Weasis is asynchronous.

It is also useful when the user requests the visualization of the same study within the TTL period: the manifest will be retrieved directly from the Redis cache.

The key for retrieving the manifest corresponds to the hash of the search criteria.

Cryptography

When launching the Weasis viewer with ViewerHub, a URL containing search criteria in “query parameters” is used.

It is possible to encrypt these search parameters when launching the Weasis viewer in order to not transmit certain sensitive data in plain text (e.g. patient identifier).

To enable this feature, the application-cryptography.yml file in the config-server must be modified by setting the “enabled” field below to true.

# - Cryptography
cryptography:
    enabled: false
    password: '{cipher}'
    salt: '{cipher}'

Defining a password and a salt is also necessary to encode/decode the search parameters.

The same encryption algorithm must be used on the client side (encryption) and on the ViewerHub side (decryption).

Subsections of User Guide

Viewer Selection

An admin interface has been created to select which viewer to display depending on the archive or modality.

Viewer selection rules

Rules can be defined in order to select the viewer to display.

These rules are applied in case no viewer has been specified in the parameters of the request.

viewer_selection.png viewer_selection.png

Rules

A rule is composed of a list of modalities, an archive and a viewer to launch.

Modalities

The modalities are combined using a logical OR. In other words, the rule is triggered when at least one modality is fulfilled.

Archive

A specific archive can be defined in the rule. Otherwise the option “ALL” will match all the archives requests.

Default

When starting viewer-hub, a default rule is created.

If there is no archive in the request and no rules defined or no rules matching the request, the default rule is applied and the viewer defined in this default rule is launched.

viewer_selection_default_rule.png viewer_selection_default_rule.png

Creation

In order to add a new rule, click on the “Add rule” button

viewer_selection_rule_creation.png viewer_selection_rule_creation.png

A popup will appear to configure the new rule.

Order

Each time a new rule is created, this rule comes to the top of the list. It means that this rule has the highest priority and so Viewer-Hub will check that the request match this rule first.

It is possible to modify the rules order by drag and dropping the icon of the left:

viewer_selection_reorder.png viewer_selection_reorder.png

Subsections of Weasis

Package Versioning

Manual Import

A version of Weasis can be manually imported into ViewerHub in the tab “Package”.

manual_import.png manual_import.png

The file to be imported must have a name in this format: “weasis-native xxx.zip”.

location_native_zip_file.png location_native_zip_file.png

This file corresponds to one of the Weasis release versions produced here: https://github.com/nroduit/Weasis/releases/

Import process

The import process of a Weasis version follows these different steps:

  • Retrieval of the “weasis-native xxx.zip” file, decompression and storage of the version’s resources/bundles in minio/S3.
  • Compression of the version’s “resources” folder into a zip file (necessary for Weasis) and storage on S3. resource_zip_compression.png resource_zip_compression.png
  • Update on S3 of the Weasis version compatibility file if the imported version is more recent. minio_mapping-minimal-version.png minio_mapping-minimal-version.png
  • Cache update regarding Weasis version compatibility mapping.
  • Loading of the version’s properties into the database.

Nexus Import

Currently not available, will be implemented later.

Remove Weasis package version

In order to delete a version of Weasis, it is necessary to select the version to delete, then right-click and confirm the deletion.

delete_version_right_click.png delete_version_right_click.png

Deleting a version whose “launch config” is “default” will result in the deletion of all versions linked to this “default”.

delete_default_version_propagation.png delete_default_version_propagation.png

Group-specific versions

It is possible to create a version of Weasis that will only be launched for certain groups of users or hosts.

In the “package” view, click on “Create new group config”.

create_new_package_version_location.png create_new_package_version_location.png

Then select the desired Weasis version (package version + launch config) and the new group to associate, then press “Create”.

create_new_package_version.png create_new_package_version.png

The new version will thus be displayed in the list of versions already present.

If the user or host belongs to the group, the previously created configuration will be used to launch Weasis.

Configuring version properties

ViewerHub allows to modify the properties of versions on-the-fly.

To modify a property, it is necessary to open a version and double-click on the property to modify.

For example to modify the name of the viewer for a package/launch config/group:

  • modification of the property “weasis.name”

rename_weasis_name_property.png rename_weasis_name_property.png

  • launching the viewer after modification: the label corresponds to the modified property

result_rename_property.png result_rename_property.png

Internationalization

Import

It is possible to import the translations that will be used by Weasis depending on the version of Weasis launched and the correspondence of this version with the compatibility file.

The name of the file to import must have the format “weasis-i18n-dist-X.X.X-SNAPSHOT.zip”.

The translation zip files to import are present at this address: https://github.com/nroduit/weasis-i18n

In ViewerHub, management of translation packages is located in the “Translation” tab.

manual_import.png manual_import.png

The import will decompress the zip file and load the translation resources into the MinIO S3.

s3_i18n_package.png s3_i18n_package.png

Removal

Deleting a translation version is done by selecting the version and right-clicking on this version and then confirming the deletion.

delete_i18n_package.png delete_i18n_package.png

Package Qualifier

Default values

When calling the ViewerHub, Weasis will send in an Http header the version installed on the client workstation (User-Agent header).

If the corresponding Weasis version has not been installed on ViewerHub and/or when no qualifier has been associated with the user/host/group making the request, a version and/or a qualifier are used by default to retrieve the resources to launch Weasis.

These default values are defined in the config-server in the application-package.yml file.

Qualifier mapping to user/host/group

In order to be able to test specific versions or to be able to launch a version of Weasis different from the default one for a group, it is possible to specify the version to launch for a user/host/group by mapping a particular qualifier.

group_config_creation.png group_config_creation.png

In order to use this feature:

  • the weasis-native.zip file containing the specific version must be loaded into ViewerHub and associated with a group.
  • the “qualifier” property must be defined in the launch_preferred table and must be of type “qualifier”.

launch_preferred_qualifier.png launch_preferred_qualifier.png

  • the mapping of the qualifier to use this version must be done at the launch table level for the target/launch_config/launch_preferred association.
    If this mapping is not done, the default qualifier defined in ViewerHub configuration will be taken into account (see previous paragraph).
    In order to do this mapping, you must define a configuration in the launch table associating the desired group/launch_config, the previous launch_preferred “qualifier” and for the “selection” column specify the qualifier to launch.

launch_qualifier.png launch_qualifier.png

Version Compatibility

Compatibility file

A compatibility file named “version-compatibility.json” is present in each Weasis release.

weasis-native.zip
    └── bin-dist/
        └── weasis/
            └── conf/
                └── version-compatibility.json

This file contains the mapping between the release version (“release-version”) and the minimum version of Weasis that should be installed on the client workstation (“minimal-version”).

This file also indicates which translation version should be used (“i18n-version”).

Release Version Minimal Version i18n Version
3.6.0 3.6.0 2.0.0-SNAPSHOT
3.6.1 3.6.0 2.0.0-SNAPSHOT
3.6.2 3.6.0 2.0.0-SNAPSHOT
3.7.0 3.7.0 3.0.0-SNAPSHOT
3.7.1 3.7.0 3.0.0-SNAPSHOT
3.8.0 3.7.0 3.0.0-SNAPSHOT
3.8.1 3.7.0 3.0.0-SNAPSHOT
3.8.2 3.7.0 3.0.0-SNAPSHOT
4.0.0 4.0.0 3.0.0-SNAPSHOT
4.0.1 4.0.0 3.0.0-SNAPSHOT
4.0.2 4.0.0 3.0.0-SNAPSHOT
4.0.3 4.0.0 3.0.0-SNAPSHOT
4.1.0 4.1.0 4.0.0-SNAPSHOT
4.1.1 4.1.0 4.0.0-SNAPSHOT
4.1.2 4.1.0 4.0.0-SNAPSHOT
4.2.0 4.2.0 4.0.0-SNAPSHOT
4.2.1 4.2.0 4.0.0-SNAPSHOT
4.3.0 4.2.0 4.0.0-SNAPSHOT
4.4.0 4.4.0 4.0.0-SNAPSHOT
4.5.0 4.5.0 4.0.0-SNAPSHOT
4.5.1 4.5.0 4.0.0-SNAPSHOT
4.6.0 4.6.0 4.0.0-SNAPSHOT
4.6.1 4.6.0 4.0.0-SNAPSHOT
4.6.2 4.6.0 4.0.0-SNAPSHOT
4.6.3 4.6.0 4.0.0-SNAPSHOT
4.6.4 4.6.0 4.0.0-SNAPSHOT
4.6.5 4.6.0 4.0.0-SNAPSHOT
4.6.6 4.6.0 4.0.0-SNAPSHOT
4.7.0 4.7.0 4.0.0-SNAPSHOT

Cache

When uploading a new version in ViewerHub or when starting the application (in case the compatibility file is already present in the S3), ViewerHub will construct the different possible combinations from the compatibility file between the versions installed in ViewerHub and the Weasis releases.

These combinations will be stored in a redis cache. This cache is currently refreshed every 24 hours.

So when a client launches Weasis via ViewerHub, it will directly know which version, i18n, resources to use when launching Weasis on the user computer.

Minio/S3

By importing a new version of Weasis into ViewerHub, if the compatibility file is more recent, ViewerHub will replace the compatibility file present on the S3.

This compatibility file will be renamed in the S3 bucket “mapping-minimal-version.json”

In order to compare if this mapping file is more recent, ViewerHub will compare the version number of the latest release.

Groups

To easily manage your computer network, ViewerHub allows the creation and association of user or host groups.

Creation

Users, hosts, user groups and host groups are represented by ‘targets’.

There are 4 types of target:

  • user
  • host
  • user group
  • host group

To create a target, go to the ‘association’ menu and define the type of target to be created.

target_creation_menu.png target_creation_menu.png

target_creation_popup.png target_creation_popup.png

Group association

To associate a target with a group or a host/user, look for the desired target in the target name section and add the group or host/user in the ‘Belongs to/Member of’ section.

group_association.png group_association.png

It is possible to associate several users with a user group and several hosts with a host group.

group_association_result.png group_association_result.png

It is not possible to mix up the association between a user and a host group or a host in a user group.

Tutorials

Weasis provides the tools to visualize and analyze images obtained from medical imaging equipment according to the DICOM standard. This free DICOM viewer is used by healthcare professionals, researchers and patients.

If you are new to Weasis, it is recommended to read this page to understand the main elements of the interface.

The tutorials are organized by topics and can be read independently.

Note

If you find any errors or inaccuracies, just click the Edit button displayed on top right of each page, and make a pull request to submit your changes.

Subsections of Tutorials

GUI Overview

Essential aspects of the interface

The image below shows the main elements of the Weasis graphical user interface. Click any of the green or blue areas to jump to the dedicated documentation for that element.

1 2

The default DICOM workspace has two main areas:

  1. The DICOM Explorer on the left (blue) — used to import and export data and to pick the series to display.
  2. The main area on the right (green) — hosts the open viewers and players as tabs. The available menus, toolbars, and tools change depending on the viewer currently in focus.
    • In the screenshot above, the active viewer is the DICOM 2D Viewer , which is the default for image series.
    • A tab with a multi-view layout can only display images from a single patient, but the same patient can appear in several tabs.
    • Each tab is a docked panel that can be moved by drag-and-drop, including side-by-side splits — see Docking for the full layout options.
    • For navigating through the Patient / Study / Series / Image hierarchy, see the DICOM Explorer page.

Minimal configuration before starting

A few settings make Weasis noticeably more comfortable the first time you launch it. Open the preferences dialog from the main menu: File > Preferences (Alt + P).

Language and regional settings

In the General tab, pick your preferred language and regional format (dates, numbers). Only languages with at least 30 % translation coverage appear in the list. Dates, numbers, and other locale-sensitive values follow the selected regional format throughout the interface.

➜ See Language and regional settings for the detailed instructions.

Theme and scaling factor

In the Appearance tab:

  • Choose a theme that suits your environment and reduces eye strain. The recommended theme is Core Dark — Flat Weasis.
  • Set a scaling factor that matches your system display scaling. This is especially recommended for HiDPI screens — Weasis will scale fonts, icons, and every UI component consistently.

➜ See Styles and themes for the detailed instructions.

Tip

Wherever you need more complete instructions, click the button in the preferences dialog or in any contextual pop-up — it opens the matching page of this documentation in your browser.

Tip

In the View menu at the top, the toolbars and tools attached to the active viewer can be shown or hidden. These preferences are remembered across restarts. Show / hide preferences specific to the DICOM Explorer are only kept for the current session.

Other viewers and players in the DICOM workspace

Depending on the SOP Class of the loaded series, Weasis opens one of the following:

Overlay viewers — applied on top of an image series rather than opened on their own — include DICOM Segmentation (SEG), DICOM RT, and Presentation State (PR / GSPS).

Other workspaces

  • Dicomizer — the workspace for converting standard images into DICOM objects.
  • Standard image explorer — workspace for non-DICOM images (configured through the non-dicom-explorer.json profile).

DICOM Import

How to import DICOM files

Weasis can ingest DICOM data from many sources:

  • Drag and drop files, folders, or DICOM ZIP archives from the system file explorer.
  • Double-click a DICOM file in the system file explorer (file association).
  • Local Device — browse files, folders, or DICOM ZIP archives from inside Weasis.
  • DICOMDIR — load a DICOM CD/DVD or any folder that contains a DICOMDIR index.
  • DICOM Query/Retrieve — query a remote PACS over classic DICOM (C-FIND / C-MOVE / C-GET) or DICOMweb (QIDO / WADO-RS) and retrieve selected studies.
  • Commands — local or remote commands launching Weasis with a target series (see the Weasis Protocol).

To send data the other way — out of Weasis to a file, a PACS node, or a CD/DVD — see DICOM Export.

Note

Whatever the import method, a popup may appear at the end of an import in any of these cases:

  • Error — one or more DICOM files cannot be read because they are corrupted or malformed (since Version4.3.0).
  • Information — since Version4.7.0, one or more valid DICOM files were skipped because their SOP Class has no viewer available (e.g. Raw Data Storage). These files are not corrupted, they are simply not displayable. The notification can be silenced with the Don’t show this again checkbox in the dialog, or from the DICOM Explorer preferences (Notify when DICOM files with an unsupported SOP Class are skipped).
  • Network error — when a network error occurs during a retrieve (DICOMweb or WADO), a message offers to download the missing files again.

From the system file explorer

Drag and drop

Files, folders, or DICOM ZIP archives selected in the system file explorer can be opened by dragging and dropping them into the central area of Weasis. The accepted drop target depends on the central panel state:

  • Empty central panel — any file a Weasis viewer can open, including standard images such as TIFF, PNG, and JPEG.
  • DICOM Explorer or any DICOM viewer (2D, MPR, 3D, SR, AU…) — only DICOM files and DICOM ZIP archives. Weasis opens each series in the most appropriate viewer.

File association

DICOM files can be opened by double-clicking them from the system file explorer.

Note

On Windows, only files with the .dcm extension are associated with Weasis. On other operating systems, DICOM files without an extension are also associated with Weasis.

From the Weasis menu or toolbar

Two import entry points sit next to each other in the toolbar (and under File > Import in the main menu):

Open toolbar Open toolbar

  • The first button opens the standard DICOM import dialog described below (File > Import > DICOM).
  • The second button is a shortcut for the DICOMDIR / CD-ROM workflow (File > Import > DICOM CD).

Local Device

Since Version4.7.0, DICOM ZIP is also accepted in the local-import workflow:

  • Files — browse and select one or more DICOM files or DICOM ZIP archives via the file chooser. If a ZIP archive is password-protected, a password prompt is shown.
  • Folders — browse and select one or more folders via the file chooser. Folders containing DICOM ZIP archives are also supported.
  • Search recursively — when enabled, the import also descends into subdirectories.

DICOMDIR

Loads a DICOMDIR-based study from a CD/DVD or any folder that already contains a DICOMDIR index file:

  • Path — browse to a folder containing a DICOMDIR.
  • Detect CD-ROM — try to load a DICOM CD/DVD directly.
  • Copy images into the local temporary directory — useful for slow reading devices such as CD-ROM drives.

DICOM Query/Retrieve

Queries a remote PACS and retrieves selected studies into the DICOM Explorer. The dialog has two tabs — DICOM Source and Search Criteria.

DICOM Source tab

DICOM import archive DICOM import archive

  • Archive — pick the remote node to query:
    • DICOM nodes — classic DIMSE (C-FIND for the query, plus C-MOVE, C-GET, or WADO-URI for retrieval).
    • DICOMweb nodes — QIDO for the query, WADO-RS for the retrieval (no additional options needed).
  • Retrieve (DICOM archives only) — the protocol used to transfer the images:
    • C-MOVE — the classic DIMSE retrieve. Accepts all SOP Classes but is not recommended over the web.
    • C-GET — transfer syntaxes are negotiated per SOP Class through a configuration file.
    • WADO-URI — C-FIND for the query plus WADO-URI retrieve; requires a WADO server.
  • Calling Node (DICOM archives only) — pick the calling DICOM node that matches the remote AE.
  • More options — opens the preferences so you can add or edit DICOM nodes.
Search Criteria tab

Thumbnails Thumbnails

  1. Pick a pre-registered search (combo box at the bottom-right of the Search Criteria panel) or fill in your own criteria. Saved criteria can be reused later; since Version4.1.0, the item selected in the combo box is re-applied automatically the next time the window opens (the default is Empty).
  2. Adjust the limit — the maximum number of studies returned by the query. Set the limit to 0 to remove the cap. For DICOMweb, the limit is the page size; use the spinner buttons to move between pages.
  3. Click Search.
  4. Select the studies you want to import.
  5. Click Import and close the window.
Note

Tracking the download progress and pausing the download of a series is supported only with DICOMweb nodes and with the combination DICOM C-FIND + WADO-URI.

Download Manager Download Manager

A paused series can be resumed by clicking the green play button or via its right-click menu.

Tip

If a query runs for too long, click Clear in the Search Criteria panel to cancel the request.

When using a DICOMweb node, an external login may be required (for instance signing in to a Google account in your web browser). If the login fails, Weasis can freeze for up to a minute waiting for the authorization code.

From commands

Weasis can be started — or asked to load a specific study — through commands launched locally or remotely. See Examples to load images on the Weasis Protocol page.

DICOMweb Configuration

How to configure a DICOMweb node

DICOMweb is the modern, HTTP-based set of DICOM services (QIDO-RS for query, WADO-RS for retrieve, STOW-RS for store, plus the legacy WADO-URI). Once a DICOMweb node is configured in Weasis, it shows up in the DICOM Query/Retrieve dialog and behaves like any other archive.

This page covers manual configuration inside Weasis. If you embed Weasis in a web portal, you can also launch it from a web context so that the DICOMweb parameters are derived automatically from the launch URL — no per-user configuration required.

General Configuration Steps

  1. Open File > Preferences (Alt + P).
  2. Select DICOM node list in the left sidebar.
  3. Click Add new to create a new node, or select an existing one and click Edit.

DICOMweb nodes configuration DICOMweb nodes configuration


In the node dialog:

  1. Give the node a descriptive name.
  2. Pick a service type. The default DICOMweb (all RESTful services) covers query, retrieve, and store at once. To restrict the node to a specific service, pick one of:
    • QIDO-RS — query.
    • STOW-RS — store.
    • WADO-URI (non-RS) — legacy single-object retrieval. Combines a classic C-FIND query with a WADO-URI retrieve (see Query/Retrieve).
    • WADO-RS (Retrieve) — modern retrieve.
  3. Enter the service URL of the DICOMweb server.
  4. Configure authentication by clicking Manager, then Add:
    • Either pick a template from the list and click Fill to populate some fields, or fill them in manually.
    • In the Provider panel, every field is mandatory.
    • In the Registration panel, every field is optional — except for OAuth2, where the Client ID, Client Secret, and Scope must be filled. Audience is optional, but some providers need it.
    • The Grant Type selector chooses the OAuth2 flow:
      • code (Authorization Code, the default) — interactive login: Weasis opens your browser so you sign in with your account, then receives the token through a loopback redirect. Use this for user-facing access.
      • client_credentials (Client Credentials, RFC 6749 §4.4) — non-interactive, server-to-server: Weasis obtains the token directly from the token endpoint using only the Client ID and Client Secret, with no browser login. Use this for service/headless accounts.
    • Click OK to save the authentication.
  5. Optionally, add HTTP headers that should be sent with every request to this service URL (useful for tokens or other custom auth schemes).
  6. Click OK to save the node.

Then open the DICOM Import dialog and pick the new node. If OAuth2 is configured with the Authorization Code grant, the first query opens your browser to complete the sign-in; subsequent queries reuse the cached token. With the Client Credentials grant, no browser login is required — Weasis authenticates silently using the configured Client ID and Secret.

Supported DICOMweb Providers (non-exhaustive list)

Google Cloud Healthcare API

Google Cloud provides a comprehensive DICOMweb implementation through the Healthcare API.

Configuration (see also the general steps above):

  1. Create a new DICOMweb node with a descriptive name.
  2. Pick DICOMweb (all RESTful services).
  3. Enter the Google repository URL (must end with /dicomWeb).
  4. Configure authentication by clicking Manager, then Add:
    1. Pick the Google Cloud Healthcare template.
    2. Click Fill.
    3. Enter your Client ID and Client Secret.
    4. Click OK to save the authentication.
  5. Optionally, add HTTP headers for the Google API.
  6. Click OK to save the node.

Google node Google node


Google template Google template

Note

The DICOMweb thumbnail service is not currently supported by the Google API, so series thumbnails will not preview before the full retrieve.

Orthanc WEB Server

Orthanc is a lightweight DICOM server with DICOMweb capabilities.

The screenshot below is configured for the public demo server, which requires no authentication. For your own Orthanc instance, replace the URL and configure the authentication method as described in the general steps.

https://demo.orthanc-server.com/dicom-web

Orthanc node Orthanc node


Note

The DICOMweb implementation in Orthanc does not currently support the thumbnail service, so series thumbnails will not preview before the full retrieve.

dcm4chee-arc-light

dcm4chee-arc-light is a robust open-source PACS that exposes DICOMweb services out of the box.

To configure a dcm4chee-arc-light node (see also the general steps):

  1. Add a new DICOMweb node.
  2. Enter a description (e.g. DCM4CHEE Archive).
  3. Pick the DICOMweb service.
  4. Enter the URL of your dcm4chee-arc-light server. The default endpoint follows this pattern:
    http(s)://[server-address]:[8080|8443]/dcm4chee-arc/aets/[AE_TITLE]/rs
    (e.g. http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs)

If the dcm4chee-arc-light server requires authentication, configure it on both sides:

In Weasis

  1. Click Manager, then Add to create a new authentication.
  2. Pick the Default Keycloak template and fill in:
    • Namedcm4chee-arc-light
    • Base URLhttps://[server-address]:8843
    • Realmdcm4che
    • Client IDweasis
    • Client Secret — the secret you copy from Keycloak (see below).
    • Scopeopenid
    • Audience — leave empty.

In Keycloak — register the Weasis client for DICOMweb access:

  1. Sign in to the Keycloak Admin Console (typically https://[server-address]:8843/admin/dcm4che/console for the secure URL).
  2. In the left menu, click Clients > Create.
  3. General settings:
    • Client TypeOpenID Connect
    • Client IDweasis
  4. Capability config:
    • Client authentication — ON
    • Standard flow — ON
    • Direct access grants — ON
  5. Login settings:
    • Root URL — leave empty.
    • Valid Redirect URIs — add http://127.0.0.1*.
    • Web Origins — add + to allow any origin that matches a Valid Redirect URI.
    • Click Save.
    • Copy the Client Secret from the Credentials tab and paste it into the Weasis authentication form above.

Amazon HealthLake

Amazon HealthLake is a fully managed service for storing, transforming, querying, and analyzing healthcare data at scale.

Imaging data is exposed through the AHI DICOMweb Proxy. To consume it from Weasis, create a DICOMweb node with this URL:

http://[EC2 instance IP or EC2/ALB DNS]:8080/aetitle

The complete Weasis configuration is documented at the end of the AHI DICOMweb Proxy README.

Docking

Organizing the Interface with Docking

Almost every panel and viewer tab in Weasis can be moved, split, pinned, or hidden by dragging it with the mouse. This lets you arrange the workspace around the task at hand — for instance comparing two series side by side, putting the MPR viewer and the 3D Volume Renderer next to each other for crosshair-driven volume cutting, or maximizing a single view for a focused read — without leaving the application.

Central View

The central area is where viewers and players are displayed as tabs. It supports two main layout operations.

Splitting tabs

Reorganize tabs by dragging and dropping them:

  • Drag a tab toward an edge (top, bottom, left, or right) of the central area to split the space and display two tabs side by side or stacked.
  • Drop a tab onto another tab group to merge it back into a single area.

This makes it possible, for example, to compare two series simultaneously in a split-screen layout, or to keep an MPR tab next to a 3D rendering of the same volume.

Tip

To return to a single-tab layout, drag one of the split tab groups back onto the other, or close the extra view.

Maximize a tab

A tab can be maximized to occupy the entire application window, including the space normally taken by the tool panels on either side — giving the largest possible viewing area for a single viewer.

  • Maximize — click the maximize button in the tab header, or double-click the tab.
  • Restore — click the normalize button, or double-click the tab again.

Tool Panels

The strips on the right side of the central area host the tools attached to the active viewer (measurements, image adjustments, display options, segmentation, …). Each tool panel can be managed independently with one of three display modes.

Docked

The default mode: the tool panel is docked in the vertical strip next to the central view. In this mode it is always visible and takes up a fixed portion of the screen.

Pinned as overlay

The tool panel floats on top of the central view without reducing the viewer’s size. Useful when you want the maximum viewing area while keeping quick access to the tools.

  • Click the pin icon in the tool panel header to switch to overlay mode.
  • The overlay can be repositioned by dragging its title bar.

Minimized (vertical button)

The tool panel collapses to a small vertical button on the side of the interface. Clicking the button temporarily reveals the panel without permanently giving up screen space.

  • Click the minimize icon in the tool panel header to collapse it to a button.
  • Click the button again to restore the panel.

Rearranging tool panels

Inside the vertical strip, individual tool panels can be split and re-docked relative to each other:

  • Drag a tool panel header and drop it above, below, or beside another tool panel to split the tool area and display several tools at once.
  • Drop a tool panel onto another tool panel’s tab bar to group them as tabs within the same slot.

This lets you arrange the most-used tools exactly where you want them for a given reading workflow.

Note

The docking layout is not currently saved between sessions. Panel positions and splits can depend on the displayed data and on the environment (screen resolution, number of screens), which makes reliable persistent restoration impractical for now.

DICOM Export

How to export DICOM files

Weasis offers two complementary export workflows:

  • Export the selected view — produces a raster image (PNG, TIFF, JPG, JPEG 2000) or a clipboard copy of what is currently shown on screen. Useful for slides, reports, e-mails, screenshots of measurements, and other non-DICOM consumers.
  • DICOM Export — produces DICOM-format output (a directory tree, an ISO image, or a network transfer to a remote node). Use this to share studies with another DICOM-capable system without losing pixel fidelity or metadata.

Exporting the selected view

Open the export-view dialog from the toolbar icon or from the main menu File > Export > Exporting view. The output can be sent to the clipboard or saved to an image file in PNG, TIFF, JPG, or JPEG 2000 format.

Current view

Exports the view exactly as it appears on screen, at its current size and with every overlay (annotations, measurements, DICOM annotations, rulers…) visible.

Anonymize — removes identifying information from the overlay, in line with the Anonymize option of the 2D viewer.

Original Image

Exports the underlying image — without on-screen overlays — with a few rendering options.

Export view Export view

  • Size — scale the exported image (percentage of the original dimensions).
  • Preserve 16-bit per channel — keep the original pixel depth (16-bit in PNG / JPEG 2000 / JPEG-XL / TIFF, double values in TIFF). When checked, the exported pixel values match the Modality LUT values (e.g. Hounsfield units for CT). JPEG Lossy is only available with this option unchecked, since the format requires an 8-bit image.
  • DICOM Pixel Padding — apply the DICOM pixel padding when checked.
  • DICOM Shutter — apply the DICOM shutters when checked.
  • DICOM Overlay — apply the DICOM overlays when checked.

DICOM Export

Open the DICOM Export window from the toolbar icon or from the main menu File > Export > DICOM. Three destinations are available in the left panel — Local Device, DICOM Send, and CD/DVD Image — each with its own set of options.

Tip

When the export window opens, the study that was selected in the viewer (orange focus border) is pre-checked, and the series that are currently open are highlighted with a full-line selection.

Hover any series row to see its thumbnail in a tooltip — useful when picking among several similar series.

Local Device

Export DICOM Export DICOM

  1. Select Local Device.
  2. Choose the export options: Export options Export options
    • Transcoding — change the DICOM transfer syntax (compression / encoding) of the exported files. Leave the default unless you specifically need a different syntax.
    • Generate new unique identifiers — replace the Study / Series / SOP Instance UIDs with newly generated ones. Cross-references between UIDs are kept consistent within this export session only — running the export a second time produces a different set of UIDs that no longer matches the first.
    • Include DICOMDIR — write a DICOMDIR index file alongside the exported objects.
    • DICOM CD folders — wrap the exported tree in the standard DICOMDIR-compliant folder layout used on DICOM CDs.
    • Keep directory names — preserve human-readable folder names in the exported hierarchy (incompatible with the strict DICOMDIR layout).
  3. Pick the patient(s), study (or studies), series, or individual instances to export. Series created inside Weasis (such as Key Object / Presentation State objects) are marked with a NEW flag.
  4. Click Export to write the files, then close the window.
Note

When the export uses a native image format (JPG, PNG, JPEG 2000, JPEG-XL, or TIFF) instead of DICOM, only the image frames are converted (see the Original Image options). Encapsulated DICOM payloads — video, audio, and PDF — are extracted as standalone files in their native format.

Multi-frame images are exported as numbered files (one frame per file).

DICOM Send

Sends the selected objects directly to a remote DICOM or DICOMweb node over the network — the same protocols used by PACS systems for inter-institutional transfer.

  1. Select DICOM Send.
  2. Choose the destination node — a classic DICOM node (C-STORE) or a DICOMweb node (STOW-RS).
  3. Pick the patient(s) / study / series / instances to send. Series created inside Weasis are marked with a NEW flag.
  4. Click Send to transfer, then close the window.
Tip

Destination nodes are configured under File > Preferences > DICOM (see the DICOM Node List and DICOMweb Node List entries) and can be reused across export sessions.

CD/DVD Image

Produces a burnable ISO image that follows the DICOMDIR layout expected by most CD/DVD-based DICOM media.

Export DICOM Export DICOM

  1. Select CD/DVD Image.
  2. Choose the export options:
    • Transcoding — change the DICOM transfer syntax of the exported files. Leave the default unless you specifically need a different syntax.
    • Generate new unique identifiers — replace the Study / Series / SOP Instance UIDs with newly generated ones. Cross-references between UIDs are kept consistent within this export session only — running the export a second time produces a different set of UIDs that no longer matches the first.
  3. Add JPEG images — also extract every image and every encapsulated payload (video, audio, PDF) into a separate JPEG folder for easy preview on systems without a DICOM viewer.
  4. Add Weasis — embed the Weasis viewer directly into the ISO so the recipient can launch it from the media. Currently supported only on Windows x86-64 (both for producing and for running the embedded copy). Running Weasis straight off a CD/DVD is slow; for a better experience, write the ISO to a USB stick or open the disc with a locally installed copy of Weasis as described in the README.html on the disc.
  5. Pick the patient(s) / study / series / instances to export.
  6. Click Export to write the ISO, then close the window.

DICOM Explorer

Structure and display of Patients/Studies/Series

DICOM Explorer

The DICOM Explorer is the panel on the left side of the application. It displays everything you have loaded into Weasis as the Patient / Study / Series / Image hierarchy defined by the DICOM standard, and is the starting point for opening a viewer on any series.

Data can be added to the Explorer in several different ways — drag-and-drop, the import dialog, a PACS query, or the Weasis Protocol.

DICOM Explorer DICOM Explorer

Tip

You can navigate through the Patient / Study / Series / Image structure using only keyboard shortcuts (the bindings below are the defaults — customizable since v4.7.0). For example:

  • Open an image and, if necessary, select the view to focus on. If the layout has more than one view, you can move across the views with Tab and Shift + Tab. The view surrounded by an orange line is the focused view.
  • Navigate through images within a series with Up and Down.
  • Navigate through series within a study with Left and Right.
  • Navigate through studies within a patient with Ctrl + Left and Ctrl + Right.
  • Navigate through patients with Ctrl + Up and Ctrl + Down (follow the order in the patient’s combo box and select the last tab if a patient has several tabs already open). To navigate open tabs, use Ctrl + Tab and Ctrl + Shift + Tab.

Patient Level

  • Weasis can display several patients at the same time. By default, when images are imported, a tab with the patient’s name opens in the main area.
  • A tab containing a multi-view layout can only display images from a single patient.
  • You can switch between patients either through the first combobox in the DICOM Explorer (see image above) or by selecting a tab in the main area.
  • In the combobox, patients are sorted alphabetically — case-insensitive, and according to the active regional setting.
  • Studies and series are grouped under the same patient when their Patient Name and Patient ID both match. Otherwise, a new patient entry is created.

Study Level

  • A study contains one or more series (thumbnails) that belong to a single patient. A surrounding line groups the series of one study (see the image above).
  • Studies are sorted in reverse chronological order by default. Since Version4.1.0 the sort order can be changed in File > Preferences > DICOM > DICOM Explorer under Study data sorting. If a study has no study date, it is sorted alphabetically by Study Description.
  • All studies are shown by default; the study combobox can restrict the view to a single one.

Series Level

Thumbnails Thumbnails

Tip

Select related Series — right-click a series and choose Select related Series to highlight every series in the study that shares its Frame of Reference UID (the DICOM coordinate system). Open them together (right-click again → 2D Viewer > Open) to get cross-coupled views that auto-synchronize and that the 3D cursor can drive.

Tip

Series built inside Weasis — the MPR viewer (Build a new series from the current view / Build three series from MPR views) and the MIP viewer (Build a new Series) can add reconstructed series back into the Explorer. These newly built series join the current study and can be opened, sent, or exported like any other series.

4D Series Sub-Series Splitting

When a DICOM series is loaded, Weasis automatically analyzes it to detect multi-phase acquisitions (e.g. cardiac phases, contrast phases, 4D volumes). If multiple phases are detected, the series is split — automatically or with a confirmation step — into separate sub-series, one per phase. Each sub-series can then be used independently in the MPR, MIP, or 3D Volume Renderer.

Splitting behavior by number of detected phases
Phases Behavior
1 No split — treated as a standard single-phase series.
2 – 7 Automatic split — the series is immediately divided into one sub-series per phase, without any user interaction.
≥ 8 Manual split — Weasis stores the phase count but leaves the series intact. A confirmation dialog is shown before splitting to prevent unintended fragmentation of large datasets.
Manual split confirmation dialog (≥ 8 phases)

When 8 or more phases are detected, a dialog asks you to confirm the split. Once confirmed, the series is divided exactly as in the automatic case. Canceling leaves the series intact as a single entry in the DICOM Explorer.

Sub-series structure after splitting

After splitting, each phase becomes a separate thumbnail in the DICOM Explorer. The first sub-series reuses the original series entry; the additional sub-series are added to the study tree, identified by a # number in the upper-right corner of the thumbnail.

Tip

Open any individual phase sub-series in the MPR, MIP, or 3D viewer for accurate volumetric analysis — each sub-series contains only the images of a single phase and can be reconstructed as a coherent 3D volume.

If the split is not needed, or was triggered unintentionally, the sub-series can be merged back. Select the thumbnails you want to merge (all or a subset) and choose Merge Selected Series from the context menu — the selected sub-series are recombined into a single series entry.

Note

Phase detection is based on the spatial position of each image. If multiple images share the same slice position, they are assumed to belong to different temporal phases. If no such overlap is found, the series is treated as a standard single-phase acquisition and is never split.

Series Display and Opening

  • By default, series are sorted by series number; if that is missing, they are sorted chronologically by series date or another available date.
  • To open a series:
    • Drag and drop a thumbnail into the main area. If the drop lands in a view of the same patient, that view’s series is replaced; otherwise, a new tab is created.
    • Double-click a thumbnail (or navigate with the Up / Down arrows and press Return). If a view of the same patient already exists, the series in the focused view (orange border) is replaced.
    • Select one or more thumbnails and pick an action from the 2D DICOM Viewer context menu:
      • Open — opens the series in the most appropriate layout (replaces the series if a patient tab already exists).
      • Open in new tab — same, but always in a new tab.
      • Open in screen — same, but on a specific screen.
      • Add — appends the series to the current patient’s layout, if one exists.
Note

Since Version4.7.0, tab opening and focus behavior is handled automatically, replacing the old configurable opening mode preference.

When is a new tab opened? A new viewer tab is opened for every patient whose studies are loaded via an import action. If the patient already has an open tab, the new studies are added to that existing tab instead of opening a new one. This keeps each patient organized in a single tab and prevents fragmentation of the workspace.

How is focus managed? Focus follows an automatic policy based on loading duration:

  • If the study finishes loading quickly (within ~3 seconds), the new tab comes to the foreground — the expected behavior for a direct open action.
  • If the study is still loading when the threshold is exceeded (for example a slow network import in the background), the current tab keeps focus — Weasis will not interrupt your work by stealing focus for a slow background load.

In practice: fast loads surface immediately, slow background loads stay out of the way.

Preferences

From the main menu File > Preferences > DICOM > DICOM Explorer:

  • Thumbnail size — width of the thumbnails; the panel adjusts accordingly. Default: 144. Restart the application after changing this value.
  • Study data sorting — sorts studies in reverse chronological order (default) or chronological order. Since Version4.1.0.
  • Download all series immediately — when checked, series start downloading as soon as they are queued via WADO or WADO-RS. When unchecked, you must click the play button on each series, or the global play button at the bottom of the thumbnail list. Default: checked.

DICOM 2D Viewer

Displaying DICOM images

The 2D viewer is the default viewer for any DICOM series that contains images — CT, MR, US, CR / DX, mammography, color photographs, and so on. It handles both single images and stacks (volumetric series), and is the entry point for the more specialized viewers such as MPR, the 3D Volume Renderer, and the MIP projection.

Open the 2D viewer

The viewer can be opened with in the toolbar, or by double-clicking a thumbnail (or right-clicking it and choosing 2D Viewer > Open) in the DICOM Explorer.

DICOM 2DViewer DICOM 2DViewer

The rulers K display a real-world size whenever Weasis can derive one from the DICOM file. When a small label M is shown above the calibration, it indicates how that calibration was obtained:

  • At detector: projection radiography calibration taken at the detector plane.
  • Magnified: projection radiography calibration corrected by the magnification factor (e.g. mammography, as in the screenshot above).
  • Used fiducials: calibration derived from fiducials (e.g. a manually placed ruler in the image).
  • At scanner: calibration taken from a digitized medium (e.g. film digitizer).

Toolbars A

Viewer Main Bar

Main Toolbar Main Toolbar

Choose the action assigned to each of the three mouse buttons and the mouse wheel. Defaults are:

  • Left button — Window / Level. Can also be changed from the context menu F or the keyboard shortcuts.
  • Right button — Context Menu.
  • Wheel — Series Scroll.
  • Middle button — Pan.

Available actions:

  • Pan — move the image position. T key to select. Alt + Arrows to pan while another action is selected.
  • Window / Level — change image contrast. W key to select.
  • Series Scroll — navigate through the images of the current series. S key to select.
  • Zoom — zoom in / out. Z key to select.
  • Rotation — rotate the image by a free angle. R key to select.
  • Measure — draw a graphic to measure something. M key to select.
  • Draw — draw a graphic to annotate. G key to select.
  • Context Menu — open the context menu. Q key to select.
  • Crosshair — 3D cursor. H key to select. Ctrl + click or Ctrl + Shift + click adjusts Window / Level without leaving crosshair mode.
  • No Action — do nothing. N key to select.
Tip

While dragging, hold Ctrl to accelerate the action and Ctrl + Shift to accelerate more.

The single-key shortcuts above are the defaults — most are customizable since v4.7.0 in Preferences > General > Keyboard Shortcuts. See Keyboard Shortcuts.

  • Default layout — change the layout of the view. DICOM Information and Histogram are special layouts that update automatically as you scroll through the series.
  • Synchronize — apply the same settings (window/level, scroll, zoom, …) to multiple views simultaneously. Two modes are available: Default Stack (the default — couples series sharing the same Frame of Reference UID) and Default Tile (mosaic display of a single series). A master Synchronize checkbox at the top of the drop-down turns synchronization on or off globally without changing the active mode. Each 2D view also exposes its own auto-sync and manual-sync overlay buttons in its bottom-right corner. See View Synchronization for the full mechanics, the per-view controls, and the FoR color-chip system.
  • Reset — restore the default image rendering (see Reset). Escape key to select.

Toolbars available in the DICOM 2D viewer

Tip

Toolbars can be shown or hidden from the View top menu.

Viewer tools

The right-side panel groups all the tools tied to the 2D viewer.

The mini-tool is always visible; the other panels open by clicking the corresponding vertical button. The normalize button docks a panel into the main layout — otherwise it opens as a pop-up that can be kept in front with the pin button (not recommended, as a pinned pop-up hides other panels).

Mini-tool B

By default the mini-tool scrolls through the images of the selected series (the one surrounded by the orange focus border). The combobox at the top can switch it to control zoom or rotation instead.

Display C

Controls how the image and graphic objects are displayed in the view.

The Apply to all views option propagates the chosen display settings to every view in the selected tab. When unchecked, settings apply only to the focused view (orange border).

Image

Display options for the image itself. Unchecking Image hides the image and leaves only the annotations and graphic objects visible. The other options expose DICOM-specific behavior:

DICOM Annotations

Display transformation values and DICOM information directly on the image.

  • Annotations — DICOM information shown in the image corners:
    • G Top left — patient information.
    • H Top right — study information.
    • I Bottom right — series information (depends on the modality).
    • J Bottom left — image information and the position of the image in the series.
  • Minimal Annotations — reduce the number of annotations shown. Press Space or I to cycle through the three states (minimal, none, all).
  • Anonymize — hide identifying information only inside the views (not in other parts of the GUI such as the tab title). Combine with the screenshot tool when exporting an image.
  • Scale — display the rulers on the left and bottom of the image K.
  • Lookup Table — display the LUT on the image L.
  • Orientation — display the orientation of the image N.
  • Window / Level — display the window and level values J.
  • Zoom — display the zoom value J.
  • Rotation — display the rotation value J.
  • Frame Value — display the frame number J.
  • Pixel (Value / Position) — display the pixel value and the cursor position J.
Drawings

Check / uncheck to show or hide the graphic objects (see Draw & Measure).

Image Tools D

Image Tools groups every control that affects how the image is rendered.

Windowing and Rendering
Transform

Zoom, rotate, and flip the image. Zoom and rotation can also be driven from the mini-tool or the mouse actions.

Cine

The Cine start button plays the series at a fixed speed (frames per second). The default speed is taken from the DICOM file when present. Cine options are also accessible from the context menu.

  • Click Cine stop to end the animation.
  • Click the Loop / Sweep toggle to switch between looping and sweeping playback.
Note

When cine is active, every series currently synchronized with the playing series is animated too. Selecting another series keeps the cine running on it until the Cine stop button is pressed.

For series with a variable frame rate, the playback speed is adjusted automatically, so a value entered manually is not preserved.

Tip

A dedicated Cine toolbar is also available — hidden by default; enable it from the View menu.

Reset

Returns the image to its default rendering, either for every parameter or for a specific one. Also available from the toolbar button and from the context menu.

Draw & Measure E

Other specific tools

Preferences

From the menu File > Preferences > Viewer > 2D Viewer.

Mouse Action Sensitivity

Adjust how strongly a mouse drag translates into action for: Window, Level, Zoom, Rotation, and Series Scroll.

Zoom

Zoom interpolation controls how new pixels are computed when the image is zoomed in or out:

  • Nearest neighbor — the simplest method: extends the nearest pixel value as-is.
  • Bilinear — averages the four neighboring pixels. Slightly sharper than nearest neighbor, slightly slower.
  • Bicubic — uses a 16-point kernel. Sharper than bilinear, but the slowest of the four.
  • Lanczos — uses a sinc kernel; produces the sharpest results, with performance between bilinear and bicubic.

The default is Bilinear. Nearest neighbor is the fastest option but produces aliasing artifacts.

Other

  • Apply Window / Level on color images — when checked, the window / level is applied to the RGB channels. Unchecked, window / level has no effect on color images.
  • Inverse level direction — when checked, the level direction with mouse drag is inverted (dragging down increases brightness), matching the Basic Image Review profile. Unchecked, dragging down decreases brightness.
  • Apply by default the most recent Presentation State — when checked, the most recent Presentation State object is applied automatically. Otherwise it has to be selected manually via .
  • Overlay color — color and opacity of the DICOM overlay. The default is white; the opacity is the transparency / alpha slider of the color picker.

View Synchronization

Synchronizing Views

View synchronization propagates the same actions (scroll, zoom, window / level, …) across several views at once. Weasis offers two synchronization modes — an automatic mode driven by shared DICOM geometry (the Frame of Reference UID, abbreviated FoR throughout this page) and a manual mode to bridge views that the automatic mode cannot connect (only for scrolling).


Frame of Reference: the shared coordinate system

Two series carry the same Frame of Reference UID (DICOM tag 0020,0052) when they were acquired in the same 3D coordinate system. In practice, sharing the same Frame of Reference means sharing the same 3D coordinate system: every voxel in those series is positioned against the same origin and the same axes, so the point at coordinates (x, y, z) refers to the exact same physical location in all of them.

Acquisitions performed in the same session without moving the patient typically share a Frame of Reference, for example:

  • the CT and the PET produced together by a hybrid PET / CT scanner,
  • all the slices of a single MR sequence,
  • a planning CT and the RTSTRUCT / RTPLAN / RTDOSE objects derived from it.

This shared geometry is what makes automatic synchronization possible: when Weasis sees the same FoR on two views, it can align them in 3D without any manual configuration. Series acquired in separate sessions, on different scanners, or after the patient has moved typically have different Frames of Reference and must be coupled with manual sync instead.

The Frame of Reference is the linking concept used by:

  • Auto-synchronization (see Default Stack Mode below) — propagates scroll, zoom, window/level, … between views sharing a FoR.
  • The 3D cursor (crosshair) — clicks on one view jump to the same anatomical point in every other view sharing the same FoR.
  • The MPR viewer — the three reconstruction planes are always FoR-coupled by the crosshair.

Synchronization Modes

The synchronization mode is controlled by the drop-down button next to the layout button in the toolbar.

Mode Description
Default Stack Couples views from different series that share the same Frame of Reference UID. Scroll only is propagated by default; every other per-action toggle (Pan, Zoom, W/L, Rotation, Flip, …) is opt-in. This is the default mode.
Default Tile Lays out consecutive images of the same series in a mosaic (n, n+1, n+2, …). Every per-action setting is propagated by default so the whole tile group behaves as a single coherent display.

The drop-down popup also contains:

  • A non-interactive series-name header at the top of the popup, identifying the currently selected view. It makes explicit that the per-action toggles and the Apply to all views entry below reflect this specific view’s synchronization options.
  • A master Synchronize checkbox — a global switch that turns synchronization on or off for the whole synchronization session (every participating view, including auto-synced views in other linked containers) without changing the active mode. This is broader than the per-view button, which toggles only the single view it sits on. Unchecking it makes every view fully independent. See Synchronization scope for how the scopes interact.
  • Per-action toggles (Scroll, Pan, Zoom, Rotation, Flip, Window / Level, Spatial unit) mirroring the selected view’s configuration.
  • An Apply to all views entry — decorated with the selected view’s FoR color chip — that propagates the configuration to every other sync-active view in the container, regardless of FoR (broader than the same-named entry in the per-view popup, which is restricted to the selected view’s FoR group). See Per-view sync controls for the per-action semantics and the color-chip system.
Note

The synchronization mode can also be set programmatically with the command:

dcmview2d:synch VALUE

where VALUE is Stack or Tile. See Commands for details.


Synchronization Scope

Synchronization operates at three different scopes. Knowing which is which avoids surprises when more than one viewer window is open:

  • Global (whole session) — the master Synchronize checkbox in the toolbar drop-down is a global switch: it enables or disables synchronization for every participating view at once, not just the selected view.
  • Across containers (auto-sync)Default Stack auto-synchronization is not limited to a single container. Views in any other visible container that belongs to the same group (the windows opened together from one patient/study group) and is also in Stack mode are kept in sync as well. Open the same study in two windows and scroll, Window / Level, etc. stay coupled across both.
  • Within one container (manual sync)manual sync only links views that live in the same container window; you cannot manually link a view to one in another container. In addition, only one manual-sync session can be active at a time across the whole application — starting manual sync on another eligible view joins the existing session rather than creating a second, independent group.

Default Stack Mode (Auto Synchronization)

Default Stack is the most common synchronization mode. When two or more series share the same Frame of Reference UID, Weasis can synchronize their views automatically.

By default, only Scroll is propagated — navigating to a slice in one view moves the other views to the closest matching anatomical position. Every other action (Pan, Zoom, Rotation, Flip, Window / Level, Spatial unit) starts disabled, and you opt them in explicitly through the per-action toggles in either:

  • the toolbar drop-down popup (applies to the selected view; use Apply to all views to propagate the change to its FoR group), or
  • the per-view auto-sync popup opened from the button on the view itself.

See Per-view sync controls for the full list of toggles and the FoR color-chip system.

Typical use case: display a CT series and its corresponding PET series side by side. Because both series share the same Frame of Reference UID, scrolling through slices in the CT view automatically scrolls the PET view to the matching anatomical level. To couple Window / Level or Zoom too, enable the action on every view in the group (an action is synced only between views that both have it enabled) — toggle it on one view and use Apply to all views.

Tip

To find which series share the same Frame of Reference, right-click a thumbnail in the DICOM Explorer and choose Select related Series, then open all the selected series together in the 2D viewer.

View synchronization layout View synchronization layout

The screenshot illustrates how Weasis advertises synchronization groups visually inside a single layout:

  • The two views in the left column carry no Frame of Reference UID. Because they are not eligible for auto-sync, the auto-sync button is not shown on them at all — only the manual-sync button is available.
  • The four views on the right form two pairs sharing a Frame of Reference UID, each pair tagged with its own auto-sync color chip: yellow for the top pair, blue for the bottom pair. Auto-sync is propagated only within a same-colored group.
  • A manual-sync link (hand icon, in green when active) couples one of the FoR-less left views to two peers at once — the other FoR-less view and a view that belongs to one of the FoR pairs — illustrating that manual sync is the fallback to bridge views that auto-sync cannot connect, regardless of whether the peer has a FoR or not.

Per-view Sync Controls

In addition to the global toolbar drop-down, each 2D view carries small overlay buttons in the bottom-right corner that drive its sync behavior independently. They appear whenever the view has at least one eligible peer for synchronization.

Auto-sync button

The button toggles Default Stack auto-synchronization for this view only. Its appearance encodes two pieces of information:

  • Outer tintred when auto-sync is OFF for the view, green when ON.
  • Center color chip — a small colored square shown when the container holds two or more views with different Frame of Reference UIDs. The color identifies the FoR group; views sharing the same UID share the same chip color, so groupings are visible at a glance. When the container has only one FoR (nothing to disambiguate), the chip is hidden.

Clicking the button opens a per-view sync popup with:

  • Synchronize this view — master on/off toggle for auto-sync on this view (closes the popup on click).
  • Per-action toggles — independent checkboxes for Scroll, Pan, Zoom, Rotation, Flip, Window / Level, and Spatial unit. The popup stays open while you flip several options, so you can configure the whole set in one pass.
  • Apply to all views — copies this view’s effective sync options to every other view sharing the same Frame of Reference UID. The item is decorated with the view’s FoR color chip, matching the chip drawn on the auto-sync button so you can confirm at a glance which group will be affected.
  • Close — explicit dismiss (the per-action toggles do not auto-close on click; Esc and clicks outside also dismiss the popup as usual).
Note

A per-action toggle only declares whether this view takes part in syncing that action. An action is propagated between two views only when both of them have it enabled — sharing the same Frame of Reference UID is not enough on its own. Enabling Zoom on a single view therefore has no visible effect until at least one peer also has Zoom enabled. To couple an action across a whole FoR group in one step, enable it on one view and use Apply to all views.

Manual sync button

Some series cannot be auto-synced because they have no — or a different — Frame of Reference UID (typical for unrelated CT scans, or legacy series with missing DICOM geometry). The manual-sync button (same bottom-right corner) lets you link such a view to a peer by relative slice index instead of 3D position.

A view is an eligible candidate for manual sync with the current view when it lives in the same container, has the same orientation, and a different (or absent) FoR — manual sync never crosses containers, and only one manual-sync session can be active across the whole application (see Synchronization scope). Clicking the button on a view that is currently OFF picks the link target according to how many candidates exist:

  • A manual-sync group already exists in the container — the new view joins it directly (bidirectional links are added to every member). No picker is shown.
  • Exactly one candidate — the link is established immediately, no picker.
  • Multiple candidates and no existing group — a multi-select picker opens so you can pick the views to sync with.

Once active:

  • Scroll propagation is forced on and locked in the per-view sync popup — manual sync is built on top of scroll. All other per-action toggles (Pan, Zoom, W / L, …) remain freely configurable.
  • The manual-sync button turns green to indicate that a manual link is established. Clicking it again removes this view from the group.
Tip

The auto-sync and manual-sync buttons coexist on the same view. Auto-sync is preferred whenever a shared FoR is available; manual sync is the fallback for views that fall outside any spatial group.


Default Tile Mode

Default Tile mode fills all views in the current layout with consecutive images from the same series. It is useful for reviewing a series at a glance, comparing adjacent slices, or preparing a print layout with multiple images per page.

When this mode is active:

  • Each view shows a different image of the same series (n, n+1, n+2, …).
  • Scroll advances the entire tile group by one image at a time.
  • Every other per-action setting is enabled by default, both user-toggleable (Pan, Zoom, Rotation, Flip, Window / Level, Spatial unit) and always-on internal (Preset, LUT, LUT shape, Invert LUT, Filter, Inverse stack, Sort stack), so the tile group behaves as a single coherent display.

Use the per-action toggles to disable any user-toggleable setting if you want tiles to diverge (e.g. independent zoom for cropped previews).

Typical use case: print or export a multi-image layout where each cell shows a different slice of the same series. See Print for more details.

Note

This is the opposite default from Default Stack, where only Scroll propagates and every other action starts off. Tile mode assumes you want everything in lock-step (same series, multi-cell view); Stack mode assumes you want surgical control (different series, cross-modality comparison).


3D Cursor Synchronization

The 3D cursor (crosshair) is a dedicated synchronization mechanism that links the cursor position in 3D space across views that share the same Frame of Reference UID.

Unlike stack mode, which only aligns views near the same anatomical depth, the crosshair lets you click precisely in one view and see that exact 3D point highlighted in every other view simultaneously — regardless of slice or plane orientation.

See the 3D cursor tutorial for full details.


MPR Synchronization

Two distinct couplings are at play in the MPR viewer:

Internal — between the three MPR planes (axial, coronal, sagittal): these are always cross-synchronized by the crosshair. Beyond that structural coupling, the MPR viewer uses different per-action defaults from the 2D viewer: Scroll, Zoom, and Window / Level are ON by default. The remaining per-action propagations (Pan, Rotation, Flip, Spatial unit) are off by default and can be enabled explicitly.

External — between MPR and other 2D views sharing the same Frame of Reference: the standard Default Stack rules apply (Scroll on by default; every other action opt-in via the per-view toggles described below).

In both cases, the per-view toggles are reached through the Synchronize submenu of each MPR view’s settings popup (see below) — the crosshair coupling itself cannot be disabled.

Per-view sync options in the MPR

MPR views do not show the auto-sync / manual-sync overlay buttons described in Per-view sync controls — synchronization between MPR planes is structural (driven by the crosshair) and cannot be turned off per view. Instead, the per-view sync configuration is reached through a Synchronize submenu in the MPR configuration popup (settings icon in the top-right corner of the view — listed alongside the other MPR settings).

The submenu is the same as the one opened by the auto-sync button on a regular 2D view, minus the master “Synchronize” toggle (you cannot disable synchronization for a single MPR plane — see above). It contains:

  • Per-action toggles for Scroll, Pan, Zoom, Rotation, Flip, Window / Level, and Spatial unit. The submenu stays open while you flip several options.
  • Apply to all views — propagates the current selection to every other view sharing the same Frame of Reference UID. Decorated with the FoR color chip identifying the target group.
  • Close — closes the popup.
Note

When manual synchronization is active on the view, Scroll is forced on and locked — manual sync is built on top of scroll propagation.


Cine and Synchronization

When the cine animation is active on a series, every series currently synchronized with it (via Default Stack or Default Tile) is animated as well. Cine remains active across series until the Cine stop button is clicked.

3D Cursor

3D cursor (crosshair)

The 3D cursor — also called the crosshair — lets you click a point on one image and instantly see the same anatomical point in every other view that shares the same 3D coordinate system. Use it to:

  • Localize a finding on one modality (for example a CT lesion) on the matching PET, MR, or follow-up acquisition.
  • Cross-check structures between axial, coronal, sagittal and oblique planes.
  • Compare the same anatomical level on prior and current studies opened side by side.

Two views are linked by the crosshair when they share the same Frame of Reference UID — DICOM’s way of declaring that those series live in the same 3D coordinate system. See Frame of Reference: the shared coordinate system for the full explanation and the typical cases where it applies. Weasis discovers the link automatically from the DICOM metadata — no manual configuration is needed.

The fastest way to load several series that share a coordinate system:

  1. In the DICOM Explorer, right-click a series and choose Select related Series. Weasis selects every series in the study that shares the same Frame of Reference UID.
  2. Right-click the selection again and choose 2D Viewer > Open to display them side by side.

Activating the crosshair

Select the crosshair as the active mouse-button action either from the toolbar mouse-button menus or from any view’s right-click context menu. Once active, left-click anywhere in a view and the marker jumps to the matching 3D point in every linked view simultaneously.

Tip

You don’t have to leave crosshair mode to adjust the image: hold Ctrl while dragging to change Window / Level without switching tools. See keyboard shortcuts for the full list of modifiers (most are customizable since v4.7.0).

3D Cursor 3D Cursor

Try it on a multi-series sample Launch

Info

The crosshair is the position-coupling part of a broader synchronization system. For action coupling (Scroll, Pan, Zoom, Window / Level…) between views sharing a Frame of Reference, see View Synchronization.

Info

For the conventions used to label anatomical directions in multiplanar views, see MPR orientation.

Preferences

The 3D cursor shares two display preferences with the MPR viewer:

  • Auto-center axes — recenter the views on the clicked point.
  • Crosshair gap at the center — width of the blank gap around the click point, so the marker does not occlude the structure being inspected.

Both are configured in the MPR preferences.

MPR Viewer

Multi-planar reconstruction (MPR)

The MPR viewer reconstructs the two complementary anatomical planes from a volumetric acquisition: starting from the original plane (typically axial), Weasis computes the corresponding coronal and sagittal views, all kept in sync through a shared 3D crosshair. Oblique planes are also supported, since Version4.6.0.

The MPR view inherits most of the properties and actions of the DICOM 2D viewer, with one structural difference: the crosshair tool stays active regardless of which mouse action is selected. Open the MPR viewer from the icon in the toolbar, or by right-clicking a thumbnail in the DICOM Explorer.

Note

The menu and toolbar entries are only enabled when the series contains at least 5 images.

Tip

If the series is a multi-phase 4D acquisition (e.g. a cardiac CT with several temporal phases), Weasis automatically splits it into individual phase sub-series when 2–7 phases are detected. For series with 8 or more phases, a confirmation dialog is shown first. Open any resulting phase sub-series to reconstruct it in the MPR viewer — see 4D Series Sub-Series Splitting.

Crosshair actions

The crosshair stays synchronized across the three MPR planes (and with any other FoR-coupled view). Three actions are available on its handles:

  • Move — translate the cursor in 3D space by dragging the center of the crosshair.
  • openhand Created with Sketch. openhand Move axis — slide the crosshair along one axis by selecting and dragging that line.
  • Rotate — rotate the crosshair around its center by dragging one of the end points along the axes.

Synchronization between MPR planes

The MPR viewer uses different sync defaults from the 2D viewer: in addition to the structural crosshair coupling, Scroll, Zoom, and Window / Level are ON by default between the three planes. The remaining per-action propagations (Pan, Rotation, Flip, Spatial unit) are off by default and can be enabled explicitly. The options live in two places:

  • The global Synchronize drop-down popup (next to the layout button) — master on/off plus per-action toggles for the whole container.
  • The Synchronize submenu in each MPR view’s settings popup — for per-view fine-tuning.

See View Synchronization in MPR for the full mechanics.

The MPR views can be reorganized into different layouts via the layout button.

View settings

Open the per-view settings popup with the icon in the top-right corner of any MPR view:

  • Center — recenter the crosshair in the view.
  • Show Center of Crosshair — show or hide the center point.
  • Show Crosshair — show or hide the crosshair lines. When hidden, the crosshair actions are inactive.
  • MIP Thickness — slab thickness for the active MIP projection, expressed in slices in the cross-axis direction. Can also be adjusted with Alt + mouse scroll on an axis. Note: the projection may take a moment to refresh, since MIP in MPR is computed in the background and does not use 3D acceleration.
  • MIP Type — projection mode applied to the slab:
    • None — no MIP applied.
    • Min — Minimum intensity projection.
    • Mean — Mean intensity projection.
    • Max — Maximum intensity projection.
  • Build a new series from the current view / Build three series from MPR views — save the reconstructed MPR slices back as new DICOM series (since Version4.7.0). The first option exports the current plane only; the second (in the All views submenu) exports the three planes, each as a separate series. Background borders are cropped uniformly across every slice so the exported series keeps a constant image size. The crosshair is restored to its initial position when the build completes.
  • Synchronize — per-view sync options: independent toggles for Scroll, Pan, Zoom, Rotation, Flip, Window / Level, Spatial unit, plus an Apply to all views entry that propagates the current selection to every other MPR view (see View Synchronization in MPR).
Note

Most MPR settings are also reachable via keyboard shortcuts — see the MPR shortcuts.

MPR MPR

Try it on a volume dataset Launch

Crosshair line colors

Each crosshair line represents the intersection of one of the other two planes with the current view. The line color identifies which plane it belongs to:

Color Plane Anatomical axis Visible in
Red Coronal Anterior → Posterior Axial, Sagittal
Green Axial Inferior → Superior Coronal, Sagittal
Blue Sagittal Right → Left Axial, Coronal

For oblique planes, line colors blend proportionally based on the contribution of the primary axes.

Orientation axes

The patient orientation axes are drawn in the top-left corner of each MPR view, indicating how the current slice is oriented in 3D space:

Color Direction
Red arrow Anterior → Posterior
Green arrow Inferior → Superior
Blue arrow Right → Left

See Orientation in multiplanar reconstruction (MPR) for the wider orientation-labeling conventions.

The same axes widget is also drawn in the 3D viewer since Version4.7.0.

Volume geometry handling

Since Version4.7.0, when Weasis detects that a volume cannot be reconstructed as a perfect rectilinear grid, a confirmation dialog appears before the MPR views are built. The conditions are evaluated in this priority order — only the first match triggers the dialog:

Condition Dialog message
Slices are not parallel Slice orientations are not parallel!
Slice spacing is irregular Space between slices is not regular!
Too few slices for the gantry tilt There are too few slices compared to the geometric deformation!

In each case the message ends with:

The images may be displayed incorrectly. Do you want to rectify the images anyway?

Dialog choices

  • Yes — Rectify geometry — re-slices the volume to align it with the patient’s anatomical orientation. Ensures correct spatial proportions for measurements and ratios across planes, at the cost of one interpolation pass that may slightly soften the image.
  • No — Stack images — stacks the original images directly, with no geometric correction. Preserves the full original image quality and avoids interpolation, but distances, ratios, and measurements may not reflect true anatomical values.
Tip

Pick Yes when accurate measurements matter. Pick No when image quality and the absence of interpolation artifacts take precedence.

Status indicator

A persistent red label is then shown in the bottom-left corner of every MPR view to indicate the active mode:

Choice Bottom-left indicator
Yes (rectify) Geometry aligned to patient orientation
No (stack) Patient geometry correction skipped — spatial accuracy may be reduced

Preferences

From the main menu File > Preferences > Viewer > MPR (since Version4.1.0):

  • Auto center axes — how the crosshair is recentered when it moves out of the visible area. Always recenters after every move; the default option only recenters when the position is almost no longer visible.
  • Crosshair gap at the center — size of the empty space drawn around the cursor point, so the marker does not occlude the structure being inspected.
  • Default layout — preferred layout used when opening the MPR viewer.

MIP Viewer

Maximum Intensity Projection (MIP)

MIP collapses a small stack of contiguous slices — a slab — into a single image by keeping the brightest voxel encountered along each ray through the slab. The technique is widely used to display high-intensity structures that would otherwise be split across many slices, such as contrast-enhanced vessels (CT/MR angiography), bones, or bright pulmonary nodules. MinIP (minimum) and Mean IP (average) projections are also available — useful for airways, low-attenuation lesions, or smoother integrated views.

Since Version4.7.0, MIP is no longer a standalone window. It is integrated directly into the DICOM 2D viewer, with full synchronization and a slab-geometry overlay shared with linked views.

MIP is also available in the other 3D-capable viewers, each with its own configuration:

  • MPR viewer — MIP can be enabled per view via the view configuration button, so the slab projection works on any reconstruction plane (axial / coronal / sagittal / oblique).
  • 3D Volume Renderer — offers MIP as a volume rendering type.

Activating MIP in the 2D viewer

Enable the projection from in the Basic 3D toolbar of the DICOM 2D viewer.

Note

The button is grayed out when the current series has fewer than 5 images — the minimum needed for a meaningful projection.

Tip

If the series is a multi-phase 4D acquisition (for example a cardiac CT with several temporal phases), Weasis automatically splits it into individual phase sub-series when 2–7 phases are detected. For series with 8 or more phases, a confirmation dialog is shown first. Open any resulting phase sub-series to use it in MIP mode — see 4D Series Sub-Series Splitting.

Once active, MIP in the 2D viewer provides:

  • Full synchronization — the slab stays aligned with the current slice position and follows any view synchronization you have configured.
  • Slab cross-lines — when another loaded series shares the same Frame of Reference and is shown in a different orientation, the standard cross-lines on that series are extended to show both edges of the slab instead of just the current slice position. The slab extent is therefore visible at a glance from a complementary plane.
  • Per-view indicator — once MIP is active on a view, the icon appears in the top-right corner of that view. Clicking it opens the same MIP options as the toolbar button, so you can tweak settings per view without leaving the layout.

MIP options

The MIP options panel can be opened from either of two places:

  • The button in the Basic 3D toolbar — applies to the currently selected view.
  • The indicator in the top-right corner of any view that already has MIP active.

MIP Options MIP Options

Note

Annotations and measurements can be added on a MIP-projected image, but they are not persistent when scrolling: each annotation is tied to the exact slice position on which it was drawn, and disappears as soon as you navigate away. To keep annotations attached to a specific MIP configuration, build a new series from those options.

Projection

The projection type controls how each pixel of the output is computed across the slab:

  • None — no projection; display the original image.
  • Min — Minimum Intensity Projection.
  • Mean — Mean Intensity Projection.
  • Max — Maximum Intensity Projection.

Switching from None to any of the projection types initializes the slab thickness to 2 slices (2 slices before and 2 slices after the current one).

MIP thickness

Defines the extent of the slab used for the projection — expressed as a number of slices before and after the current one (e.g. a value of 3 means 3 slices on each side of the current slice, 7 slices total in the slab).

The dropdown shows suggested values, with the corresponding physical thickness in millimeters shown in parentheses when the series is spatially calibrated (e.g. 5 (3.5 mm)). The last entry, Custom thickness, lets you type any value manually.

Build a new series

Builds a new MIP series from the current options — every slice of the source series is reprojected with the chosen projection type and slab thickness, and the result is stored as a standalone series. The new series is added to the DICOM Explorer and can be exported like any other series. Annotations drawn on the new series are persistent since they are no longer tied to a live slab calculation.

DICOM 3D Viewer

Displaying volume data

The 3D viewer reconstructs a CT, MR, PET, or other volumetric series into an interactive volume rendering that can be rotated, sliced, recolored, and lit in real time. Typical uses include reviewing CT angiography, inspecting bone or vascular anatomy, surgical-planning views, and quickly conveying findings to colleagues or patients. Available since Version4.1.0, with major rendering and synchronization improvements in Version4.7.0.

Internally, the volume is rendered on the graphics card using a ray-casting algorithm implemented in GLSL shaders, so a modern GPU is required (see Requirements) but no extra installation step is necessary.

Requirements

The graphics-card capabilities used by Weasis are reported under OpenGL Support in File > Preferences > Viewer > 3D Viewer:

  • Driver version — requires OpenGL 3.3+ since Version4.7.0. Two rendering backends are used depending on the available OpenGL version:
    • OpenGL 4.3+ — uses a Compute Shader for optimal performance.
    • OpenGL 3.3 – 4.2 — uses an FBO-based Fragment Shader fallback (fully functional, but may be less performant than the Compute Shader path). macOS is capped at OpenGL 4.1 and therefore always uses this path.
  • Max 3D texture dimension length — the upper limit, in voxels, of any X / Y / Z dimension of the volume.
  • Any other entry shown in red indicates a non-optimal configuration. The viewer often still works — see how to limit the size of 3D textures if performance becomes an issue.
Note

If Weasis reports a graphics card that is not the one you expected, the choice is made by the graphics driver and the operating system, not by Weasis. OpenGL itself has no API to select a specific card; consult your OS’s GPU-selection settings for the application.

Open the 3D viewer

Open the viewer by clicking in the toolbar of a series view, by double-clicking the series thumbnail, or by right-clicking the thumbnail in the DICOM Explorer and choosing the 3D viewer.

Tip

If the series is a multi-phase 4D acquisition (e.g. a cardiac CT with several temporal phases), Weasis automatically splits it into individual phase sub-series when 2–7 phases are detected. For series with 8 or more phases, a confirmation dialog is shown first. Open any resulting phase sub-series to render it in the 3D viewer. See 4D Series Sub-Series Splitting for details.

Try it on a volume dataset (Medical Demos from data.kitware.com) Launch

3D View 3D View

The same patient orientation axes as the MPR views are drawn in the 3D view since Version4.7.0.

Info

DICOM SEG segmentations linked to the series are rendered in the 3D viewer too — see Segmentation overlay in the 3D Volume Renderer.

Toolbar A

Actions in the toolbar:

  • Reload volume — fully reloads the volume from the source series.
  • Orthographic / Perspective projection — toggles between orthographic projection (parallel lines preserved, no foreshortening — useful for measurements) and perspective projection (depth cues, more natural-looking view). Perspective is the default.
  • MPR Crosshair Cut — opens the cut mode to interactively clip the rendered volume along the anatomical planes defined by the MPR crosshair.
  • 3D preferences — opens the Preferences.

Other toolbar buttons (LUT, reset, layout, synchronize…) are documented in the sections below.

MPR Crosshair Cut Mode

Since Version4.7.0 the 3D viewer can display an MPR crosshair overlay synchronized with the MPR viewer, allowing you to clip the rendered volume along the anatomical planes defined by the crosshair position and orientation. The crosshair position and rotation stay synchronized in real time between the 2D MPR planes and the 3D rendering.

  1. Open the MPR viewer from a series view.
  2. In the MPR toolbar, click — this splits the current tab into a side-by-side layout with the MPR views on one side and the 3D volume rendering on the other.
  3. In the 3D view, activate a cut mode using the toolbar button or by right-clicking and selecting MPR Crosshair Cut.

Alternative workflow

Open the 3D viewer first, then activate a cut mode from the toolbar or the right-click menu. The MPR viewer opens automatically for the same series, but in a separate tab. To obtain the side-by-side layout, drag the MPR tab and dock it next to the 3D view using the docking handles.

Cut modes

  • No cut — no clipping; the full volume is rendered.
  • 18 directional modes — clip the volume in halves, quarters, or eighths relative to the MPR crosshair position, along each anatomical axis (Left / Right, Anterior / Posterior, Superior / Inferior).

The crosshair overlay uses the same LPS axis color coding as the MPR viewer.

3D View Synchronization

Since Version4.7.0 the 3D viewer can host multiple side-by-side views of the same volume and keep them coordinated. Because every 3D view in the container shows the same volume, the auto-sync button is always visible. A single synchronization profile bundles a per-action toggle list with camera-level actions enabled by default and photometric / rendering actions left opt-in.

Toolbar “Synchronize” checkbox

The Synchronize checkbox in the toolbar drives the global on/off state for the 3D container. It defaults to ON. Toggling it propagates the new state to every per-view auto-sync button on the next refresh.

Per-view auto-sync button

When the layout has two or more views, a small auto-sync button appears in the bottom-right corner of each view. Its tint reflects the per-view state — red when sync is OFF for the view, green when ON. Clicking the button opens a popup with:

  • Synchronize this view — master on/off toggle for auto-sync on this view (also mirrored into the toolbar Synchronize checkbox so the toolbar state always reflects the active view).
  • Per-action toggles — independent checkboxes that decide which actions this view propagates to (and receives from) the other 3D views. The popup stays open while you flip several options.
  • Apply to all views — copies this view’s effective per-action map to every other 3D view in the container. Unlike the 2D variant of this entry, no FoR filtering is applied because all 3D views share the same volume.

Right-click “Synchronize” submenu

The view’s right-click context menu also exposes a Synchronize submenu with the same per-action toggles and the same Apply to all views entry, useful when you want to adjust the sync map without first enabling/disabling the master toggle.

Per-action defaults

Group Action Default
Camera Pan ON
Camera Zoom ON
Camera Rotation (slider rotation + axis selection) ON
Photometric Window / Level OFF
Photometric Preset OFF
Photometric LUT Shape OFF
Photometric Invert LUT OFF
Photometric LUT OFF
Rendering Rendering Type OFF
Rendering Volume Opacity OFF
Rendering Volume Shading OFF
Rendering Orthographic projection OFF
Rendering MPR Crosshair Cut OFF

Camera-level actions are on by default because keeping multiple 3D views framed identically is the common workflow when comparing rendering types or LUT presets side by side. Photometric and rendering actions are opt-in because the typical reason to open a second 3D view is to diverge on those settings (e.g. one view in Composite with a soft-tissue LUT, the other in MIP).

Note

The view you are actively interacting with always applies its own changes locally, even when the corresponding action is unchecked in its sync map. Only other views gate on the per-action toggle. This keeps sliders and mouse drags responsive while letting you decide which actions propagate to the rest of the container.

3D Rendering Tools

This tab groups every control that affects how the volume is rendered. To return to the original settings, click the toolbar button or pick Reset from the context menu.

Windowing and Rendering B

Some of the options below are also accessible from the toolbar and the right-click menu.

  • Window — width of the voxel-value range mapped to the displayed value range.
  • Level — center of the range defined by Window.
  • LUT Shape — transfer function applied between input and display values: linear, sigmoid, or logarithmic. Default is linear.
  • LUT — a 3D Lookup Table that maps grayscale voxel values to color, opacity, and lighting for visualization. Picking a LUT from the toolbar or the right-click menu is usually easier: LUTs there are ordered by modality and shown with a preview.
  • Invert LUT — flips the LUT direction.

Volume Rendering C

Controls for the rendering algorithm, quality, transparency, lighting, and shading.

  • Type — defines the rendering algorithm applied to the volume:
    • Composite — classic volume rendering. Each voxel contributes color and opacity along the ray, blended front-to-back to produce the final image.
    • MIP Max — Maximum Intensity Projection. Keeps the highest-intensity voxel encountered along each ray. Useful for highlighting bright structures such as contrast-enhanced vessels or bones.
    • MinIP — Minimum Intensity Projection. Keeps the lowest-intensity voxel along each ray. Useful for visualizing air-filled structures such as airways.
    • MIP Mean — Mean Intensity Projection. Averages intensities along each ray, producing a smoother representation of the volume.
    • Iso Surface — renders a 3D surface at a given intensity threshold, representing structures of a uniform density (e.g. bone segmentation).
  • Z-axis sampling — distance between successive samples along each ray. Smaller values capture more detail at the cost of compute time; the default is derived from the volume size.
  • Opacity — global opacity factor for the voxels. Can be pushed above 100 % to compensate for the lower-than-100 % values defined by some Volume LUTs.
  • Shading — enables shading on the rendered surface. The default is taken from the Volume LUT; the additional options let you override the inherited lighting settings.

Transform D

Zoom the volume and rotate it around the three patient axes:

  • Zoom slider — scales the rendering.
  • Rotation sliders — rotate around the Left / Right, Anterior / Posterior, and Superior / Inferior axes (LPS coordinate system).

Preferences

From the menu File > Preferences > Viewer > 3D Viewer.

OpenGL Support

Information about the graphics card and OpenGL capabilities, see Requirements.

3D Viewer

  • Default layout — preferred layout used when opening the 3D viewer. Available layouts: 1×1 (single view, default), 1×2, 2×1, 1×3, 2×2.
  • Max 3D texture size — maximum volume dimensions, both in X / Y (image width and height) and in Z (number of images in the stack composing the volume).
Note

The maximum 3D texture defaults come from the graphics card. Lowering them (e.g. to 512) can produce a more fluid rendering on hardware that struggles with the full-size texture.

Volume Rendering

  • Dynamic quality — reduces the rendering quality along the Z axis while you rotate or modify the view, for a smoother interaction. At the maximum slider position there is no quality reduction.
  • Default orientation — preferred starting orientation. Default: anterior view rotated 15° to the right and 15° downward.
  • Background color — background color of the rendered scene.
  • Light color — color of the light used to illuminate the rendering.

Video tutorials

Display an MR angiography series as a volume rendering, then switch to a MIP projection or pick a 3D LUT and adjust the window / level values:

DICOM ECG Viewer

Displaying electrocardiography data

The ECG viewer displays and analyzes electrocardiogram waveforms stored as DICOM Waveform objects — resting and stress 12-lead ECGs, ambulatory recordings, and rhythm strips. It also provides simple on-screen calipers for measuring intervals and amplitudes, with support for the common lead layouts (12-lead, 3-lead, rhythm strip).

Try to open an ECG sample Launch

ECG Viewer ECG Viewer

Toolbar A

Actions in the toolbar are:

  • Print the ECG as displayed, with basic patient and study identification.
  • Show DICOM metadata of the waveform object — opens the full DICOM attributes.
  • Clear all measurements (the yellow caliper bands in the image above), see Markers.

Zoom and Display Format B

Three controls govern how the traces are drawn:

  • Time scale (X-axis) — millimeters per second; defaults to auto mm/s, which fits the recording to the available width.
  • Voltage scale (Y-axis) — millimeters per millivolt; defaults to auto mm/mV, which fits the dynamic range vertically.
  • Aspect-preserving zoom slider — scales both axes together so the visual aspect ratio is preserved.

The Display Format menu chooses the lead layout (e.g. 12 × 1, 6 × 2, 3 × 4 + rhythm strip), independent of the zoom.

Lead and Cursor information C

Moving the cursor over the traces updates two readouts:

  • Lead label — minimum and maximum voltage observed on that lead across the whole recording.
  • Cursor readout — time and voltage at the cursor position.

Markers D

Markers are on-screen calipers (yellow bands above) defined by a start and an end point on the same lead. Each marker reports:

Field Meaning
Start Time Time in seconds at the first point
Start Value Voltage in millivolts at the first point
Stop Time Time in seconds at the second point
Stop Value Voltage in millivolts at the second point
Duration Elapsed time between the two points
Difference Signed voltage difference (Stop ValueStart Value)
Amplitude Maximum voltage variation observed between the two points

Mouse actions:

  • Add a start point — click
  • Add an end point — Ctrl + click, or right-click
  • Delete the measurement on a lead — middle-click, or Shift + click
  • Delete every measurement — the toolbar button above
Note

Only one measurement can be active per lead. Placing a new start point on a lead that already has one replaces it.

Annotations E

The annotations panel surfaces two related groups of DICOM metadata stored with the waveform:

  • Acquisition Context — conditions present during recording (patient state, electrode placement, device settings, etc.).
  • Waveform Annotations — measurements, classifications, regions of interest, or events that may affect interpretation (for example, the timestamp at which the subject coughed or moved).

DICOM SR Viewer

Displaying DICOM Structured Report

A DICOM Structured Report (SR) carries structured findings — measurements, observations, classifications, and references back to the images they were derived from — as a hierarchical tree of content items rather than free-form text. SRs are produced by radiology reporting systems, ultrasound machines, CAD applications, and increasingly by AI inference frameworks that need to expose machine-readable results.

Weasis renders the SR tree on the right and the image referenced by the currently selected item on the left, so you can read a finding and inspect the underlying image at the same time.

Try to open sample SR files Launch

SR Viewer SR Viewer

Toolbar A

Actions in the toolbar:

  • Print — print the rendered SR.
  • Show DICOM metadata — open the full DICOM attributes of the SR object.

Display SR Header B

The SR header is displayed as a three-column table summarizing the patient identification, the study context, and the report status (e.g. Partial, Complete, Verified, Cancelled).

DICOM SR Tree C

The content of the SR is displayed as a hierarchical tree. Each node is a content item with its own number, a concept name (what the item describes — e.g. Finding Site, Length, CAD Output) and a value (text, code, numeric measurement, date/time, image reference, or composite reference). The hierarchy and the inter-item links mirror the relationships defined in the SR object — typically following one of the standard DICOM templates (TIDs) used in radiology, ultrasound, or AI reporting.

Some items also carry a link to a referenced image or region. Clicking such a link opens the corresponding image in the 2D viewer and, when the SR contains coordinate data, draws the referenced geometry on top of it (for example, clicking the POLYLINE node in the screenshot above opens the source image and displays the polyline measurement at its recorded position).

Weasis renders the standard SR graphic typesPOINT, MULTIPOINT, POLYLINE, CIRCLE, ELLIPSE — and, since v4.7.0, a subset of the SR compound graphic typesMULTILINE, RULER, ARROW, RECTANGLE — for richer overlays carried by the SR Compound Graphic module.

DICOM Audio Player

Playing DICOM AU data

The DICOM Audio SOP Class (commonly referred to as DICOM AU) stores waveform audio inside a DICOM object. It is most often used for voice annotations dictated by the technologist or radiologist, Doppler ultrasound audio, phonocardiography, and other acoustic signals captured alongside an imaging study.

Weasis opens these objects in a dedicated player launched by double-clicking the audio thumbnail in the DICOM Explorer.

Try to open a DICOM AU sample Launch

Audio Player Audio Player

Toolbar A

Play B

The Play button toggles between playback and pause. The slider lets you scrub through the recording; the current position is displayed in seconds.

Volume C

Adjusts playback volume independently of the system mixer.

Export Audio File D

Saves the embedded waveform to disk as either:

  • AU — the format used by the DICOM payload itself, preserved as-is.
  • WAVE (.wav) — re-encoded for broad compatibility with consumer audio players and editors.

Draw & Measure

How to draw and measure on images

The Draw & Measure panel lets you annotate and measure on DICOM and standard images — distances, angles, areas, regions of interest, free-hand shapes, and text labels. Measurement values are computed from the image’s spatial calibration when available, and from pixel statistics when the shape is closed.

Draw & Measure Draw & Measure

Where the results are persisted depends on the image type:

  • For DICOM images — saved into a DICOM Presentation State (GSPS) object that travels with the study.
  • For standard images — saved into an XML file in the same directory as the image (when the image is exported in a non-DICOM format). The XML file is loaded automatically the next time the image is opened in the 2D viewer.

Draw & Measure Panel

Click on the vertical button to dock the panel on the right side of the viewer. The panel is divided into four parts:

Measurement tools A

Click a measurement tool and then draw on the image. Picking a tool here also becomes the active action on the left mouse button.

The first button is the selection tool — used to select, resize, and move existing graphic objects.

Once one or more graphics are selected, you can change their properties (color, line width…) or copy/paste them through the right-click menu. The selection can be removed with the Delete key or . See the full list of graphic shortcuts.

Note

A segment can be drawn in two equivalent ways:

  1. Click + Drag — click, drag to draw, release.
  2. Click > Release > Drag — click to set the start point, release, drag to draw, click again to set the end point.

To keep the same tool active for several draws in a row, uncheck Draw only once (see Graphic Options).

Tip

For a polyline or polygon, double-click to finish editing. Right-clicking a vertex offers add / delete actions on that specific point.

Rectangles and ellipses can be drawn at any angle. The external control points rotate and resize the shape; the single control point on the opposite side resizes only.

Drawings B

The drawing buttons add text and graphic annotations. These objects are purely decorative — they do not display measurement values and do not appear in the Selected Measurement table.

Graphic Options C

  • Line color — default color for new graphics (default: yellow). The transparency / alpha slider in the color picker controls opacity.
  • Line width — default line width.
  • Draw only once — when checked, the tool reverts to the selection mode after each draw. Uncheck to keep the same tool active for successive draws.
  • Pixel statistics — compute and display statistics of the pixel values inside the shape. Only meaningful for closed shapes (rectangle, ellipse, polygon).
  • Unit — unit of the image’s spatial calibration. When the image has no calibration, the unit falls back to pixels. See How to change the spatial calibration.
  • More options — opens the Draw & Measure preferences for the deeper display options.
Tip

All graphics can be shown or hidden at once from the Display panel by checking or unchecking the Drawings option.

Selected Measurement D

The graphic E currently selected on the image is summarized in this table. The reported properties depend on the measurement type, with units shown in square brackets when present (see the calibration type at M).

Note

For polygons, length, width, and orientation are computed with the OMBB (Oriented Minimum Bounding Box) method — a tighter bounding box than the axis-aligned one, giving a more accurate approximation of the polygon’s real dimensions.

When Pixel statistics is checked, the table also reports descriptors computed from the pixels enclosed by the (closed) shape:

  • Pixels — number of pixels inside the shape.
  • Min — minimum modality value.
  • Max — maximum modality value.
  • Median — median modality value.
  • Mean — mean modality value.
  • StDev — standard deviation; a measure of how dispersed the values are.
  • Skewness — asymmetry of the value distribution.
  • Kurtosis — “tailedness” of the value distribution.
Note

SUV (Standardized Uptake Value) measurements are added to the table on PET images when the required metadata is present (patient weight, decay correction, radiopharmaceutical dose, acquisition time, …). Min / Max / Mean SUV are computed with the body-weight method (SUVbw), following the vendor-neutral QIBA definition.

Tip

The table can be exported by copy / paste. The copied values use the full numerical precision, not the rounded values shown on screen.

Preferences

From the main menu File > Preferences > Draw & Measure.

Drawings

Default graphic properties applied when drawing new objects — since Version4.3.0.

  • Line color — default color (default: yellow). The transparency / alpha slider in the color picker controls opacity.
  • Line width — default line width.
  • Fill shape — when checked, the interior of the shape is filled with the line color.
  • Fill opacity — opacity of the interior, relative to the line color’s opacity. Default: 100 %. Example: line opacity 80 % × fill opacity 20 % → perceived interior opacity 16 %.

Labels on image

Display options for the labels attached to measurement graphics.

  • Font type — default font size for the on-image labels (default: Small semibold). The size is not absolute — it adjusts automatically with the interface scale factor.
  • Geometric measurement — which geometric measurements are displayed on the image for each graphic type.
  • Pixel statistics — which pixel statistics are displayed on the image for closed shapes (rectangle, ellipse, polygon).

DICOM RT Tools

Displaying radiotherapy information

Radiotherapy treatment data is distributed across three companion DICOM objects:

  • RTSTRUCT — contoured structures (target volumes, organs at risk, body outline) referenced to a planning CT.
  • RTPLAN — prescribed dose, fractionation, beam geometry, and machine setup.
  • RTDOSE — the computed dose distribution as a 3D pixel grid, with optional pre-computed DVH histograms.

When a CT series is loaded together with its associated RTSTRUCT, RTPLAN, and RTDOSE files, Weasis automatically links them and the RT Tool appears in the right panel.

How to display structures

  1. Click Load RT to load the linked DICOM STRUCT, PLAN, and DOSE objects. The button becomes inactive once loading completes.
  2. InfoOptional Select a structure set if more than one is available.
  3. InfoOptional Select a plan if more than one is available.

Try to open an RT sample Launch

DICOM STRUCT DICOM STRUCT

Note

The region tree exposes a context menu with the following actions:

  • Select / unselect all child nodes (parent nodes only) — toggle visibility for every sub-region in a group at once.
  • Fill opacity — controls the transparency of the region’s interior relative to its border.
    • Default value: 20%
    • Perceived opacity = Line opacity × Fill opacity
    • Example: 80 % line + 20 % fill → 16 % perceived interior opacity.
  • Export to clipboard as CSV — copies region data (volume measurements, dose calculations) for analysis in spreadsheets or external tools.
  • Pixel statistics from the selected view (leaf nodes only) — computes statistical descriptors of pixel values inside the region. For the parameter definitions, see Pixel Statistics.

How to display isodoses

  1. Switch to the Isodoses tab.
  2. Check the Isodoses root node — it is unchecked by default.
  3. InfoOptional Adjust the graphic opacity (default: 50 %).

DICOM DOSE DICOM DOSE

Tip

The Structures and Isodoses root nodes act as master switches — toggle them to show or hide all overlays at once, while child nodes keep individual control over specific items.

Note

Since Version4.7.0 the isodose overlay is rendered directly from the RTDOSE pixel grid (resampled to the CT image grid using nearest-neighbor interpolation) instead of vector contours. This provides a more faithful representation of the dose distribution stored in the DICOM file, especially around steep dose gradients.

How to display the DVH chart

The Dose-Volume Histogram (DVH) summarizes, for each selected structure, the fraction of its volume that receives at least a given dose level — the standard way to compare plans and check organ-at-risk constraints.

  • Select one or several structures (the Structures root node must also be selected).
  • Click Display DVH chart.
  • Right-click on the chart to print or save as PNG, or as a vector file (SVG, EPS).

DICOM DVH DICOM DVH

Warning

Since Version4.7.0, when one or more selected structures have no DVH stored in the RTDOSE, a confirmation dialog lists the affected structures and offers to compute the missing histograms on the fly.

The calculation algorithm (derived from dicompyler) is experimental and not clinically validated: results must not be used for medical decisions. The feature can be disabled by setting the system preference weasis.rt.dvh.recalculate.enable to false; when disabled, only DVHs already stored in the RTDOSE are displayed.

DICOM Attributes

How to display DICOM attributes

Every DICOM object carries a set of attributes (also called tags or metadata) that describe the patient, the study, the acquisition device, the imaging parameters, and so on. Weasis can display these attributes in two ways — a dynamic in-layout view that follows the current image, or a detached window snapshot of a single instance.

Opening the DICOM attributes

Open the DICOM attributes either by:

  • selecting the DICOM Information layout from the layouts dropdown A, or
  • clicking the DICOM Information button in the toolbar to open a detached window B.

Tags Tags

Note

The two display modes behave differently when you scroll:

  • In-layout view (A) — the attributes are updated dynamically and reflect the currently displayed image (useful while scrolling through a series).
  • Detached window (B) — the attributes are a snapshot of the instance that was active when the window was opened. They do not update when you scroll.

When Weasis opens certain DICOM payloads with an external application (e.g. encapsulated PDF or video), the attributes can still be inspected from the thumbnail right-click menu.

Open DICOM PDF tags Open DICOM PDF tags

How to find a specific DICOM attribute or value

The DICOM Information window has two tabs:

  • Limited DICOM attributes — the main attributes grouped by category (a curated subset for everyday use).
  • All DICOM attributes — every attribute present in the file. Each data element is shown in four columns: Tag ID, VR, Tag Name, Value.
Note

When a data element holds multiple values, they are separated by a single backslash \.

Data elements whose Value Representation (VR) is one of OB, OD, OL, OF, OW, or UN — binary VRs used for pixel data, lookup tables, and other large byte streams — display binary data in place of the actual bytes.

Search DICOM tags Search DICOM tags

The example above searches for the word date. The procedure is:

  1. Switch to the All DICOM attributes tab so every attribute is searchable.
  2. Type the search term in the search field.
  3. Use the navigation arrows to jump between highlighted matches. The rightmost button filters the list to only the matching rows (instead of just highlighting them inside the full list).

Using in the toolbar applies a persistent filter on the attribute list — useful when you want to keep the focus on a specific set of attributes while scrolling through a stack of images (in-layout view A) only).

Note

Some attributes are nested inside a sequence element (marker (5) in the screenshot). The arrow on the left of a row shows the nesting depth — sequences can themselves contain sequences.

Tip

When a value is too long to fit:

  • Resize the column from its header — the new width is kept until the displayed image changes.
  • Hover the cell to read the full value as a tooltip (since Version4.3.0).
Tip

The selected DICOM attributes can be copied to the clipboard with the standard copy shortcut of your operating system. Paste into a spreadsheet, a text editor, or a bug report.

Lookup Tables (LUT)

How to handle Color and DICOM LUTs

A Lookup Table (LUT) maps each input pixel value to an output value used somewhere along the rendering pipeline — turning raw acquisition numbers into the contrast, the color, and the brightness you actually see on screen. The DICOM rendering pipeline chains four kinds of LUT, each applied at a different stage:

  1. Modality LUT — converts raw pixel values into physical modality values (e.g. Hounsfield units for CT).
  2. Values of Interest (VOI) LUT — maps the modality values into a visible intensity range, enhancing specific anatomical structures or pathological conditions (this is what the Window / Level controls).
  3. Presentation LUT — converts the intensity values into P-Values: device-independent values calibrated to human perception (used to render consistently across monitors).
  4. Palette Color LUT — replaces grayscale intensity values with colors, producing a pseudo-color rendering.
Note

The Modality LUT and the Palette Color LUT are applied automatically when present in the DICOM file — there are no controls in the user interface to override them.

Windowing and Rendering

Windowing and Rendering is a panel in Image Tools of the 2D viewer, exposing the user-controllable parts of the LUT pipeline. The same controls are also accessible from the Lookup Table toolbar, the main menu, and the right-click menu.

  • Window — width of the input range mapped to the displayed values. Change it via the slider, or by selecting Window / Level in the mouse actions.
  • Level — center of the range defined by Window. Same input options as above.
  • Preset — picks a predefined Window / Level pair. The dropdown is ordered as:
    • An empty entry, shown while Window and Level are being adjusted manually (slider or mouse drag).
    • Window / Level pairs or VOI LUT data carried by the DICOM file (suffixed with [DICOM]). The default selection is the first [DICOM] entry when present, otherwise Auto Level [Image].
    • Auto Level [Image] (always shown) — Window and Level computed from the full pixel-value range of the current image.
    • Modality-specific presets (e.g. Lung, Bone, Soft Tissue for CT).
  • LUT Shape — the transfer function used between input and display: linear (default), sigmoid, or logarithmic.
  • LUT — pseudo-color LUT applied on top of the grayscale image. Default (image) keeps the original image color model. Picking a LUT from the toolbar or the menus is usually easier because each entry is shown with a preview.
  • Invert LUT — flips the LUT direction (dark↔bright, or reversed color mapping).
  • Filter — 2D image filter applied before the LUT, useful for enhancing image quality or highlighting specific structures. Default: None.
Tip

To overlay the active LUT bar on the image, enable it from the Display panel on the right. The values labeled on the bar correspond to the Modality LUT values (e.g. Hounsfield units for CT) when one is defined, or to raw pixel values otherwise.

To inspect how the current Window / Level reshapes the pixel distribution, switch to the Histogram layout.

Build DICOM KO and PR

How to build and export DICOM KO and PR

Weasis can author two standard DICOM annotation objects directly from the viewer:

  • Key Object Selection (KO) — a list of “key images” inside a series. Use it to flag the slices that matter for a finding so a reader can scroll only through those.
  • Presentation State (PR / GSPS) — drawings, measurements, and other graphic overlays that reference the source images. Use it to share findings across systems without baking annotations into the pixels.

Both objects can be saved as proper DICOM files and sent to a PACS through the standard DICOM Export workflow, so they travel with the study and can be re-applied by any DICOM-compatible viewer.

Key Object Selection (KO)

To make the KO controls visible, enable the Key Object Selection toolbar from View > Toolbars > Key Object Selection Toolbar in the main menu.

When a DICOM KO is loaded with the series, it appears in the explorer menu (1) and can also be picked from the icon on the right side of the view (6). KO objects created in Weasis behave the same way.

Build KO Build KO

Actions available in the KO toolbar:

  • Apply a KO (2) — select which KO drives the current view.
  • Mark / unmark a key image (3) — click the star icon, or press K (default — customizable since v4.7.0 in Keyboard Shortcuts) to add the current image to the active KO, or create a new one if none exists yet.
  • Filter to key images only (4) — when active, scrolling skips every image that is not part of the selected KO, so you see only the flagged slices.
  • Create / delete a KO (5) — start a new KO (optionally seeded from an existing one) or delete a KO. Only KOs created by Weasis can be deleted.

Presentation State (PR or GSPS)

  • Apply a PR loaded from a DICOM file (1) — since Version2.6.0, PRs are not applied automatically; click the dedicated icon (2) above the image to apply one. To have the most recent PR applied by default, enable Apply by default the most recent Presentation State under File > Preferences (Alt + P) (also configurable through the default preferences).
  • Create a new PR — any drawing or measurement (see Draw & Measure) can be exported into a DICOM Presentation State. Image-rendering parameters (zoom, calibration, window/level, LUT…) are not yet included in the exported PR.

Build PR Build PR

Exporting Key Object Selection or Presentation State

Newly created KO and PR objects are exported through the standard DICOM Export dialog — open it from the toolbar icon or from File > Export > DICOM.

Export KO locally Export KO locally

  1. Pick the export destination — Local Device, DICOM Send, or CD/DVD Image (see DICOM Export for the per-destination options).
  2. Choose the export options. Series created inside Weasis (including new KO and PR objects) are flagged NEW in the selection tree.
  3. Select the patient(s), study, series, or individual instances to export.
  4. Click Export to write or transfer the files, then close the window.

DICOM SEG

Displaying DICOM Segmentation

DICOM Segmentation (SEG) stores pixel-based labels — anatomical structures, lesions, organs at risk — as a separate object that references a source image series. It is the standard delivery format for AI segmentation frameworks, but also for manual or semi-automatic contouring tools.

Weasis displays SEG regions as a colored overlay on the source images, with independent visibility and opacity control per region. Available since Version4.3.0; significantly extended in Version4.7.0 with:

  • Overlays in MPR and 3D Volume Renderer views, in addition to the standard 2D viewer.
  • Simultaneous display of all SEG files linked to the current series, each toggleable independently.
  • Support for the FRACTIONAL (probability / occupancy maps) and LABELMAP (multi-segment files used by tools like highdicom) segmentation types produced by modern AI frameworks.
  • The same smooth fractional overlay reused for RT Dose isodose rendering — see the RT tutorial.

How to display DICOM SEG in the 2D viewer

To display the SEG regions as an overlay on the image, follow these steps (see the image below):

  1. Open a DICOM series that has a linked SEG object. The link is indicated by the segmentation icon in the lower-right corner of the thumbnail.
  2. Once the image is displayed, click on the vertical button to open the Segmentation panel on the right side of the viewer.
  3. Every SEG file linked to the current series appears as a top-level node in the tree. Expand a SEG node to reveal its regions and tick the ones you want to display. Regions that share a common name prefix are grouped under a parent node — the parent must be checked for any of its children to be visible.
  4. InfoOptional Adjust the global graphic opacity (border and interior fill) with the slider.
  5. InfoOptional Use tooltips to see the region description, voxel count and estimated volume for each region. For FRACTIONAL regions a color-gradient bar is also displayed to help interpret the probability ramp.

Try to open a SEG sample Launch

DICOM SEG DICOM SEG

Note

Right-click on a region in the tree to access:

  • Select / unselect all child nodes (parent only) — toggle visibility for every child region at once.
  • Fill opacity — transparency of a region’s interior relative to its border.
    • Default: 20 %
    • Perceived opacity = Line opacity × Fill opacity
    • Example: 80 % line + 20 % fill → 16 % perceived interior opacity.
  • Show in the image view (leaf only) — jumps to the slice where the region has its largest cross-section.
  • Pixel statistics from the selected view (leaf only) — computes statistical descriptors of pixel values inside the region. For the parameter definitions, see Pixel Statistics.
Note

Loading a DICOM SEG. The first time a SEG is shown — in the 2D viewer, MPR or 3D — Weasis decodes it in the background. Scrolling and other interactions remain responsive while decoding runs; the regions appear as soon as the SEG is ready.

A cancelable progress entry is shown at the bottom of the DICOM Explorer, so a large or slow SEG can be canceled without blocking the rest of your work.

Once decoded, the SEG is shared between the 2D, MPR and 3D views — loaded only once even with several views open. Weasis may release it automatically when memory gets tight and reload it on demand the next time it is needed.


Supported segmentation types

Weasis supports all three DICOM SEG segmentation types:

Type What it represents How Weasis displays it
BINARY Each pixel is either inside or outside the segment. Colored contour drawn on the image.
FRACTIONAL — PROBABILITY Each pixel carries a value between 0 and 1 expressing how confident the AI is that the pixel belongs to the segment. Smooth colored overlay: more transparent where confidence is low, more opaque where it is high. The opacity slider scales the whole gradient.
FRACTIONAL — OCCUPANCY Each pixel carries a value between 0 and 1 expressing how much of the pixel is actually covered by the segment (partial-volume fraction). Same smooth overlay as PROBABILITY — only the meaning of the value differs.
LABELMAP Several segments are packed into a single image, with the pixel value identifying which segment it belongs to. Each segment is extracted automatically and drawn with its own color.
Note

Some AI frameworks export FRACTIONAL segmentations without an explicit reference back to the source series. Weasis matches them to the correct images automatically (via the DICOM frame of reference).


Segmentation overlay in MPR

When a DICOM SEG is linked to the current series, the overlay is automatically available in the Multi-Planar Reconstruction (MPR) view. The same Segmentation panel controls visibility and opacity for all three planes (axial, coronal, sagittal — plus any oblique cut) at once.

For MPR, Weasis additionally has to reslice the SEG along the new planes. This extra step runs in the background; the overlay appears on every plane as soon as it completes.

Tip

The MPR overlay works even when the SEG has a different orientation, spacing or scanning direction than the source images — for example an AI model that segments at a coarser resolution. Weasis reprojects the mask into the image coordinate system, so contours stay aligned on every plane.

DICOM SEG DICOM SEG


Segmentation overlay in the 3D Volume Renderer

The 3D Volume Renderer offers three segmentation modes, selectable from the Segmentation panel:

Mode What it shows
No segmentation Volume rendering only — no overlay.
Segmentation only Only the labeled regions are rendered; the anatomy is hidden. Useful to review the AI output on its own.
Segmentation overlay Regions are drawn on top of the volume rendering, with the anatomy remaining visible beneath.

A few things to keep in mind when working with the 3D overlay:

  • Toggling a segment is instant. Visibility, color and opacity changes update the 3D view immediately, even on very large volumes — Weasis only refreshes the color table, not the segmentation itself.
  • Overlapping segments are handled cleanly. When two segments share the same area, their colors are blended automatically; you do not have to pick which one wins.
  • 2D, MPR and 3D stay in sync. Showing or hiding a segment in the panel updates all three views simultaneously.

AI DICOM Objects

DICOM objects generated by artificial intelligence

AI inference rarely defines its own file formats — instead, results are packaged as standard DICOM objects so any compliant PACS or viewer can ingest them. The same SOP Classes used for human-authored content (segmentations, structured reports, presentation states…) are reused to carry model outputs.

This page maps the AI-produced object types you are most likely to encounter to how Weasis displays them.

Category Object type What AI typically uses it for
Image outputs Secondary Capture Pre-rendered images with burned-in annotations or heatmaps
Enhanced Objects Denoised, super-resolved, or otherwise reconstructed images
Parametric Map Per-pixel probability maps, heatmaps, perfusion/diffusion maps
Overlays on source images Segmentation (SEG) Pixel-based labels for anatomy or lesions
RTSTRUCT Vector contours for anatomy or regions of interest
Presentation State (GSPS) Vector annotations, measurements, display settings
Reports & documents Structured Report (SR) Findings, measurements, classification results
Encapsulated Documents PDF reports, attached non-image data

Image outputs

These objects carry their own pixel data and are viewed as standalone images.

DICOM Secondary Capture (SC)

Pre-rendered images where the AI has burned its output directly into the pixels — typically annotations, heatmaps, or side-by-side comparisons. Convenient for legacy viewers, but the overlay cannot be toggled off or recomputed.

Info

Secondary Capture displays like any other image, see DICOM 2D Viewer.

DICOM Enhanced Objects

Reconstructed or post-processed images — for example denoised CTs, super-resolved MRs, or motion-corrected series. The output replaces or complements the original acquisition rather than annotating it.

Info

Enhanced images display like any other image. Overlays, shutters, and pixel padding stored in the object are honored by the rendering pipeline — see 2D Viewer Display.

DICOM Parametric Map (PMAP)

Single- or multi-frame images whose pixel values represent a derived quantity rather than an acquisition signal — common carriers for AI probability maps, class-activation heatmaps, perfusion (rCBF, rCBV, MTT), diffusion (ADC), and PET-derived metrics.

Info

Weasis renders Parametric Maps as standard images, including the float and double pixel representations that AI pipelines typically emit. Window/level and LUT controls apply normally — pick a suitable LUT to interpret the value range.

Image overlays

These objects do not contain a viewable image of their own; they reference a source series and are drawn on top of it.

DICOM Segmentation (SEG)

Pixel-based labels produced by segmentation models — anatomical structures, lesions, organs at risk, etc. Each segment is stored as a binary or fractional mask and is independently toggleable in the viewer.

Info

See DICOM SEG for displaying DICOM SEG objects in Weasis, including in MPR and the 3D Volume Renderer.

DICOM RTSTRUCT

Originally designed to describe contours for radiotherapy planning, RTSTRUCT is also used by AI tools that output vector geometry instead of pixel masks. Lighter to store than SEG, but inherently 2D per slice.

Info

See DICOM RT for displaying DICOM RTSTRUCT objects in Weasis.

TotalSegmentator is a good example: starting from version 2, its automatic segmentation of 100+ anatomical structures on CT can be exported as DICOM RTSTRUCT — and, in recent releases, as DICOM SEG as well — both of which load directly in Weasis without any extra configuration.

DICOM Presentation States (GSPS)

Grayscale Softcopy Presentation States store the display intent for an image — window/level, zoom, rotation — together with vector annotations and measurements. AI tools use them to ship findings as toggleable overlays on the original images rather than baking them into pixels.

Info

See DICOM PR for displaying DICOM Presentation States in Weasis.

Reports & documents

These objects carry structured or document content rather than imagery.

DICOM Structured Report (SR)

Tree-structured findings: measurements, classifications, observations, and references back to the images they describe. The standard delivery format for AI tools that need to expose interpretable, machine-readable results.

Info

DICOM Encapsulated Documents

Wrappers for non-image content (PDF, STL, MPEG, plain text…). Useful when an AI pipeline produces a full report or auxiliary artifact that would otherwise live outside the imaging study.

Info

Encapsulated documents are opened with the system application registered for the document MIME type. The DICOM attributes can be inspected from the thumbnail context menu.

Open DICOM PDF tags Open DICOM PDF tags

Zoom

Zoom Tool

The zoom tool changes how much of the image fits into the view. Beyond the standard “fit to screen” / “fit to pixel” magnifications, Weasis offers a Real-world Size mode that displays images at their actual physical dimensions on a calibrated monitor — useful for visual size estimation, surgical planning, or prosthesis sizing.

Basic zoom controls

There are several ways to adjust magnification:

  • Mouse drag — drag with the configured mouse button (middle mouse button by default; see the 2D viewer mouse actions to remap it).
  • Mouse wheel — when enabled in the preferences.
  • Toolbar dropdown — pick a preset zoom level.
  • Context menu — right-click → Zoom.
  • Image Tool panel — drag the zoom slider.
  • Keyboard shortcuts — zoom in, zoom out, and reset zoom.
Tip

Quick access: press Z to switch the left mouse button to the zoom action (default — customizable since v4.7.0 in Keyboard Shortcuts).

Zoom presets

The toolbar and context menu expose three presets:

  • Actual Pixels — 1:1 display: one image pixel maps to one screen pixel.
  • Real-world Size — physical-size display (requires a calibrated monitor).
  • Best Fit — scale the image to fit the view area (default).
Note
  • Zoom operations always center on the screen, regardless of the cursor position.
  • Best Fit (the default) recenters images when you scroll through a series. To keep an off-center crop while scrolling, switch to another preset or set a manual zoom factor.
  • To change the interpolation method used for zoom, see the 2D viewer preferences.

Zoom tool controls Zoom tool controls

Real-world Size Display

Real-world size means 1 mm on the image equals 1 mm on the screen, so anatomical structures appear at their true physical dimensions. This is essential for visual size estimation, surgical planning, prosthesis sizing, or any clinical comparison done directly on the monitor.

For Weasis to compute this accurately, it needs two things:

  1. The DICOM Pixel Spacing of the image (already stored by the modality — see the image-level Spatial Calibration page when it’s missing).
  2. The physical size of one screen pixel for each monitor — this is what the Spatial Calibration step below provides.

Without monitor calibration, the Real-world Size preset falls back to the operating system’s DPI value, which is rarely accurate.

What you need

  • A precise ruler — ideally a caliper (mm or 1/10 mm graduations).
  • The monitor in its final position and resolution (do not change the OS scaling factor after calibrating).

Step-by-step monitor calibration

  1. Open File > Preferences (Alt + P) > Monitors.
  2. The list shows every detected monitor with its pixel resolution; once calibrated, the real width × height in mm is appended in parentheses.
  3. Click Spatial calibration next to the monitor you want to calibrate. A fullscreen window opens on that monitor and draws a black background with a white horizontal line and a white vertical line.
  4. Physically measure one of the three references on the screen surface:
    • the horizontal line,
    • the vertical line, or
    • the screen diagonal (corner to corner of the visible glass).
  5. At the bottom of the dialog, pick the matching reference in the first dropdown (Horizontal line / Vertical line / Screen size), type the measured value, and pick its unit (mm, cm, 1/1000 in, in).
  6. Click Apply. The dialog redraws each line with its computed real length next to it — cross-check that the displayed value matches what you measured (within ±0.5 mm). Re-measure and re-apply if needed.
  7. Close the calibration window. The Monitors page now shows the screen’s real size, and the value is persisted (per monitor) for the next sessions.
  8. Activate the result in any 2D viewer with the Real-world Size preset (toolbar dropdown, context menu Zoom, or the image tool panel).

Verifying the result

Open any image whose dimensions you know — a calibration phantom, a CR/DX study with a visible ruler, or a printed test pattern displayed full screen — and switch to Real-world Size. Use the length measurement tool and compare with the physical ruler — the values should match within a fraction of a millimeter.

Warning

If Real-world Size still looks wrong after monitor calibration, check that the image itself has valid Pixel Spacing (or Imager Pixel Spacing for projection radiography). Some secondary captures and screenshots ship without spatial information and cannot be displayed at real size — see Spatial Calibration for the manual override.

Magnifying Lens

The magnifying lens is a movable, resizable overlay that displays a zoomed-in view of a small area without affecting the underlying image. Useful for inspecting fine detail (small lesions, calcifications, fine vascular structures) without changing the global zoom level, or for comparing two rendering parameters side-by-side using the freeze options.

Enable / disable the lens with its toggle button in the zoom toolbar.

Lens example Lens example

Key features

  • Magnify a specific region without modifying the main view.
  • Hide overlays inside the lens (Show Drawings toggle).
  • Compare different Window / Level settings side-by-side (Freeze parameters).
  • Compare different images of the same series side-by-side (Freeze image).

Lens controls

  • Mouse wheel — adjust the lens zoom factor.
  • Double-click — match the lens zoom to the main image zoom.
  • Right-click menu options:
    • Hide Lens — disables the lens.
    • Synchronize to parent zoom — matches the lens zoom to the main image.
    • Show Drawings — toggles overlay visibility inside the lens.
    • Magnify — pick the lens zoom level from a preset list.
    • Image — control image and parameter freezing:
      • Freeze Parameters — keeps the current image processing settings (Window / Level, LUT, filters) frozen inside the lens while you scroll through the series elsewhere. Useful for comparing the same anatomical area with different rendering settings.
      • Freeze Image — captures both the image and its processing parameters, so the lens keeps showing the frozen image while the main view moves on. Useful when comparing different slices or time points of a study.
      • Reset Freeze — clears the frozen state; the lens reverts to following the current image and its processing settings.

Lens with frozen parameters Lens with frozen parameters

Histogram

Displaying Histogram

The Histogram view plots the distribution of pixel values in an image (or in a selected region), so you can see what intensity ranges are actually present and how they are spread across the available scale. It is also a quick way to gauge the effect of any change made in the windowing and rendering panel: as you move the window / level sliders or pick a different LUT, the histogram visually reflects how the input values are being mapped to the output.

To open the histogram, pick the Histogram layout from the layouts dropdown in the toolbar (see screenshot below).

General histogram parameters

  • Channel — for grayscale images, only the Luminance channel is available. For color images, pick one of the RGB, HSV, or HLS color models — each channel of the chosen model gets its own histogram.
  • Bins — width of the value intervals grouped together in each bar. The default is computed as max − min of the pixel values, capped at 512; you can override it with any value between 64 and 4096.
  • Statistics — show pixel statistics next to the histogram, useful for analyzing and comparing images or regions quantitatively. For the definition of each statistic, see Pixel Statistics.
Note

The X axis values are the modality values (e.g. Hounsfield units for CT) when a Modality LUT applies, or the raw pixel values otherwise. When the modality has a known unit, the unit is appended to the histogram title.

Open Histogram Open Histogram

Display parameters

  • − / + — shrink or stretch the Y-axis scale (the number of occurrences).
  • Accumulate — display a cumulative histogram.
  • Logarithmic — show the Y axis on a logarithmic scale (useful when a few dominant bins crush everything else into invisibility).
  • Show intensity color — color each bin with the active LUT; otherwise the bars are drawn in black.
  • Reset — restore the default display parameters.
Note

A histogram can also be computed on a region of interest instead of the full image: draw a closed shape with the measurement tools and select it to display its histogram (see screenshot below).

Histogram parameters Histogram parameters

Tip

Click any bin in the histogram to display its occurrence count and the modality-value range it covers.

Print

Printing images

Weasis can print images two ways:

  • Standard printer — sends a regular page to any printer configured on your operating system (laser, inkjet, PDF writer, …). Used for paper reports, slide handouts, or PDF export.
  • DICOM Print — sends the images directly to a DICOM film printer over the network, using the DICOM Print Management protocol. Used in radiology departments that still print films for clinical use.

Both modes operate on the current layout — the page is built from the views currently visible in the active tab. The first step is therefore to prepare the layout exactly the way you want it on paper or film.

Preparing the image selection

If you need more than one image per page, pick a layout from the layouts dropdown in the toolbar (1).

Note

The layout list is computed dynamically from the current window size — resizing or maximizing the Weasis window changes the layouts on offer. On a panoramic monitor you can, for example, pick a wide horizontal layout and then print in landscape orientation.

Print Layout Print Layout

To fill the layout with images, choose a synchronization mode (2):

  • Default Tile — every view is filled automatically with consecutive images of the same series (the first view shows image n, the next shows n+1, and so on).
  • Default Stack — drag and drop a series into each view independently, then scroll each view to the image you want printed.

Choosing a print mode

Standard Printer

Open File > Print > Print 2D viewer layout (P) from the main menu.

standard standard

Print options:

  • Image position — where each image is placed inside its page cell (centered, fit, etc.).
  • Image DPI — print resolution in dots per inch (default: 150). Higher DPI means finer detail and a larger file sent to the printer.
  • Print image with annotations — when checked, the annotations and graphic objects defined in the Display panel are printed on top of the image.
  • Print only the selected view — when checked, only the view with the orange focus border is printed. When unchecked, every view of the current layout is printed.

DICOM Print

Open File > Print > DICOM Print from the main menu.

The DICOM Print dialog lets you manage several DICOM printer configurations (each carrying its own AE title, host, port, and film parameters). The print parameters mirror the Standard Printer ones above — for the protocol-level specifics, see the DICOM Print Management Service chapter of the standard.

DICOM DICOM

Note

DICOM printer configurations can be deployed centrally so every client gets the same printer list — see How to add DICOM nodes or DICOM printers at the server side.

Image orientation

Interpretation of the orientation

DICOM image viewers indicate which anatomical direction lies outside each edge of the image using one or more uppercase letters drawn at the top-center and left-center of the view. They let you recognize the patient’s left vs. right (or dorsal vs. ventral, etc.) at a glance, without having to scroll the metadata.

The exact set of letters depends on the Anatomical Orientation Type (0010,2210) attribute of the study — Weasis supports both the standard BIPED scheme used for human imaging and the QUADRUPED scheme used in veterinary imaging.

BIPED (human imaging)

Used when the Anatomical Orientation Type attribute is absent or set to BIPED:

Axis Letters
Left / Right L = Left, R = Right
Anterior / Posterior A = Anterior, P = Posterior
Head / Foot H = Head, F = Foot

QUADRUPED (veterinary imaging)

Used when the Anatomical Orientation Type attribute is set to QUADRUPED (supported since Version4.1.0). The scheme uses two-letter codes for left and right (LE / RT) to avoid collisions with single-letter codes that mean something different in this scheme:

Axis / direction Letters
Left / Right (body sides) LE = Left, RT = Right
Dorsal / Ventral D = Dorsal, V = Ventral
Cranial / Caudal CR = Cranial, CD = Caudal
Rostral (head) R = Rostral
Medial / Lateral (relative) M = Medial, L = Lateral
Proximal / Distal (limbs) PR = Proximal, DI = Distal
Palmar / Plantar (paws) PA = Palmar, PL = Plantar
Warning

On a QUADRUPED study, R means Rostral and L means Lateralnot Right and Left. Always check the anatomical-orientation type before interpreting single letters.

Quadruped orientation Quadruped orientation

Info

When the view is not perfectly aligned with the three axes of the patient frame of reference, Weasis appends a secondary and tertiary orientation in subscript, separated by - (e.g. A-L-H for an oblique anterior-leaning view).

Info

For projection modalities such as CR or DX, the orientation comes from the Patient Orientation (0020,0020) attribute. It is not updated when the image is rotated, because the orientation cannot be re-derived dynamically from the pixel data.

For cross-sectional modalities such as CT and MR, the orientation is recomputed dynamically and remains correct after rotations, flips, and reformats.

Tip

To show or hide the orientation overlay, toggle DICOM Annotations > Orientation in the Display panel on the right.

Orientation in multiplanar reconstruction (MPR)

In the MPR viewer, the same letter convention is applied to each of the three reformatted planes. The uppercase letter at the left or the top names the anatomical direction; the plane type (axial, coronal, or sagittal) is labeled at the bottom of the view.

MPR orientation MPR orientation

Info

The crosshair axes follow the color coding defined in the DICOM Patient Orientation standard:

  • Blue — left / right axis.
  • Red — anterior / posterior axis.
  • Green — foot / head axis.

The small colored square shown in each MPR view corresponds to the axis that is perpendicular to that plane.

Third-party Launcher

Launching a third-party application

Third-party launchers let Weasis hand off to another application — a different DICOM viewer, a post-processing tool, a custom report system, a web URL — and pass it information from the current Weasis session as command-line parameters, environment variables, or URI query parameters. Typical uses include opening the current study in a secondary viewer, sending the downloaded DICOM folder to a dedicated post-processing software (cardiac analysis, vessel quantification, radiotherapy planning…), calling a clinical report system pre-filled with the patient’s accession number, or launching a vendor tool against the DICOM folder Weasis just downloaded.

Configured launchers appear in the File > Launcher menu and, optionally, as a button in the toolbar.

Launcher Launcher

In the screenshot above, a launcher is configured to open the Horos viewer on macOS against the folder where Weasis downloaded the current DICOM files.

How to create the launcher

  1. From the main menu, open File > Preferences (Alt + P) and select the Launcher item.
  2. Click Add New to create a new launcher.
  3. Fill in the general fields of the DICOM Launcher dialog:
    • Name — display name of the launcher.
    • Icon path — icon shown in the menu and toolbar. Absolute path, or relative to the Weasis resources folder. The default icon is used if the file is not found.
    • Enable — show the launcher in the menu and toolbar.
    • Button — also show it as a toolbar button.
  4. Click Configure to specify what the launcher actually does.
  5. Pick the Launcher Type and fill in its options:
    • URI — open a web page or a file at a given URI. The URI may contain dynamic variables below.
    • Application — run a local application with parameters. Both Parameters and Environment Variables can contain dynamic variables.
      • Binary Path — the executable to run.
      • Working Directory — working directory for the process (optional).
      • Parameters — command-line parameters, one per line.
      • Environment Variables — environment variables, one per line.
      • Compatibility — restrict the launcher to specific platforms. Useful when the launcher configuration is pushed from a central server to heterogeneous workstations.
  6. Click Save in the Launcher Type dialog to persist the launch configuration.
  7. Click Save in the DICOM Launcher dialog to persist the general settings.

Dynamic variables

The placeholders below are expanded at launch time and can appear in URI, Parameters, or Environment Variables:

Placeholder Expands to
{dicom:wado.folder} Temporary folder for images downloaded over WADO and DICOMweb.
{dicom:last.folder} Last folder opened through Local Device in the DICOM Import dialog.
{dicom:selection.folder} Triggers a selection dialog (similar to DICOM Export); the chosen items are copied into a temporary folder that is deleted when Weasis exits.
{tag:<key>} Any DICOM attribute value from the currently selected image, e.g. {tag:AccessionNumber}.
{pref:<key>} Any Weasis preference value, e.g. {pref:weasis.user}.
Note

The Other Launcher type displays a button on any viewer instead of the global toolbar. For this type, only {pref:<key>} is supported as a dynamic variable.

How to run the launcher

  • From the main menu, open File > Launcher and pick the launcher.
  • From the toolbar, click the launcher button.
Note

The launcher must be enabled in the preferences to appear in the menu, and the Button option must be checked to appear in the toolbar.

Spatial Calibration

How to change the spatial calibration

Spatial calibration is the link between a pixel and a real-world length. With a valid calibration, every measurement (distance, area, angle) reflects actual millimeters or centimeters, and the real-world zoom can display images at the same size as the original objects.

For DICOM images, the calibration is normally derived from the standard attributes (Pixel Spacing for cross-sectional acquisitions, Imager Pixel Spacing for projection radiography). The 2D viewer indicates how the calibration was obtained — see the calibration type label shown above the ruler.

When no calibration is available — or when you want to override an existing one — you can apply a manual calibration as long as the image contains a reference object of known size (a ruler, a fiducial, a calibration phantom, or any landmark whose physical length you know).

Manual calibration procedure

  1. Pick the Line tool from the Measurement tools.
  2. Draw a line along an object whose real-world length you know.
  3. Right-click the line and choose Manual Calibration.
  4. Enter the known distance (with its unit) in the dialog and confirm.

Calibration Calibration

Apply Calibration Apply Calibration

Note

The Manual Calibration dialog can apply the new scale either to the current image only or to every image in the series. Pick the right scope for your dataset (a series with consistent geometry is normally calibrated as a whole).

Info

Once the image is calibrated, all measurement tools report values in the chosen unit and the real-world zoom renders the image at its physical size. The manual calibration is kept in memory for the current session but is not currently written back into the DICOM file.

Changing spatial calibration with Weasis 1.1.3

The procedure shown below was recorded on an older version of Weasis; the underlying workflow is unchanged.

Styles and themes

Change the appearance of the user interface

The Appearance preferences let you tailor Weasis to your environment: pick a light or dark theme to match your reading conditions, adjust the interface scaling to fit your monitor’s pixel density, and toggle a few platform-specific UI behaviors. Open the settings from File > Preferences (Alt + P) > Appearance.

How to apply another theme

Use the theme dropdown A to browse the bundled themes, then click Show to see a partial preview before applying. The recommended theme for clinical reading is Core Dark — Flat Weasis, which keeps the surrounding UI low-luminance to avoid distracting from the images.

Preferences Preferences

How to scale the user interface

The scaling factor B controls the size of every UI element (fonts, icons, graphic components, …). It is recommended to match the operating system’s scaling factor so Weasis looks consistent with the rest of your desktop on HiDPI displays:

  • Windows — the Display Scaling preference (Settings > System > Display).
  • macOS — automatically aligned with the system Retina scaling.
  • Linux — either the display scaling factor or the text scaling factor, depending on the desktop environment.

You can also increase (or decrease) the scaling factor independently of the system — useful for reading from a distance, or when the system value is too aggressive for the application.

How to integrate the main menu in the window bar

Option C forces the main menu to be integrated into the window’s title bar (disabled by default). It is shown only on Linux, where the wide variety of window managers makes integration unreliable without an explicit opt-in.

Info

On Windows and macOS, this option is not shown — menu integration is always supported by the platform.

System File Chooser

Option D swaps the Java default file dialog for the system-native file chooser, providing a more familiar file-browsing experience on each platform.

Tip

Favorite or bookmarked folders configured in your system file explorer (Nautilus, Finder, Windows Explorer, …) appear as shortcuts inside the native file chooser, so frequently used import or export locations are one click away.

Changing the default theme or scale factor

When deploying Weasis to several workstations, the default appearance settings can be set centrally instead of being chosen per user. See the Weasis Preferences page for the lookup order Weasis uses when resolving a preference.

Language & Regional Settings

How to change the language and regional settings

Weasis separates two locale-related choices:

  • Language — the language of the user interface (menus, tooltips, dialogs).
  • Regional format — the rules used to display dates, times, and numbers (decimal separator, thousands separator, calendar conventions…). These also drive how patient lists are sorted, see the DICOM Explorer.

The two are independent, so you can run the UI in English while keeping the regional format you prefer.

Switching from the user interface

From the main menu, open File > Preferences (Alt + P) and pick the desired Language and Regional format in the General tab.

Preferences Preferences

Tip

Only languages with at least 30 % translation coverage are listed. If a language you need is missing or incomplete, you can help fill the gaps — see the translation contribution guide.

Note

Dates and numbers throughout the user interface are formatted according to the selected regional format.

Changing the default locale at deployment

When deploying Weasis to multiple workstations, the default language and regional format can be set centrally via the property files instead of being chosen per user. See the preferences overview for the lookup order Weasis uses when resolving a preference.

Logging

Configure and View Log Files

Weasis writes log files that are invaluable when something goes wrong — a series fails to load, a query times out, a third-party integration misbehaves, or the application crashes at startup. The same files are also what to attach when opening a bug report so a developer can reproduce the problem.

Accessing the log folder

Open the log folder directly from the menu: Help > Open the logging folder (available since Version4.1.0).

Tip

On earlier versions: the log folder is <user.home>/.weasis/log. To find <user.home> from inside Weasis, open Help > About Weasis and look up the weasis.path property in the System Information tab.

Types of log files

Weasis writes two kinds of log files into the log folder.

Boot log (boot.log)

The boot log (available since Version3.5.0) captures the application startup sequence and is always written, regardless of the rolling-log configuration. It is the right place to look for:

  • whether Weasis started with the expected parameters,
  • startup failures or crashes,
  • configuration issues raised during launch.

Rolling log (default.log)

The rolling log captures runtime application activity — viewer events, network calls, errors during use — and must be enabled in the preferences (see Configuring the rolling log below).

Once a rolling log reaches its maximum size, it is rotated and the previous file is automatically compressed into a ZIP archive (since Version4.4.0).

Configuring the rolling log

  1. Open File > Preferences > General from the main menu.
  2. Enable Rolling log to activate file logging.
  3. Adjust the settings as needed:
Setting Description Default
File numbers Maximum number of rolling log files retained on disk 20
File size Maximum size of each log file before rotation 10 MB
Log level Verbosity of trace messages (TRACE / DEBUG / INFO / WARN / ERROR) INFO
Stacktrace limit Number of stack-trace lines kept per exception 3

Preferences Preferences

Tip

While investigating an issue, leave Stacktrace limit empty (or set it to 0) to capture the full stack — Weasis will then keep every line of every exception. Revert to a low value once the investigation is over to keep log files compact.

Understanding log levels

Pick the lowest log level you actually need:

  • ERROR — only critical errors.
  • WARN — warnings and errors.
  • INFO (default) — general progress information, plus warnings and errors.
  • DEBUG — detailed debugging information.
  • TRACE — the most verbose level, used for in-depth troubleshooting.

Each level includes everything from the levels above it.

Warning

DEBUG and TRACE generate significantly more data and may impact performance — enable them only while actively investigating a problem, and switch back to INFO once done.

Info

The default logging configuration comes from base.json. See Weasis Preferences for the property lookup order. Some default values have changed since Version4.4.0.

Tip

Attaching logs to a bug report: for a clean repro, set the level to DEBUG or TRACE, restart Weasis, reproduce the issue, then attach both boot.log and the most recent default.log* files to the GitHub issue. The compressed rotated files are also useful when the bug only manifests after long use.

Proxy server

How to configure a proxy server

If Weasis must reach the outside world through a corporate proxy — for example to pull updates, fetch a study from a remote DICOMweb server, or use a third-party launcher — you can either configure the proxy from the user interface or pass standard JVM proxy properties at launch.

From the user interface

  1. Open File > Preferences (Alt + P) in the main menu.
  2. Select Proxy Server from the left panel.
  3. The default is Direct connection (no proxy). Switch to Manual proxy configuration to define a custom proxy (the screenshot below shows a local Squid instance).

For the meaning of each field, see the Java networking properties reference — the dialog mirrors the standard JVM proxy properties one-for-one.

Proxy configuration Proxy configuration

Tip

Some changes take effect only after restarting Weasis.

From the launch parameters

To pass proxy settings as JVM options at launch, the UI selection must be set to Direct connection (no proxy) or configuration at launch so that the manual UI values do not override the command-line ones.

Tip

JVM options can also be set permanently in the [JavaOptions] section of Weasis.cfg (located in the installation directory).

Common examples:

  • Use the operating system’s default proxy:

    -Djava.net.useSystemProxies=true

  • Point to a local proxy (e.g. a Squid running on 127.0.0.1:3128):

    -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3128

  • Use a corporate proxy with authentication and a no-proxy list:

    -Dhttps.proxyHost="proxy.mydomain.com"
    -Dhttps.proxyPort="8080"
    -Dhttp.proxyHost="proxy.mydomain.com"
    -Dhttp.proxyPort="8080"
    -Dhttp.nonProxyHosts="\*.mydomain.com|localhost"
    -Dhttp.proxyUser="user"
    -Dhttp.proxyPassword="password"

Note

The same JVM options can be injected from the launch URL through the pro= parameter — see the weasis-pacs-connector launch parameters. Example:

http://localhost:8080/weasis-pacs-connector/weasis?patientID=9702672&pro="https.proxyHost%20127.0.0.1"&pro="https.proxyPort%203128"

Dicomizer

How to convert images into DICOM files

The Dicomizer converts standard files — photos, scanned reports, videos, 3D models — into DICOM objects so they can be archived in a PACS alongside acquisitions from imaging modalities. Typical use cases include adding dermatology or wound-care photos to a study, attaching a PDF report or consent form, archiving endoscopic or surgical videos, and packaging STL files used for 3D printing.

Beyond the file conversion itself, the Dicomizer also helps you set the DICOM tags at the patient, study, and image levels so the resulting objects are consistent, searchable in the archive, and recognized by every DICOM viewer.

Dicomizer Dicomizer

The sections below describe the day-to-day use of the Dicomizer. Administrators deploying the tool in a clinical workflow should also read Integrating the Dicomizer at the end of this page.

How to Launch Dicomizer

When Weasis is installed, the Dicomizer is also available as a standalone application with this shortcut (Windows and Linux only).

On macOS, run the Dicomizer command from the terminal:

/Applications/Weasis.app/Contents/MacOS/Dicomizer

If you use the Dicomizer frequently on macOS, use Automator to create a Dicomizer.app with a Run Shell Script action containing the command above.

Import Media Files

The Dicomizer can encapsulate the following file types into DICOM objects:

  • Standard images — TIFF, BMP, GIF, JPEG, PNG, RAS, HDR, PNM. Converted to JPEG lossy to comply with the DICOM standard.
  • PDF documents (application/pdf) Version4.6.2 — convenient for archiving reports, forms, or scanned documents.
  • STL files (model/stl) Version4.6.2 — for 3D printing and surgical planning.
  • MPEG-2 video (video/mpeg) Version4.6.2 — for compatibility with legacy medical imaging systems.
  • MPEG-4 video (video/mp4) Version4.6.2 — modern format for endoscopy, ultrasound, surgical recordings, and other high-quality medical videos.
Warning

Only MPEG-4 videos that are compatible with the DICOM standard are accepted — namely MPEG-4 AVC/H.264 High Profile (up to Level 4.2) or HEVC/H.265 Main and Main 10 Profile. Videos using a different profile are rejected with a message asking you to convert them to a compatible format first.

Video files are also size-limited since Version4.7.0: a file larger than weasis.acquire.video.max.size (1024 MB by default — see the preferences) is rejected. Set the preference to 0 to remove the limit.

Importing files

  1. In the left panel, navigate through the file system to locate the files to convert. The button next to the combo box on the right opens a folder chooser to pick the directory containing the eligible media.
  2. To organize files into separate series, select the thumbnails in the left panel and click Import. The dialog offers three grouping options:
    • Do not group — all images are imported into a single series (same as drag-and-drop).
    • Group by date — images are split into series based on their acquisition date. A second field controls the maximum time gap that still keeps two images in the same series.
    • Group by name — all images are imported into a single series with a custom name.
  3. Alternatively, drag and drop files from the system file explorer into the central panel. The files are either added to the current series, or assigned to a default series based on their media type.
Note

For image formats that carry EXIF tags, the following values are mapped to DICOM tags automatically:

  • Image Orientation → adjusts the image orientation.
  • Image Description → mapped to Image Comments.
  • Manufacturer Description → mapped to Manufacturer.
  • Camera Model Description → mapped to Manufacturer Model Name.
  • Date/Time (Original) or, if absent, Date/Time → mapped to ContentDate and ContentTime. If both are absent or invalid (date > now + 1 day, or date < now − 30 years), the file’s last-modified date is used.
Note

Series-grouping buttons cannot be deleted directly. Remove every thumbnail associated with the button first, and the button disappears.

Tip

The combo box keeps the list of recently used folders. Connecting a USB device automatically adds the device path to the list.

Edit DICOM Tags

The Album panel manages DICOM tags at the patient, study, series, and image levels:

  • The left panel lists the groups, each representing a DICOM series.
  • The central panel shows the thumbnails of the imported media. Select one or more thumbnails to edit their DICOM tags; double-click a thumbnail to open the image in the Photo Editor.
  • The bottom panel displays the DICOM tags of the selected images. Image-level tags are only visible when a single image is selected.

Tags in the bottom panel are organized into a categorized tree:

  • Global tags — applied to the patient and study levels.
  • Series level — applied to the series level.
  • Image level — applied to the individual image level.
Note

A red dashed outline around an item means the value is mandatory and must be filled in before publication.

Warning

Person-name fields (PatientName, OperatorsName, …) must follow the Last^First^Middle^Prefix^Suffix format defined by the DICOM standard. This rule applies both to values typed by hand and to values populated automatically (see Integrating the Dicomizer).

Tip

The thumbnail right-click menu offers:

  • Edit (images only) — opens the Photo Editor to crop, rotate, or adjust the image. Double-clicking the thumbnail has the same effect.
  • Remove — deletes the image from the series without touching the original file.
  • Move to… — moves the image to a different series.

Edit the Images

The Photo Editor offers basic tools to crop, rotate, and adjust contrast on an imported image. You can also add annotations to highlight specific areas, and use measurement tools to indicate distances, angles, or areas. The image can be calibrated against a known distance so that the measurements reflect real-world dimensions.

Publish DICOM Files

Click Publish to send the DICOM files to a remote DICOM archive, or Export locally to save them on the local file system. The Publication panel offers:

  • Selection — choose which DICOM items to publish (everything selected by default).
  • Resolution — downscale high-resolution images before sending.
  • Destination — pick the target node from the list of configured remote DICOM nodes.
  • Calling AE Title — pick the calling node, if your archive enforces specific sender AE titles.
Note

The destination can be a specific remote node or the list of remote nodes configured under File > Preferences (Alt + P) > DICOM node list — add or edit DICOM nodes there.

Info

A green check-mark icon on a thumbnail confirms that the image was successfully published.


Integrating the Dicomizer

This section is intended for administrators integrating the Dicomizer into a clinical workflow. It covers launching the Dicomizer from a web context and — most importantly — populating the DICOM metadata automatically so that operators do not have to enter it manually.

Launch from a Web Context

The Dicomizer can be launched from a web context using the weasis:// protocol.

Try launching the Weasis Dicomizer Launch with the following parameters:

$weasis:config pro="felix.extended.config.properties file:conf/dicomizer.json" pro="gosh.port 17181"

Automatically Fill in the Metadata

Instead of being entered by hand in the Album panel, the Global tags (patient and study levels) can be populated automatically:

  • From a DICOM Worklist — configured with the preference items starting with weasis.acquire.wkl. Example of configuration at launch:

    $weasis:config pro="felix.extended.config.properties file:conf/ext-dicomizer.properties" pro="gosh.port 17181" pro="weasis.acquire.wkl.host localhost" pro="weasis.acquire.wkl.aet DCM4CHEE" pro="weasis.acquire.wkl.port 11112" pro="weasis.acquire.wkl.station.aet WEASIS-MWL"

  • Via the acquire:patient command — pass a DICOM-style XML payload, for example:

    <?xml version="1.0" encoding="UTF-8"?>
    <tags>
    	<PatientID>97032168</PatientID>
    	<PatientName>TEST^TEST</PatientName>
    	<PatientBirthDate>19580703</PatientBirthDate>
    	<PatientSex>M</PatientSex>
    	<OperatorsName>RODUIT^NICOLAS</OperatorsName>
    	<AccessionNumber>000000003712</AccessionNumber>
    	<IssuerOfAccessionNumberSequence>
    		<LocalNamespaceEntityID>411713364</LocalNamespaceEntityID>
    	</IssuerOfAccessionNumberSequence>
    	<StudyID>411713364</StudyID>
    </tags>

Note

Which DICOM tags appear, are editable, and are required in the Album panel is configured via the preferences (items starting with weasis.acquire.meta).

Publication Destination

When the Dicomizer destination is fixed in the preferences (items starting with weasis.acquire.dest), the destination is no longer selectable in the Publication panel — DICOM files are sent directly to the configured node.

Stories

Weasis, the latest medical imaging software developed at the University Hospital of Geneva (HUG), serves as the clinical viewer for the hospital’s in-house Electronic Medical Records system. Since becoming open source in 2010, Weasis has earned its place as a reference DICOM viewer for medical professionals worldwide.

The University Hospital of Geneva has a remarkable legacy in developing medical imaging software. In 1990, HUG introduced Osiris, the first radiological imaging viewer to be freely distributed globally. Building on its success, OsiriX was launched in 2003 as the Mac-based successor to Osiris, further cementing HUG’s leadership in medical imaging innovation.

banner banner

Articles and case studies

A selection of peer-reviewed papers, conference exhibits, podcasts, and field deployments that cite, evaluate, or build on Weasis.

2024

  • Weasis in the Ask Noah Show
    Listen: Podcast
    Weasis was featured in the Ask Noah Show, a podcast that discusses open-source software and technology. The episode highlighted Weasis as a free, open-source DICOM viewer that is easy to use and suitable for various medical imaging applications.

  • Evaluating Open-Source DICOM Viewers for Resource-Constrained Hospitals
    Read: Evaluating Open-Source DICOM Viewers for Resource-Constrained Hospitals
    A case study evaluating open-source DICOM viewers for resource-constrained hospitals. The study concluded that Weasis is the most suitable software due to its advanced tools for multiple modalities, user-friendliness, and detailed documentation.

2021

2018

2016

2015

2014

2009

Subsections of Stories

Weasis Multi-Touch

Master Thesis of Gérôme Pasquier