Modality and workstation vendors routinely place information in DICOM private tags that are useful to enable applications further downstream. Whether the vendor placed the information in the private tag because the DICOM standard was not modified to present the concept or because the vendor is behind in implementation is not relevant. The issue remains with these conflicting goals:
- Remove all information in a DICOM image that could potentially contain PHI
- Retain as much information as possible to enable processing at a later time (e.g., two years later)
Goal #2 is hard to achieve because it is difficult to obtain proper documentation.
The purpose of this document is to provide a procedure for determining which tags in a set of images should be retained as part of a submission to the Cancer Imaging Archived hosted at WUSTL. More information on the operation of the Tag Sniffer and the data recorded can be found here: Tag Sniffer Details
Output of the Research Procedure
We expect that collection sites will have gathered images from multiple clinical sites, each with equipment from different manufacturers and/or software versions. The goal of this procedure is to produce a report that indicates the equipment that was used to collect the set of images and the tags that are present in those images. The report will contain no PHI so that it can be shared with the WUSTL team to configure the software used for the submission process.
This analysis will use tools provided by WUSTL. These tools will require the Java 6 JRE as a minimum requirement. No other software (database, scripting language) is required. The software is designed to run on Windows and Unix/Linux systems.
The system uses a Java based database, HSQLDB. The database manager and required files are included with the WUSTL tools. Instructions for running the database are included at the end of this document. You need to run the database for the extract and dump applications. It is not needed for the initial scan.
The software tools are installed in a second folder named BASE. See the Installation Instructions at the end of this document for further information.
How to Start
- The installation instructions are written in two sections at the end of this document. The section labeled Installation provides the directions for extracting and configuring the software. This software relies on a database package called HSQLDB. That software is included with our distribution. The directions for running the database are found in Instructions for Running HSQLDB.
- Complete the installation before continuing to step 2.
- We support different models of image collections. Select the model that best describes your collection. A link is provided to take you to a separate document with instructions on how to use the analysis tools.
- Candidate Images are Stored on a Disk in a Segregated Area
- Candidate Images are Stored on a Disk and are Mixed with Other Images
- Candidate Images are Stored in a Segregated PACS
- Candidate Images are Stored in a PACS Mixed with Other Images
- Candidate Images are Stored as a Collection of CDs and DVDs
The software distribution is available on our forge site: https://mirgforge.wustl.edu/gf/project/dicomtagsniffer/frs/
The software is included in a single zip file: wustl_DICOM_Tag_Sniffer_vvv.zip where vvv represents a version number. There is no Windows or other installer. Follow the instructions below.
- Select a target folder for the software. Unzip the file in your target folder.
- You will see a folder named wustl_DICOM_tag_sniffer. In the directions for running the applications above, this is referred to as the BASE folder. You will need to use the full path for BASE to make the software run correctly
- The scripts in this package rely on the java JRE and execute from the command line. You will need to make sure that that your path includes the java executable. We use the Sun/Oracle version in our testing.
- Look in the folder BASE/conf. You will see one log4j properties files.
- You will see notes about LOGLEVEL near the bottom of the file. We release the software at the INFO level. That is recommended unless you need more log information to track a problem.
- The property log4j.appender.R.File at the bottom of the file names the output log file. You should configure appropriately for your system. At a minimum, you will want to change the base of the path from E:/wustl_DICOM_tag_sniffer to a folder appropriate for your system.
- Follow the instructions in the section below for running the HSQLDB database server.
- Open the database manager and look in the left flap after you connect to the DCM database. You should see tables defined for:
- If you cannot open the HSQLDB database or if you do not see those tables, there is something wrong with the installation procedure or software.
Instructions for Running HSQLDB
We include the necessary files for the HSQLDB software. The HSQLDB server is pre-configured to connect to a database named dcm (for DICOM). The java applications connect to that server.
Starting the Database Server
- Open the folder BASE/hsqldb/data
- Run the script:
- dcm.bat (Windows)
- dcm (Linux)
- This will start the server and listen for connections/queries
- The server is configured with the necessary tables
- Do not use the hsqldb/bin/runServer script. That will start the server in a general mode without benefit of the defined tables.
Stopping the Server
Use the database manager described next
HSQLDB comes with a simple GUI for managing the database. To run the manager:
- Open the folder BASE/hsqldb/bin
- Run the script:
- runManager.bat (Windows)
- runSwingManager (Linux)
- The management system pops up a window that allows you to connect to a database. Under type, select "HSQL Database Engine Server" as shown in Figure 1 below.
Figure 1: Initial Connection Screen for HSQL Database Manager
- Complete the URL for the database as shown in Figure 2, below. You merely need to add "dcm" to the end of the path.
- Enter "DCM" in the Setting Name so you can recall this setting later.
Figure 2: Full URL to Connect to the DCM Database
- After you have entered or selected DCM, all other settings should be complete. Activate the Ok button.
- The user is SA
- There is no password;
This gives you a GUI that can be used to query and manage the server.
To shutdown the server:
- Activate the Clear button to clear the SQL interpreter.
- Select Command->SHUTDOWN
- Activate the Execute button. The server will shutdown
To clear the database:
The java applications clear the database at the beginning of new scans through your folder structure. If you want to clear the database yourself (for example, you are finished with the process and no longer want PHI stored in the local database):
- Shutdown the HSQLDB server as described above.
- In the folder BASE/hsqldb/data, copy dcm.script.orig to dcm.script. This gives you a database with the proper table definitions but not data.