Slicer XNAT interface - QIICR/ProjectIssuesAndWiki GitHub Wiki

Objective

Improve integration of 3D Slicer with XNAT

Specific tasks

  1. test the capabilities of 3D Slicer XNAT extension (installation, support of different platforms, usability, support of various DICOM and non-DICOM data types)
  2. summarize and report issues identified to the Slicer developer list
  3. Consider the usability of XNATSlicer XNAT API from other modules?

Status

Issues identified

#1 Connection failure with http:// - cannot use SPLBWH XNAT

XnatSlicer Module: Checking if SSL is installed... XnatSlicer Module: SSL is installed! Traceback (most recent call last): File "/Users/fedorov/github/XNATSlicer/XNATSlicer/XnatSlicer.py", line 893, in onLoginButtonClicked self.beginXnat() File "/Users/fedorov/github/XNATSlicer/XNATSlicer/XnatSlicer.py", line 670, in beginXnat self.XnatView.begin() File "/Users/fedorov/github/XNATSlicer/XNATSlicer/XnatSlicerLib/ui/XnatView.py", line 66, in begin queryArguments = ['accessible']) File "/Users/fedorov/github/XNATSlicer/XNATSlicer/XnatSlicerLib/io/XnatIo.py", line 797, in getFolderContents json = self.getJson(newQueryUri) File "/Users/fedorov/github/XNATSlicer/XNATSlicer/XnatSlicerLib/io/XnatIo.py", line 636, in getJson response = self.httpsRequest('GET', xnatUri).read() File "/Users/fedorov/github/XNATSlicer/XNATSlicer/XnatSlicerLib/io/XnatIo.py", line 314, in httpsRequest connection.request(restMethod, req.get_selector (), body = body, headers = header) File "/Users/fedorov/local/builds/Slicer4-Release/python-install/lib/python2.7/httplib.py", line 958, in request self._send_request(method, url, body, headers) File "/Users/fedorov/local/builds/Slicer4-Release/python-install/lib/python2.7/httplib.py", line 992, in _send_request self.endheaders(body) File "/Users/fedorov/local/builds/Slicer4-Release/python-install/lib/python2.7/httplib.py", line 954, in endheaders self._send_output(message_body) File "/Users/fedorov/local/builds/Slicer4-Release/python-install/lib/python2.7/httplib.py", line 814, in _send_output self.send(msg) File "/Users/fedorov/local/builds/Slicer4-Release/python-install/lib/python2.7/httplib.py", line 776, in send self.connect() File "/Users/fedorov/local/builds/Slicer4-Release/python-install/lib/python2.7/httplib.py", line 1161, in connect self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file) File "/Users/fedorov/local/builds/Slicer4-Release/python-install/lib/python2.7/ssl.py", line 381, in wrap_socket ciphers=ciphers) File "/Users/fedorov/local/builds/Slicer4-Release/python-install/lib/python2.7/ssl.py", line 143, in init self.do_handshake() File "/Users/fedorov/local/builds/Slicer4-Release/python-install/lib/python2.7/ssl.py", line 305, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [Errno 1] _ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

#2 Loading of non-scalar volumes: DCE MRI is loaded as a scalar volume. Need to have special handling/prompt user when multiple loadables are identified.

#3 Implicit import/caching: the data loaded into Slicer appears to be stored in a cache, and imported into DICOM DB. Need to confirm this, perhaps prompt user for desired behavior (copy to DICOM DB files location or store temporarily in the cache).

References