Tutorial. on SlicerRT and 3D Slicer modules

Similar documents
NA-MIC National Alliance for Medical Image Computing SlicerRT Extension

NA-MIC National Alliance for Medical Image Computing Subject Hierarchy

SlicerRT radiation therapy extension for 3D Slicer DICOM aspects

3D Slicer Overview. Andras Lasso, PhD PerkLab, Queen s University

Dosimetric Analysis Report

Data Loading & 3D Visualization

Slicer3 Tutorial: Registration Library Case 14. Intra-subject Brain PET-MRI fusion

SlicerRT Image-guided radiation therapy research toolkit for 3D Slicer

3D Slicer. NA-MIC National Alliance for Medical Image Computing 4 February 2011

Dynamic management of segmented structures in 3D Slicer

Programming in Slicer4

Programming in Slicer4

Slicer3 Tutorial: Registration Library Case 08

Fractional labelmaps for computing accurate dose volume histograms

Using Pinnacle 16 Deformable Image registration in a re-treat scenario

ICS Tutorials: Basic Operations

Atlas Registration & Label Merging

This tutorial will guide you how to setup and run your own minecraft server on a Linux CentOS 6 in no time.

ATC Conformance Statement Overview

Detecting White Matter Lesions in Lupus

Slicer3 Training Tutorial Using EM Segmenter with Non- Human Primate Images

Slicer3 minute tutorial

DCMTK and QIICR. Open Connections. QIICR Kickoff Boston October 22, 2013

Detecting White Matter Lesions in Lupus

Building 3D Slicer. MACbioIDi February March Carlos Luque

Software Testing with NA-MIC Kit

Setting up the programming environment on Windows

You will follow these steps: A. Verify that a student account exists. B. Create a classroom to hold lecture slides.

EMSegmenter Tutorial (Advanced Mode)

Introduction. Welcome to 3D Slicer! Surgical Planning Laboratory -1- Brigham and Women s Hospital

8.0.6 New Features Guide Auto Window/Level Adjustments

BUILDING TESTING DEBUGGING PACKAGING BUILDING OOREXX

Rapid Application Prototyping Environment. Currently 920+ Standard modules in the MeVisLab SDK core, modules delivered in total

Slicer3 Minute Tutorial

PCRT 3D. Scalable Architecture System. User-Friendly. Traceable. Continuos Development

1. What statistic did the wc -l command show? (do man wc to get the answer) A. The number of bytes B. The number of lines C. The number of words

Extended Brilliance Workspace v3.5 Report Template Editor

Studio 2010 Command Prompt

ADC Data Capture using Capture Demo and CCS Memory Browser IWR14xx/AWR14xx example. Document Version V

Integrating with Slicer3. National Alliance for Medical Image Computing

Module Road Map. 7. Version Control with Subversion Introduction Terminology

Version control system (VCS)

SlicerRT Radiation therapy research toolkit for 3D Slicer

EnMAP-Box. Installation Guide for Version 2.1

Secondary 3D Dose QA Fully Automated using MOSAIQ's IQ Engine. MOSAIQ User Meeting May Antwerp

Help Guide. mm Copyright Mirada Medical Ltd, Mirada Medical RTx 1

EE516: Embedded Software Project 1. Setting Up Environment for Projects

Using IDLE for

DeeControl User Manual

At the shell prompt, enter idlde

Day 1 Agenda. Brio 101 Training. Course Presentation and Reference Material

Computer Page Editing USB storage Series 4 device Software 1.06* device

What is KNIME? workflows nodes standard data mining, data analysis data manipulation

EduCase TM EduCase TM Features. Covers all aspects of EduCase TM features and supporting components.

WRITING CONSOLE APPLICATIONS IN C

Cart Product Selector. Quick Start Guide

APAR PO06620 Installation Instructions

Installation and Upgrade Guide Zend Studio 9.x

AutoForm plus R6.0.3 Release Notes

Setting up the Seagate D4 NAS with Hard Disk Sentinel Pro. By Gary Ryan. Adapted from:

Moblin v2 SDK. Open Source Technology Center Presented by Bob Spencer

Caja File Manager. Desktop User Guide

Installation and Upgrade Guide Zend Studio 9.x

6 Git & Modularization

Lecture 01 - Working with Linux Servers and Git

Supercomputing environment TMA4280 Introduction to Supercomputing

NetBackup Deployment Template User Guide for System Center Configuration Manager (SCCM)

Seg3D Lab Walkthrough

Instructions for using Borg and Ide CONNECT. Referring Provider Portal. Version 3.5.

Toolchain for Network Synthesis

CXO-Cockpit Hands-On Workshop

Experience SAP HANA Cloud Portal. Use SAP HANA Cloud Portal to Create Engaging Websites in 5 Simple Steps

Code Autocomplete Manual

Amira D Data Visualization and Analysis Software for Life Sciences

LiveNX Upgrade Guide from v5.1.2 to v Windows

Lab 1: Robots Allocation and Operation

QUICK START GUIDE. Quick Start Guide. This will assist you to setup and distribute content to a StratosMedia Player device in 4 easy steps.

Oracle Application Express: Administration 1-2

Slicer4Minute Tutorial. Sonia Pujol, Ph.D. Surgical Planning Laboratory Harvard Medical School

What s new in UserLock 5?

Web Scraping with Python

Tutorial: Exporting characters (Max)

Systems Programming and Computer Architecture ( ) Exercise Session 01 Data Lab

Cinegy Air 11 Quick Start Guide. Cinegy GmbH. Document version: a8e6e50

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

Deploying Code42 CrashPlan with Jamf Pro. Technical Paper Jamf Pro 9.0 or Later 21 January 2019

CGI Architecture Diagram. Web browser takes response from web server and displays either the received file or error message.

College on Multiscale Computational Modeling of Materials for Energy Applications Trieste, 4-15 July 2016

Tutorial: Packaging your server build

Report Viewer Tutorial

Quick Guide to InVivoScope/VivoQuant CT/NM Atlas Tools

EECS Software Tools. Lab 2 Tutorial: Introduction to UNIX/Linux. Tilemachos Pechlivanoglou

Slicer3 Tutorial. Manual Registration. NA-MIC National Alliance for Medical Image Computing Dominik Meier, Ron Kikinis

IDL Tutorial. Working with Images. Copyright 2008 ITT Visual Information Solutions All Rights Reserved

dicompyler-core Documentation

OpenAmeos tutorial. Contents. Author: Balázs Simon, BME IIT, 2012.

- QuB tutorials - World3D

The Bliss GUI Framework. Installation Guide. Matías Guijarro

Content Publisher User Guide

The Road to CCSv4. Status Update

Transcription:

Tutorial on SlicerRT and 3D Slicer modules

Agenda Acquire and build SlicerRT (on an existing Slicer) Use python console in Slicer Create extension and module skeletons Use extension template Use scripted module template Use SlicerRT Write a simple scripted module Write a simple CLI module - 2 -

Acquire and build SlicerRT We must have a 3D Slicer built in Release mode before starting Get SlicerRT from the repository mkdir SlicerRT svn co https://subversion.assembla.com/svn/slicerrt/trunk/ SlicerRt/src SlicerRT Configure SlicerRT mkdir SlicerRT_R64-bin cd SlicerRT_R64-bin../cmake-2.8.10.2-Linux-i386/cmake DCMAKE_CXX_COMPILER=/usr/bin/g++-4.6 DCMAKE_BUILD_TYPE=Release DSlicer_DIR=/home/slicer/Support/Slicer4- SuperBuild-Debug/Slicer-build../SlicerRT Build SlicerRT make - 3 -

Next item on agenda Acquire and build SlicerRT (on an existing Slicer) Use python console in Slicer - 4 -

Launch Slicer and load data cd ~/Support/Slicer4-SuperBuild- Debug/Slicer-build./Slicer - 5 -

Introducing the python console - 6 -

Accessing the MRML scene and nodes Accessing MRML scene directly c = slicer.mrmlscene.getnodesbyname('ctchest') c.getnumberofitems() v = c.getitemasobject(0) Also useful: slicer.mrmlscene.getnodebyid() Using utility functions v = slicer.util.getnode('ctchest') OR v = slicer.util.getnode('ct*') Also useful (returns a list!): slicer.util.getnodes('ct*') - 7 -

Manipulating MRML objects Setting window/level values programmatically d = v.getdisplaynode() d.setautowindowlevel(0) d.setwindowlevel(350,40) Setting color palette programmatically c = slicer.util.getnode('ocean') d.setandobservecolornodeid(c.getid()) Slicer classes reference http://www.slicer.org/doc/html/classes.html - 8 -

Next item on agenda Acquire and build SlicerRT (on an existing Slicer) Use python console in Slicer Create extension and module skeletons Use extension template Use scripted module template - 9 -

Create extension skeleton Setting window/level values programmatically cd ~/Support python ~/Support/Slicer/Utilities/Scripts/ModuleWizard.py --template ~/Support/Slicer/Extensions/Testing/SuperBuildExten siontemplate --target./myextension MyExtension cd MyExtension python ~/Support/Slicer/Utilities/Scripts/ModuleWizard.py --template ~/Support/Slicer/Extensions/Testing/ScriptedLoadabl eextensiontemplate/scriptedloadablemoduletemplate - -target./myscriptedmodule MyScriptedModule - 10 -

Create extension skeleton cont d #1 Edit super-build Cmake file gedit CMakeLists & Add under the other add_subdirectory lines add_subdirectory(myscriptedmodule) Quit editor cd.. mkdir MyExtension_R64-bin cd MyExtension_R64-bin - 11 -

Create extension skeleton cont d #2 Configure extension skeleton../cmake-2.8.10.2-linux-i386/cmake DCMAKE_CXX_COMPILER=/usr/bin/g++-4.6 DSlicer_DIR=/home/slicer/Support/Slicer4- SuperBuild-Debug/Slicer-build DMyExtension_SUPERBUILD=0../MyExtension Build extension skeleton make - 12 -

Add new modules to the paths Start Slicer Add modules to the additional module paths Go to Edit / Application settings / Modules Click the >> button next to the Additional module paths section Add the following directories: ~/Support/MyExtension_R64-bin/lib/Slicer-4.2/qtloadable-modules same location but the directory qt-scripted-module - 13 -

Acquire and build SlicerRT (on an existing Slicer) Use python console in Slicer Create extension and module skeletons Use extension template Use scripted module template Use SlicerRT Next item on agenda - 14 -

Start Slicer Add SlicerRT to the paths Add SlicerRT to the additional module paths Go to Edit / Application settings / Modules Click the >> button next to the Additional module paths section Add all sub-directories from: /home/slicer/support/slicerrt_r64-bin/innerbuild/lib/slicer-4.2 Press Restart - 15 -

Go to module list / Testing / TestCases / SlicerRT Demo RSNA2012 Self Test Click Load data Load RT data Click (This step is not necessary, it just shows the DICOM browser which has to be used when loading one s own data, not downloaded automatically from script) When the data is loaded, save the scene for faster future loading using - 16 -

Registering CT volumes Go to module list / Registration / General Registration (BRAINS) Set the module parameters as seen in this image an click Apply Select Create and rename - 17 -

Resampling the day 2 dose volume Go to module list / Registration / Resample Image (BRAINS) Set the module parameters as seen in this image an click Apply - 18 -

Go to module list / Radiotherapy / Dose Accumulation Un-check Show dose volumes only checkbox Select reference dose volume 5: RTDOSE Check volumes 5: RTDOSE 5_RTDOSE_Day2 Accumulating doses Open combobox in the Output section Select Create new Volume Click Apply Accumulate these volumes in the same way 5: RTDOSE 5_RTDOSE_Day2_Resampled_Rigid - 19 -

Computing dose volume histograms Go to Radiotherapy / Dose Volume Histogram Select the first accumulated dose volume from the list Select PTV as the structure set Click Compute DVH Select second accumulated dose volume Compute DVH Do it for other structures, such as BRSTEM or optoptic Click Select Chart Click Create new Chart Check Show/hide all - 20 -

Next item on agenda Acquire and build SlicerRT (on an existing Slicer) Use python console in Slicer Create extension and module skeletons Use extension template Use scripted module template Use SlicerRT Write a simple scripted module - 21 -

Write our scripted module #1 Open MyExtension/MyScriptedModule/MyScriptedModule.py Rename the module and put it in our extension category Create widgets to specify inputs: Under look for input volume selector, and change and Create second input selector Rename outputselector to input2selector everywhere setup and onapplybutton and onselect functions Set the same settings as for the first one - 22 -

Write our scripted module #2 Look for class MyScriptedModuleLogic on the bottom Insert this code above the Run function - 23 -

Write our scripted module #3 Insert this code in the Run function above the return statement Displaying the output Create the text field under the Apply button - 24 -

Try our scripted module Build the extension (go to its bin directory and make) Load data using the demo module (load the scene we saved) Convert two structures, for example the two eyeballs (Orbit ) using the Radiotherapy / Contours module Go to our module in MyExtension / Center of Masses Set the two labelmaps as input Press Apply - 25 -

Last item on agenda Acquire and build SlicerRT (on an existing Slicer) Use python console in Slicer Create extension and module skeletons Use extension template Use scripted module template Use SlicerRT Write a simple scripted module Write a simple CLI module - 26 -

Write our CLI module #1 Open MyExtension/SuperCLIModuleTemplate/SuperCLIModuleTe mplate.xml Rename the module and put it in our extension category - 27 -

Create controls Write our CLI module #2-28 -

Write our CLI module #3 Open MyExtension/SuperCLIModuleTemplate/SuperCLIModuleTe mplate.cxx Include needed headers Define used types (replace FilterType definition) - 29 -

Write our CLI module #4 Add processing code - 30 -

Load data using the demo module (load the scene we saved) Convert one structure, for example PTV using the Contours module Go to our module in MyExtension / Morphology Set the PTV labelmap as input Create output volume Press Apply Change Operation to Erode Create output volume Press Apply Try our CLI module Show volumes in the viewers: access slice toolbar, expand and turn on lock ( ), select output volumes and PTV labelmap - 31 -

Congratulations! Thanks for attending! - 32 -