Integerating XIP into the ClearCanvas Workstation

Download Report

Transcript Integerating XIP into the ClearCanvas Workstation

Integrating XIP into a FOSS
clinical workstation
Final Presentation
Max Meltser
Advisors: David Channin,
Pat Mongkolwatt
With much help from
Vlad Kleper
The Project

Take two freely available, useful tools, and
combine them
–
–


XIP
ClearCanvas Workstation
Improve the ease of creating new filters, views,
etc. and implementing them within a usable
workstation
Give radiologists more control over how
images are viewed
Review of XIP





Currently being worked on in the Electronic
Radiology Lab at Washington University in St.
Louis
Funded by the NCI’s CaBIGTM program
Based upon Siemen’s ivRad and RadBuilder
Incorporates both ITK and VTK
Advantages of XIP

Easily modifiable “Scene Graphs”
–



Simple, visual, flowchart design – no coding
necessary
Scene graphs can be saved as a modifiable file
that XIPBuilder will be able to read
Scene graphs can also be compiled into a file
that can be only be viewed
Freely available
Review of ClearCanvas Workstation




Free, open source PACS workstation
developed by ClearCanvas
Developed for radiologists, clinicians, and also
for researchers
Easily Extensible through the creation of
ClearCanvas specific plug-ins
Written in C#
What are the goals?



Integrate XIP into ClearCanvas Workstation
Load dicom files in an XIP viewer within
ClearCanvas
Allow users to dynamically modify the scene
graph within XIPBuilder and to see the
changes within ClearCanvas
The Goal:
ClearCanvas Workstation
XIP Viewer
So, How do we do this?

Initially attempted using a Java DLL
–


Didn’t work
Pat stayed in contact with Lawrence Tarbox of
the XIP project
Sent us a .Net sample XIP viewer
–
Initially only showed a cone
The Various Approaches
New
Old XIP
XIP
Libraries
C++ DLL
(for Java calls)
Java
Application
C++ DLL
(for C# calls)
C#
Application
XIP
What Next?
Putting Working XIP into
ClearCanvas




Created a new Desktop Workspace
environment from ClearCanvas
“Gutted” the XIP example
Transplanted the guts into ClearCanvas
Added controls…
Controlling XIP

Limited API
–
–
–
–
–
–
create(…)
destroy()
loadLibraries(…)
loadGraph(…)
set(String nodeProperty, String value)
get(String nodeProperty)
Controlling XIP
Controlling XIP

Parsing
–
–
–

Fields are not uniform
All options are not shown
Input types are not shown
Hardcoding
–
Scene graphs must be created with proper labels
Continued Adding Functionality




3D view would work sporadically
Button on the toolbar
Option in the context menu
Automatically load data set from
ImageViewer…
–

3D panel worked consistently
Hardcoding image files into the scene graph
was at fault.
Review of what works
What Still Needs Doing

BUGS
–
–
–
–

XIP Fails to initialize
Oblique causes an AccessExceptionViolation
Cannot load a new scene graph
Dataset loading limitations
Things to do
–
–
–
Better integrate controls into ClearCanvas
Add XIP as a tile in the ImageViewer, not a tab
Parser for .iv files?
Any Questions?