Page History
This document is geared towards providing common templates for using CTP to submit data to NBIA. For more information about configuring CTP pipelines please refer to the RSNA's CTP pipeline wiki section at: http://mircwiki.rsna.org/index.php?title=CTP-The_RSNA_Clinical_Trial_Processor#Pipelines.
*please note, this page is under development and is not yet complete*
Overview
CTP functions both as a client and server for transmitting data to NBIA. In a typical installation of NBIA you will configure CTP clients for each submitting site that is sending data to your NBIA server. At your server location you will have a CTP server to receive the data sent by the CTP clients. In general you should not need to make any changes to the CTP server component as that is configured during the installation of NBIA. However there are some scenarios where you will need to make changes to the CTP clients in order to meet the needs of the submitters providing you with data.
Below are some common scenarios along with configuration file templates that will help you easily setup CTP clients for each situation. Once you've downloaded the correct config.xml file based on your submitter's situation make a backup of any existing config.xml in your CTP root directory (if you had one already) and replace it with this copy. Please keep in mind that you will need to update the HTTP Export information appropriately with the server and port of your NBIA server.
...
Single collection of images stored in PACS
In the scenario where the submitter's image data is all stored on their PACS you would leverage CTP's ability to import data directly via a DICOM send from the PACS. Your configuration pipeline would be setup to process objects in the following manner: DICOM Import - -> IDMap - -> Anonymization --> HTTP Export.
- Here is an example config.xml which you can use to achieve this: *attach file here*
...
- . In this case CTP will listen for your PACS to send data on port 1104 and send the processed data to a CTP server listening at https://university.edu:1443:
Code Block |
---|
<Configuration>
<Server port="80" />
<Pipeline name="Main Pipeline">
<ImportService
name="DICOM Import"
class="org.rsna.ctp.stdstages.DicomImportService"
root="roots/dicom-import"
port="1104" />
<Processor
name="ID Map"
class="org.rsna.ctp.stdstages.IDMap"
root="roots/idmap" />
<Anonymizer
name="Anonymizer"
class="org.rsna.ctp.stdstages.DicomAnonymizer"
root="roots/anonymizer"
script="roots/anonymizer/scripts/da.script"
quarantine="quarantines/anonymizer" />
<ExportService
name="HTTP Export"
class="org.rsna.ctp.stdstages.HttpExportService"
root="roots/http-export"
url="https://university.edu:1443" />
</Pipeline>
</Configuration>
|
Single collection of images stored on HDD/CD
In a scenario where the submitter's data is stored on a hard drive or CD you will need an additional tool called FileSender. Once you have downloaded and extracted FileSender you will use it to select the files from your computer to send them to the CTP client.
- You can download File Sender here: http://mircwiki.rsna.org/index.php?title=FileSender
- If your data is on CD it is highly recommended that you copy everything on to your hard drive prior to sending it with FileSender.
In this situation your configuration pipeline would be setup to process objects in the following manner: HTTP Import --> IDMap --> Anonymization --> Export.
- Here is an example config.xml which you can use to achieve this. In this : *attach file here*In addition to having to update the HTTP Export information in the config.xml file you will also have to verify that FileSender is pointing to the correct server and port as indicated in the HTTP Import section of the config.xml filecase CTP will listen only for DICOM Objects transmitted from your FileSender on port 7777 and send the processed data to a CTP server listening at https://university.edu:1443:
Code Block |
---|
<Configuration>
<Server port="80" />
<Pipeline name="Main Pipeline">
<ImportService
name="HTTP Import"
id="HTTP Import"
class="org.rsna.ctp.stdstages.HttpImportService"
root="roots/http-import"
port="7777"
ssl="yes"
zip="no"
acceptDicomObjects="yes"
acceptXmlObjects="no"
acceptZipObjects="no"
acceptFileObjects="no"
quarantine="quarantines/http-import" />
<Processor
name="ID Map"
class="org.rsna.ctp.stdstages.IDMap"
root="roots/idmap" />
<Anonymizer
name="Anonymizer"
class="org.rsna.ctp.stdstages.DicomAnonymizer"
root="roots/anonymizer"
script="roots/anonymizer/scripts/da.script"
quarantine="quarantines/anonymizer" />
<ExportService
name="HTTP Export"
class="org.rsna.ctp.stdstages.HttpExportService"
root="roots/http-export"
url="https://university.edu:1443" />
</Pipeline>
</Configuration>
|
Multiple image collections using a single CTP client
In a scenario where the submitter intends to send more than one collection of images to NBIA via CTP you will need to setup new pipelines for each collection. For this situation let's assume the submitter has two collections of images. The first is a CT Lung study which they have stored on DICOM CDs and the second is an MR Brain study which is stored on their PACS.
- Before beginning the transmission the submitter should first copy the CT Lung Study data to their hard drive and download FileSender (http://mircwiki.rsna.org/index.php?title=FileSender).
- Note that each pipeline is using a different anonymization script so that you can fill in parameters for each data set separately
- Here is an example config.xml which you can use to submit the data to NBIA. In this case CTP will listen for the CT Lung study DICOM Objects transmitted from your FileSender on port 7777. It will listen for your PACS to send MR Brain study data on port 1104. It will send the processed data for both pipelines to a CTP server listening at https://university.edu:1443:
Code Block |
---|
<Configuration>
<Server port="80" />
<Pipeline name="CT Lung Pipeline">
<ImportService
name="CT Lung HTTP Import"
id="CT Lung HTTP Import"
class="org.rsna.ctp.stdstages.HttpImportService"
root="roots/http-import/CT-Lung"
port="7777"
ssl="yes"
zip="no"
acceptDicomObjects="yes"
acceptXmlObjects="no"
acceptZipObjects="no"
acceptFileObjects="no"
quarantine="quarantines/http-import/CT-Lung" />
<Processor
name="CT Lung ID Map"
class="org.rsna.ctp.stdstages.IDMap"
root="roots/idmap/CT-Lung" />
<Anonymizer
name="CT Lung Anonymizer"
class="org.rsna.ctp.stdstages.DicomAnonymizer"
root="roots/anonymizer/CT-Lung"
script="roots/anonymizer/scripts/CT-Lung-da.script"
quarantine="quarantines/anonymizer/CT-Lung" />
<ExportService
name="CT Lung HTTP Export"
class="org.rsna.ctp.stdstages.HttpExportService"
root="roots/http-export/CT-Lung"
url="https://university.edu:1443" />
</Pipeline>
<Pipeline name="MR Brain Pipeline">
<ImportService
name="MR Brain DICOM Import"
class="org.rsna.ctp.stdstages.DicomImportService"
root="roots/dicom-import/MR-Brain"
port="1104" />
<Processor
name="ID Map"
class="org.rsna.ctp.stdstages.IDMap"
root="roots/idmap/MR-Brain" />
<Anonymizer
name="MR Brain Anonymizer"
class="org.rsna.ctp.stdstages.DicomAnonymizer"
root="roots/anonymizer/MR-Brain"
script="roots/anonymizer/scripts/MR-Brain-da.script"
quarantine="quarantines/anonymizer/MR-Brain" />
<ExportService
name="MR Brain HTTP Export"
class="org.rsna.ctp.stdstages.HttpExportService"
root="roots/http-export/MR-Brain"
url="https://university.edu:1443" />
</Pipeline>
</Configuration>
|