Application Hosting A Standardized API for Launching and
20 Slides9.14 MB
Application Hosting A Standardized API for Launching and Communicating with 'Plug-in' Applications DICOM Working Group 23 Lawrence Tarbox, Ph.D., Chair Mallinckrodt Institute of Radiology Washington University in St. Louis School of Medicine
WG-23 Goal Portable applications that ‘plug into’ any host that implements the standardized ‘socket’ any WG23 Host caBIG Agfa Syngo Cedara Advantage
Goals A Standardized API that is: Language independent Platform independent IP independent Extensible Secure
Suggested Staging Stage one – Access to DICOM Datasets and Results Recording Stage Two – Access to Non-Interactive Application Services (e.g. print, archive) Stage Three – Access to Interactive Application Services (e.g. GUI, ‘skins’, rendering) Stage Four – Standard Workflow Descriptions, and Interactions Between Hosted Software
Targets for Stage One Basic Launch and Control of a Hosted Application – Load, Unload, Start, Abort Simple Interchange of Data Between a Hosting System and Hosted Applications – Data inputs and outputs described using DICOM Semantics – DICOM messages/objects need not be used directly, instead the API could give access to parts of the objects Manual Configuration
Highlights Since MI2006 Multiple Drafts of Supplement 118 Initial Reading by WG-6 Joined forces with the NCI caBIG XIP Project – – – – Open Source Reference Implementation Demonstrations at RSNA Targeted Use Cases in Clinical Research Accelerated Schedule
WG23 / XIP Relationship WG-23 addresses clinical integration and vendor interoperability by defining standardized “plugs” and “sockets” (APIs) XIP developed Application caBIG XIP addresses an openarchitecture, open-source, integrated environment for rapid application development based on WG 23 APIs Standard API Commercial Vendor #1 Commercial Vendor #2 Clinical Unix, Mac, PC Internet Server Prototype & Collaboration
What is ? The “eXtensible Imaging Platform” is an open source environment for rapidly developing medical imaging applications from an extensible set of modular elements. It allows developers to easily develop, evaluate, and new approaches to medical imaging problems in a translational research setting. WG-23 interfaces will be used to gain application portability and platform independence. The National Cancer Institute (NCI) contracted for the development of XIP through its caBIG program.
Who is Contributing to ? The caBIG In Vivo Imaging Workspace, Software SIG – Released the XIP RFP – Provides primary feedback to the XIP development team Washington University in St. Louis, Electronic Radiology Lab – Main coordinating site – Will leverage other activities in caBIG, DICOM, IHE, clinical trials Siemens Corporate Research (SCR) – Contributing a suite of tools – ivRAD – that will form the basis for XIP – Experts in moving ideas from prototypes to commercial reality DICOM WG-23 – Standardizing the interfaces between a hosting system (e.g. workstation) and hosted post-processing applications (a.k.a. “Plugins”) – Representation from both vendor and user communities ITK/VTK community – Providing image processing and visualization libraries with the assistance of Kitware
What is Included in XIP Rapid Application Development Tools and Libraries (RAD) – Development and application build environment – Extensive and extensible set of libraries for imaging and visualization (XIP Libraries) – Uses the Open Inventor framework – Includes code generating wizards to create new objects and wrap existing libraries XIP Workstation (WS) – A reference implementation of a medical imaging workstation developed using XIP RAD and DICOM WG-23 APIs – Includes two key components: XIP Application – a use case specific “plug-in” application integrated via the DICOM WG-23 Interface XIP Host – the hosting environment that provides XIP Applications with access to services such as data stores, remote processing, etc.
Framework & Architecture Open Inventor Nodes, Engines, Manipulators for Rendering, Local Processing, etc. Open Inventor Scene Graph / Pipeline Optional GUI Engine Open Inventor Nodes, Engines, Manipulators for Accessing Data Services, Host Services, Remote Services, etc. XIP Application XIP Libraries (Can be replaced with any WG23-compatible Host) . . Annotation and Markup AIM MetaData WG23 Analytical Svc. Remote Processing WG23 caGrid WG23 Data Svc. WG23 caGrid XIP Host Data Access XIP Host Adapter API . XIP LIB VTK ITK Host Independent Host-Specific XIP Libraries ‘Glue’ Logic that Ties Host Dependent Libraries to the Host Environment
Open Inventor Open Inventor is an object-oriented 3D toolkit offering a comprehensive solution to interactive graphics programming problems. URL: http://oss.sgi.com/projects/inventor/ Its programming model is based on the Model/View/Controller design pattern and the concept of Pipelines. Open Inventor: – – – – – – – – is built on top of OpenGL defines a standard file format for 3D data interchange introduces a simple event model for 3D interaction provides animation objects called Engines provides high performance object picking is window system and platform independent is a cross-platform 3D graphics development system encourages programmers to create new customized objects
Open Inventor modules in C modules represent Engines, Nodes and Manipulators – Engines enable the creation of processing pipelines – Nodes support the concept of scene graphs, which are hierarchical structures of objects describing what needs to be visualized in 2D/3D – Manipulators handle input devices, measurements and coordinate transforms in response to user interaction
Integrating existing toolkits into Automatic Wrapper generation for 2D/3D libraries/toolkits such as ITK and VTK – User can review parsed results and choose to support only the desired data types, hide some methods, exclude some classes, etc. Wrapped ITK functions include Region Growing, Neighborhood, Isolated, Confidence, Watershed, Thresholding, Edge Detection, Laplacian, Gaussian Support for ITK Data Meshes and Vector Fields
XIP Features Modules for DICOM loading and 2D/3D Display XIP modules extend Open Inventor to facilitate medical imaging application development: – – – – – – – – – – Database access (read/write) DICOM query/retrieve Image/Volume types Lookup tables Transfer function editor MPR intersection lines/manipulators camera control (pan/zoom/rotate) 2D Image display ROIs, Annotations, Measurements
XIP Features Modules for Fused Volume Rendering Volumes are stored separately and fused at rendering time, not as a preprocessing step Support for unlimited number of fused large volumes Each volume has independent control of: – – – – – – – Transformation (rot, trans, scale, shear ) Color/opacity Transfer function Crop box Cut-planes Rendering mode (VRT, MIP, MinIP, DRR, SSD) Voxel Resolution Sampling rate Performance – 20 frames/sec during interactivity – 1 sec for final diagnostic-quality update
XIP Features Modules for Client/Server Remote Visualization Visual creation and configuration of distributed services Thin Client and Smart Client configurations are supported Support for caGRID remote grid computing services XIP modules for DICOM Query, Sorting, remote data transmission XIP can serialize the entire state to a file, thereby facilitating support for client/server state management and recovery as well as workflow management.
An Open Platform for WG23 Application Development
Volunteers Solicited WG 23 welcomes your input. We would be even happier with your assistance in creating this new standard or helped in the reference implementation. – Join the mailing list and contribute ideas – Join us at future meetings – Participate in NCI caBIG IVI WS SW SIG
Q&A