The key concept in understanding CTP is the pipeline. A
pipeline is an ordered sequence of pipeline stages. A pipeline
stage is a component that performs some kind of processing on a file as it flows
down the pipeline.
There are four types of pipeline stages:
1. An import service obtains files from an external
source, which might be an external system like a PACS or a workstation, or it
might be a storage system like an a directory tree.
2. A processor performs some kind of computational
function on a file which might or might not result in the file being modified.
An anonymizer is an example of a processor, but there are many other
types.
3. A storage service stores a copy of a file in some kind
of storage system.
4. An export service sends either a copy of a file or just
information abstracted from the file to an external system.
As described in the article referenced above, CTP contains many built-in
pipeline stages of each of the four types.
CTP is configured through an XML file, config.xml. The best way to
configure CTP is to use the configuration editor in the Launcher program, as
described in
http://mircwiki.rsna.org/index.php?title=The_CTP_Launcher_Configuration_Editor.
With the editor, you can construct pipelines from scratch, or you can insert any
of the pre-configured pipelines listed in the
Pipeline menu.
(Typically, after inserting a pre-configured pipeline, you will want to delete
any stages that are unnecessary in your application and modify some of the
pre-configured stage attributes to you liking.) The editor contains help text
for each of the parameters of each pipeline stage.
CTP can be started using the Launcher program or it can be installed as a
service. When setting up a new CTP site or adding a new pipeline, it is usually
convenient to use the Launcher during testing0.
Here is a simple example. Suppose you want to send DICOM images from your
PACS to CTP and have CTP anonymize them and store them in a local directory. The
pipeline would consist of a DicomImportService, a DicomAnonymizer, and a
FileStorageService.
As described in
http://mircwiki.rsna.org/index.php?title=The_CTP_FileStorageService_Web_Server,
the FileStorageService provides some flexibility in the storage hierarchy. In
large collections, the
type attribute can be used to group
studies by year, month, week, or even day. The
root attribute
specifies the location of the storage tree within which the studies are stored.
The attribute can be specified as a relative or absolute path. When storing on
disks located elsewhere on the network, most people have simply mounted the
remote disk and referenced it as if it were local. It might be possible to
specify a fully qualified network location – I have never tested that.
The FileStorageService has two other capabilities that you might find
useful:
-- If you specify a jpeg child element for the
FileStorageService (from the Children menu in the editor), it
will create and store JPEG images of any size you configure.
JP