The CTP DICOM Anonymizer Configurator
CTP includes a DICOM anonymizer which can be configured to modify DICOM objects according to a set of scripts defined by the system administrator. This article describes how to use the configuration servlet. It is intended for administrators.
A CTP pipeline may contain anonymizer stages for any of the object types that CTP recognizes (DICOM, XML, and Zip). In some situations, there may even be multiple anonymizers for objects of the same type. Each anonymizer stage is controlled by its own script file, making it possible to modify objects in different ways as they proceed down the pipeline.
The CTP DICOM anonymizer script file is an XML file containing elements of four types:
- Parameters provide global text values that may be referenced by name in scripts for DICOM elements.
- Elements contain script commands for individual DICOM elements.
- Keep commands indicate whether all elements in a DICOM group are to be globally kept in the anonymized object.
- Remove commands identify certain element or group types which are to be globally removed while producing the anonymized object.
The CTP DICOM Anonymizer provides detailed instructions on how to write scripts for individual elements.
The DICOM Committee has published Supplement 142, Clinical Trial De-identification Profiles, which defines several collections of rules for anonymization. These collections, called "profiles", specify what must be done to achieve specific objectives. The most aggressive anonymization is provided by the "Baseline Profile".
The CTP DICOM Anonymizer Configurator implements the concept of a profile as a script file containing only those parameters, elements, keep commands, and remove commands which are relevant to the objective of the profile. A profile is said to be "applied" to a script:
- All items in the profile are added to the script file.
- If an item in the profile is also in the script file, the script item is replaced by the profile item, except for parameters, which retain their original values.
- Any item in the script which is not in the profile remains unmodified in the script.
The NCI has developed CTP profiles to implement the Supplement 142 profiles. They have all been included in the CTP. This work was primarly done by Justin Kirby, with some consulting assistance from David Clunie.
The Basic Application Confidentiality Profile is designed to meet HIPAA privacy regulations. The default DICOM anonymizer script has had this profile applied. Therefore, when initially configuring a CTP system, any DICOM anonymizers automatically meet the requirements of the Basic Application Confidentiality Profile without further configuration. While this profile is extremely aggressive, it is wise to test with real data objects before committing to production. Depending on the specific data objects to be processed, other pipeline stages may be required to achieve full HIPAA compliance. For example, if images are processed containing PHI burned into the pixels, a DicomPixelAnonymizer stage may also be required.
2 The Configurator Window
To enter the DICOM Anonymizer Configurator, log on to a CTP administrator account and click the DICOM Anonymizer Configurator button on the main CTP page. On the resulting page, script files are organized by pipeline and pipeline stage. Select the desired script file. The configurator page will display as shown below.
Items may be enabled by checking the box in the Select column. Items may be modified by changing the text in the Script column.
2.1 File Menu
The File menu provides items for saving the current values as either a script file or a profile, and for returning to the main page without saving.
The Save item saves all the items as the script file which was originally selected. No provision is offered for creating a new script file.
2.1.2 Save as profile
The Save as profile item saves the current state of the parameters and all the selected items as a profile. A submenu provides the option to create a new profile or to update an existing one. User-saved profiles are stored in a separate directory from the DICOM Supplement 142 profiles, and the DICOM profiles cannot be modified.
The Close item returns to the main page without saving the script. If the script has been modified since it was last saved, a warning is displayed providing the option to continue without saving or to cancel and remain in the configurator.
2.2 Profiles Menu
The Profiles menu provides submenus for selection of a profile from either the standard DICOM Supplement 142 library or the local store of saved profiles. The selected profile is applied to the script file that is currently open, but the result is not saved until the Save item is selected from the File menu.
2.3 View Menu
The View menu provides options for controlling which items are displayed in the table of items.
2.3.1 Selected elements
The Selected elements item hides all elements whose checkboxes have not been checked in the Select column. This does not remove the elements from the script; it only changes which items are displayed. It has no effect on the saving of the script. This feature can be useful in navigating a script file.
2.3.2 All elements
The All elements item shows all elements in the script file. It effectively undoes what the Selected elements item did.
2.3.3 Scroll to group
The Scroll to group item provides a submenu which navigates the table to the start of specific groups of elements. The behavior of the function depends on the browser. In Internet Explorer 7 and later, the table scrolls to the selected group. In other browsers, all items except the selected group are hidden. The effect of this function can be undone by the All elements item.
2.4 Edit Menu
The Edit menu provides options for creating and removing items from the script.
2.4.1 New Parameter...
The New Parameter... item displays a dialog allowing the user to create a new parameter.
2.4.2 Remove Parameter...
The Remove Parameter... item displays a dialog allowing the user to remove a new parameter.
2.4.3 Remove All Parameters
The Remove All Parameters item removes all the parameters in the script. This function can be useful while creating new profiles.
2.4.4 New Element...
The New Element... item displays a dialog allowing the user to create a new element. This function is typically used to create new elements in private groups, but it can be used to create elements for DICOM elements that happen not to be available in the script.
When creating a new element in a standard group, it is best to specify the element's tag using the simple syntax: ggggeeee, where g and e are hexadecimal values. (Other syntaxes are supported for the definition of an element, but those syntaxes are not supported within scripts.)
When adding a DICOM standard element to a script, care should be taken to assign a name to the element which matches the DCM4CHE library name. Assigning another name will not cause the anonymizer to fail, but the assigned name will not work as a reference in scripts, since only the DCM4CHE names are used in evaluating scripts fopr standard elements.
When creating a new element in a private group, a special syntax is provided:
The name assigned to a private element in its definition may be used to reference the element in scripts. Care should be taken to ensure that the name not conflict with a standard DCM4CHE library name, as DCM4CHE names take precedence over defined names.
2.4.5 Remove Element...
The Remove Element... item displays a dialog allowing the user to remove an element. This function can be useful in removing unwanted private elements, but there is generally no need to remove DICOM standard elements.
2.4.6 New Keep Group...
The New Keep Group... item displays a dialog allowing the user to create a new global keep command. Keep commands can be created for any group number (a four-hexadecimal digit number). The default script includes keep commands for the normally kept groups, but it may be convenient in certain situations to create keep commands for private groups.
2.4.7 Remove Keep Group...
The Remove Keep Group... item displays a dialog allowing the user to remove a global keep command.
2.4.8 Deselect all
The Deselect all item removes the checks from all checkboxes. This function can be useful in creating or editing profiles.
2.5 Help Menu
The Help menu provides options for loading wiki pages into separate windows for reference while editing a script.
3 Advanced Topics
3.1 Creating a New Profile
These are the steps for creating a new profile:
- Open any script file.
- Select Edit > Remove Parameter... to remove any undesired parameters.
- Select Edit > New Parameter... to create any required parameters.
- Select Edit > New Keep Group... to create any required global keep commands.
- Configure the Select checkboxes as desired.
- Configure the Script text fields as desired.
- Select File > Save as profile... > New profile... and enter the desired name of the profile in the dialog box as shown below. For compatibility with Unix-based systems, it is best to make the profile name a single word without embedded whitespace, separating individual words, if so desired, by hyphens or underscores (or representing the words in camel case).
Note that unless you want to overwrite the original script file with the changes, you should not select File > Save.
3.2 Editing an Existing Profile
These are the steps for editing an existing profile. (Note that you cannot edit a DICOM Supplement 142 profile and save it in the DICOM profiles library. When you save the profile, it will appear in the Saved profiles library.)
- Open any script file.
- Select Edit > Remove All Parameters to remove all parameters in the script.
- Select Edit > Deselect all to remove the checks in all Select checkboxes.
- Select Profiles and apply the profile that you wish to edit.
- Make any changes you want.
- Select File > Save as profile... and select the profile name that you wish to update.
Note that it is possible to use this technique for creating a new profile from another profile simply by choosing File > Save as profile... > New profile... when you save it.