Applying Pixel Anonymization for Bulk Uploads

The process for inspecting scan data from multiple image sessions in a bulk upload differs from that of the single-session upload. To introduce economies of scale in the bulk upload process, you can review and apply pixel anonymization templates to multiple scans simultaneously.

Even though pixel anonymization (via DicomEdit 6.3) was not introduced to XNAT until version 1.8.0, client-side pixel anonymization in the XNAT Desktop Client works with all versions of XNAT supported by the client app, including XNAT 1.7.6. See Desktop Client Version Compatibility Matrix for details.


How Pixel Anonymization Works

DicomEdit 6.3 introduced the "AlterPixel" command, which accepts a set of four coordinates to draw a rectangular template: (Top, Left) and (Bottom, Right), relative to the upper left corner of the DICOM image. The inside of that template will be filled with black pixels during anonymization.

Bulk pixel anonymization is designed to allow you to draw one template and apply it to multiple scans of the same type. In order to facilitate this workflow, the Desktop Client examines all scans from all image sessions to be uploaded and regroups them by size, modality, and SOP Class UID. 

Scan regrouping for pixel review does not change a scan's relationship to its image session. Scan files are not being moved, it is simply a quirk of the scan review process.

At the highest level, scans are grouped into two broad categories: "Valid" and "Unsupported". Here's what this means:

  • Valid Scans can allow pixel anonymization templates to be applied. This applies to nearly all DICOM image scans, except for formats such as WSI where the scan resolution can change from image to image.
  • Unsupported Scans cannot allow pixel anonymization templates to be applied, however these scans can still be uploaded to XNAT.

Some examples of unsupported scans:

  • Annotations such as RTStruct and RTDose
  • Encoded file attachments such as Encapsulated PDF reports
  • Scans such as WSI that have multiple resolutions
  • Scans that have multiple SOP Class UIDs


Reviewing Scan Groupings in the Bulk Upload Anonymization Window

The Desktop Client will show you a series of scan groupings, with Valid Scans highlighted by default.


To work through each group of scans, click the "Review" button for each group. This will bring up a preview pane that has a thumbnail of each scan in the group. This will give you a quick preview of whether a scan includes embedded PHI or not. If you feel that scans do not need further attention, you can simply click the "X" to close this preview group.


However, if you see what looks like embedded PHI, you can quickly address it.

Note: These Ultrasounds come from the public DICOM FTP data site hosted by NEMA. All PHI is simulated data, not actual patient data.


Creating and Applying Anonymization Templates

1. Select one or multiple scans, by clicking on each thumbnail or selecting the "Select All" button.


2. Click "Create Template"

This will open a modal dialog. If you have created and saved any templates that match this scan type, they will be visible here. If not, click "Create New Template".

Note: Templates are saved locally in your installed desktop client application, not in your XNAT. This means that saved templates can be used by multiple users in multiple XNATs if they share a common terminal with the desktop client installed.



3. Draw and save an anonymization template

Clicking "Create New Template" will open an embedded scan viewer, as shown in Applying Pixel Anonymization During the Upload Process. (Note that only the first of your selected scans will be opened in the viewer. It acts as the template for the others.)


Note that some text embedded in the scan may be valuable annotations. Determining what to remove and what to keep is a project-by-project decision. You can draw one or more rectangular shapes in your template and save your drawings using the "Save Scan" button in the upper right.


4. Click "Create Template" to save and close the viewer. You will now see that the bulk scan preview has an updated dialog with your saved template, which you can apply.


5. Click "Apply" on the newly drawn template, and "Okay" to close the modal. You will see that the anonymization template has been applied to the selected scan thumbnails. This is only a preview, no pixels have been altered yet.

You can apply more than one saved template to a scan. You can also click "Reset" on any selected scan to remove all templates and return it to its original state. 


6. Click "X" to close the scan group. You have completed your review of that group of scans, but you can always reopen it and make further changes before uploading.


Reviewing "Unsupported Scans"

Even though you cannot apply pixel anonymization to unsupported scans – either because there is no pixel data or there is an unsupported data structure – it can still be useful to review these scans in this panel. All unsupported scans are grouped together by SOP Class.


Clicking "Review" will open these scans in a thumbnail viewer, just as with Valid scans.


You may discover, as in this example, that a scan encoding problem is preventing pixel anonymization from being applied as it should. (In this example, the scan in question has multiple SOP Class UIDs in its files. This is not supported by the Desktop Client, as we cannot provide a UI to inspect uploads on a file by file basis.)

Excluding Scans from an Upload

In this instance, you may want to exclude this scan from this upload, and deal with it later. This is a simple process:

1. Select the Scan Thumbnail

2. Click "With Selected: Exclude"

3. Close the scan group preview window

You will see an update in the scan grouping panel.

Finish and Upload

After you have completed your review, clicking "Finish and Upload" gives you a quick summary of the scan data you have selected to upload. Note that all data that has not explicitly been excluded will be uploaded. Click "Continue Upload" to begin sending data to your XNAT.


Once uploads are complete, you can view the session in XNAT and see that pixel anonymization has been applied.

$label.name