DQR Admin: Connecting XNAT with a PACS for DQR Usage

In order for your XNAT to be able to take advantage of the functionality provided by the DQR Plugin, you must first set up a working connection to a PACS or DICOM AE. This requires the coordination of two parties – the XNAT Administrator, and the PACS Administrator. In order to complete this process, you will need to have network information and AE Titles for both systems, and each party will have to configure their system to talk to the other.

Step 1: Register PACS in the XNAT system

1. Go to Administer > Plugin Settings > DICOM Query-Retrieve in the site navigation, and find the "Manage DICOM AE (PACS) Connections" panel.

2. Click Add New DICOM AE

3. Enter the network information and configuration for this PACS system in the dialog. Here are the fields that must be entered:

AE Title
This should be the AE Title broadcast by the PACS or DICOM AE you are connecting to

This is a network address, and could be an IP address, "localhost" for a dev setup, or a URL.

Note: The "http/s" protocol must be omitted.

This is used internally by XNAT to identify this PACS in the UI
This is the network port used by the PACS system to accept requests and send or receive data
QueryableNoToggles whether to allow users to send C-FIND queries and C-MOVE requests to this PACS in order to find and import data
Default Q/R AENoIf multiple PACS are configured to be "Queryable", only one can be the "Default" for querying new data. This affects the select menu on the "Import Studies" UI
StorableNoToggles whether to allow users to push data from XNAT to this PACS
Default Storage AENoIf multiple PACS are configured to be "Storable", only one can be the "Default" for storing data. This affects the select menu on the "Send To PACS" UI

4. Click Save to save this configuration.

Your new PACS configuration will now appear in the table. You can go back and edit this configuration at any time by clicking on the highlighted name of the PACS in the table.


Optional Step: Set PACS Utilization Schedule

In a high-use, data-rich environment, PACS Administrators may have specific business rules regarding how much network traffic they want to allow to and from their PACS system. The "Schedule" setting allows XNAT Administrators to restrict all use of each connected PACS to certain hours of the day. You can also throttle the data transfer rate, if desired. 

In the screenshot above of the PACS table, the second column is titled "Schedule" and there is a "Schedule" link in the row for all PACS that you've added. Clicking this link causes a modal to appear that you can use to configure the PACS' utilization.

To edit the Availability Schedule for a PACS, see: DQR Admin: Setting A PACS Availability Schedule

Step 2: Register XNAT in the PACS system

PACS Administrators are charged with securing highly sensitive patient data, and are naturally extremely concerned about data security. If you are setting up DQR for the first time on a development XNAT instance, it is doubtful that the PACS Administrator will agree to set up a connection to your XNAT. You may want to set up your own development PACS instance to use in testing, before attempting to connect to a production PACS instance. Here is one example: https://github.com/jodogne/OrthancDocker

It is also essential that the PACS you are trying to communicate with is set up so that it can speak with your XNAT. In addition to making sure there are no network issues with your XNAT communicating with the PACS, you will need to make sure that both the XNAT information about the PACS matches the PACS and that the PACS information about XNAT matches XNAT.

When you use DQR to request data from a PACS, XNAT tells the PACS to send the data to a specific AE Title. The PACS will then look at its own configuration, see that the requested AE destination is associated with a specific site and a specific port, and send the data to that site and port.

Note: This is why it is sometimes necessary to use an AE Title other than "XNAT" for your XNAT. If you were to try to connect two XNATs to a PACS and both XNATs only had a single receiver at "XNAT:8104", then when the PACS received a request for data to be sent to the "XNAT" AE, there would be no way to configure the PACS to know which XNAT's receiver it should send the data to.

As an example, if you are working with a local Orthanc PACS, you might want your orthanc.json file to have a block like this:

"DicomModalities": {
        "XNAT": [

This will route any requests that come into the PACS for data to be sent to an AE with your specified "{AE TITLE}", to the SCP Receiver receiver using the specified "{PORT}" on the local XNAT.

Note: Different PACS platforms (Orthanc, DCM4CHEE, etc.) will each have a different means of configuration. The details of those different configurations is out of the scope of this documentation. Consult the documentation for your PACS, or work with your PACS Administrator to complete this step.