Ally:
The DicomAnonymizer modifies non-pixel elements.
When you add a DicomAnonymizer stage into as pipeline, the configuration
editor initially specifies a file in the CTP/scripts folder
(scripts/DicomAnonymizer.script). You can change that if you want. I strongly
recommend keeping all your scripts in the scripts directory, but if you want
different scripts for different purposes, just give them different names.
Remember that if you have multiple stages using the same script file, any
changes you make to the script for one stage will be seen by all the stages that
use that script.
When the DicomAnonymizer is instantiated during CTP startup, it looks to
see if the specified script exists. If it doesn't exist, it copies an example
file from the CTP/examples directory and gives it the specified name. Because
CTP is used for both clinical trials and radiological teaching files, and
because those two applications have very different anonymization requirements,
the DicomAnonymizer copies either the example-ctp-dicom-anonymizer.script or the
example-tfs-dicom-anonymizer.script, depending on whether the configuration
includes the MIRC teaching file plugin.
The TFS version of the DicomAnonymizer script is an implementation of the
DICOM PS 3.15 Appendix E Basic Application Confidentiality Profile (113100). It
is very aggressive. It is useful for teaching files where attribute
confidentiality is critical.
The CTP version of the DicomAnonymizer script is the script defined by the
U.S. National Cancer Institute for its clinical trials. It includes the
following profiles from DICOM PS 3.15 Appendix E:
113100 Basic Application Confidentiality Profile
113105 Clean Descriptors Option
113107 Retain Longitudinal Temporal Information – Modified Dates
Option
113108 Retain Patient Characteristics Option
113109 Retain Device Identity Option
It is the responsibility of the CTP site administrator to examine the
script to confirm that it is meeting the requirements of the trial before
beginning production.
Your analysis to the DicomPixelAnonymizer transfer syntax problem is
correct. The DicomPixelAnonymizer can only process uncompressed images or images
with the JPEG Baseline transfer syntax. It skips images that it cannot handle.
You can put a DicomDecompressor stage before the DicomPixelAnonymizer to
guarantee that the images can be handled by the DicomPixelAnonymizer. You can
put a DicomTranscoder stage after the DicomPixelAnonymizer stage if you want to
recompress to Lossless JPEG to save space.
Note: since the DicomPixelAnonymizer matches signatures based on the
contents of the non-pixel elements and the DicomAnonymizer modifies non-pixel
elements, it is best to put the DicomPixelAnonymizer ahead of the
DicomAnonymizer in the pipeline to ensure that elements required for signature
matching haven't been anonymized away.
One more thing: If you have a pipeline that is intended only to handle
images of a certain type, you can put a DicomFilter stage in the pipeline after
the import service to quarantine images that don't meet the requirements of the
pipeline.
JP