This post documents on the integration of OpenClinica clinical trial database solution (or ECRF) and Conquest dicom and web server as gateway machine. This setup allow uploading anonymized DICOM data from any PACS to a central (DICOM) server through SFTP while populating the ECRF with the correct anonymized UIDs.
This work has been done at NKI/AVL as part of the CTMM AirForce project.
I have added a step by step description here on how all systems are setup. This is some explanation of the the setup that allows copying anonymized PACS data to a central SFTP server while storing the anonymized patient ID's in the ECRF:
1) OPENCLINICA (central) with an added javascript file initiates a HTML connection to a local web server inside the hospitals firewall
2) Conquest WEB SERVER (local) runs OPENCLINICA specific lua scripts controlling the DICOM server and sending UIDs to OPENCLINICA
3) Conquest DICOM server (local) Makes contact with the PACS and collects, anonymizes, zips and sends data to central SFTP server
Both conquest systems run on a single gateway computer that has to be installed locally in each hospital inside the firewall.
A single custom Javascript file is added to an OpenCLinica install (i.e., in the TomCat includes folder)
The eCRF designer adds the following items to the excel file defining the eCRF:
LEFT_ITEM_TEXT: <A HREF=# onclick="javascript:link(8,1,'CT'); return false;">Name of exam:</A>
RIGHT_ITEM_TEXT: .
HEADER: Diagnostic scans:<script type="text/javascript" language="JavaScript" src=http:includes/marcel.js></script>
SUBHEADER: PACS link: <A HREF=# onclick="javascript:openconfig(); return false;">Configure</A>
RESPONSE TYPE: calculation
RESPONSE_VALUES_OR_CALCULATIONS: func: getExternalValue("http://dummy",right,600,400)
The javascript functions do the following:
openconfig(): (has to be clicked once for each new computer where ECRFs are entered)
asks (and saves in cooky) for web adress of gateway server and shows gateway config. The rest of the configuration is done by the hospital's IT people on the gateway computer and is shared between all users
link(item, date, modality):
asks (and remembers) SubjectID to Hospital Patient ID link in cooky on the computer
opens browser window to query/view the PACS images and select the one to be linked to ECRF
parameters:
item number where the anonymized PACS link will be stored in the eCRF
item number where the scan date is found, or an empty string if no date is known
item number where the DICOM modality is found, a constant string, or an empty string if no modality is known
The OpenCLinica interface
Clicking on the left item text allows entering the PACS link
The right item text and its hyperlink are not used, its code just forces OpenClinica to generates a window 'listener'
Clicking 'link' and 'collect' will transfer all selected images to the gateway
Clicking 'submit' will send the images to the central server