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.
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. Please keep in mind that you will need to update the HTTP Export information appropriately with the server and port of your NBIA server.
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.
<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> |
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.
In this situation your configuration pipeline would be setup to process objects in the following manner: HTTP Import --> IDMap --> Anonymization --> Export.
<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> |
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.
<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> |