SlideShare a Scribd company logo
Recent Developments in
Free Medical Imaging Software
OrthancCon I, 2019
Andrew Crabb
The Johns Hopkins University
I Do Imaging
Why Free Medical Imaging Software?
Why Use It?
Medical imaging is well-served by free software
Benefits from collaborative imaging community
Source code often available
Can address specialist/niche/research needs
Why Write It?
Recognition and publicity
Free testing by demanding users
Contributions and improvements
Sometimes required by sponsor
Imaging software is competing for the user’s most valuable asset: time
Today’s users are accustomed to high-quality free software
Many imaging areas are served by multiple free applications
Only the best software becomes self-sustaining
Distributions
Virtual Machines
Docker/DockerHub
• docker run
jodogne/orthanc
Vagrant/VirtualBox
• git clone xnat.git;
./run xnat setupPlatform Specific
HomeBrew (Mac)
• brew install dcmtk
apt/yum (Linux)
• apt-get install
python-dicom
zypper (openSUSE)
• zypper install
orthanc
Chocolatey (Windows)
Source
GitHub/BitBucket repo
• hg clone bitbucket.org/sjodogne/orthanc
Language Specific
Pip (Python)
• pip search nifti # (12 results)
npm/yarn (Node JS)
• npm search dicom # (24 results)
DICOM Libraries
DCMTK (OFFIS)
• C++ ‘reference’ DICOM library
• Steady enhancements since 2003
• Command line utilities
dcm4che (dcm4che.org)
• Java DICOM toolkit since ca. 2000
• Many command line applications
• Adding DICOMWeb capabilities
GDCM (Mathieu Malaterre)
• Grassroots DICOM
• C++, binds to Python, C#, Java, PHP
• SCU network operations
DICOM Libraries
dicomParser (Cornerstone Project)
• Lightweight JavaScript library for parsing
DICOM byte streams
• For HTML5 browsers, Node, Meteor
pydicom (Darcy Mason)
• Pure Python library, no dependencies
• Read pixel data with NumPy, Pillow
Ruby DICOM (Christoffer Lervåg)
• Full Ruby DICOM implementation
RadiAnt
• Windows DICOM viewer from Poland
• Steady enhancements since its introduction
• Multiplanar reconstruction
• PET-CT image fusion
• High performance GPU-based 3D rendering
• PACS query/send/retrieve
Horos
Weasis
Long-term project (Nicolas Roduit)
Desktop java imaging, PACS deployment
Web access using weasis:// protocol
DICOM send, query, retrieve
DICOMWeb capabilities (Orthanc,
DCM4CHEE)
Store
Process
Render
Display
Transfer
Client
Transfer
HTTP
PACS Server
PACS
Plugin
104DCM
80DCM
WADO
Oviyam (Raster Images)
• Web-based DICOM viewer
• Fronts any DICOM server with WADO
• Displays images as JPG in browser
Store
Browser
Display
Transfer
Client
Transfer
HTTP
PACS Server
80
104
WADO
Plugin
JPG
DCM
Trends
DICOMWeb Cloud
JavaScript Python
Language Trends
Trending:
Python, Node
Steady:
C++, C
Post-tending:
Javascript, Java
Lua
sitk = SimpleITK
gauss = sitk.GaussianSource (size, sigma,
center);
deriv = sitk.Derivative(gauss);
function IncomingHttpRequestFilter(method, uri, ip, u
-- Only allow GET requests for non-admin users
if method == 'GET' then
return true
elseif username == ‘heyitsme' then
-- @usage nmap -p4242 --script dicom-ping <target>
--
-- @output
-- PORT STATE SERVICE REASON
-- 4242/tcp open dicom syn-ack
-- | dicom-ping:
-- | dicom: DICOM Service Provider discovered!
Cornerstone (Chris Hafey)
• Javascript library for building interactive image viewers
• Display in web browsers using HTML5 Canvas
• Independent of image container, transport
• Not constrained to an interaction paradigm
• Format-specific image loaders:
• WADO Image Loader (WADO-RS)
• Web Image Loader
OHIF Viewer
• Zero-footprint DICOM viewer
• Supports DICOMWeb
• Extensions for: Cornerstone,
microscopy, VTK
Nextcloud DICOM viewer
VTK-JS and ITK-JS (Kitware)
VTK-JS
VTK: Visualization Toolkit
3D scientific data manipulation and
visualization
JavaScript port of core VTK features
3D data rendering in a browser
Coding similar to VTK C++/Python
ITK-JS
ITK Insight Toolkit
Image analysis library in C++
Compiled to asm.js and WebAssembly
Spatial analysis in a browser or Node.js
Supports all file formats of ITK
JavaScript ports of foundation packages used in dozens of imaging applications
DICOMWeb
• DICOM: Proprietary transport
• Nodes identified by three fields:
• Address (DNS or IP)
• Application Entity (AE) Title – 16 character string
• Port number (Port 104 reserved for DICOM)
C-FIND “Locate study matching these criteria”
C-GET <uid> ”Send this study to my IP”
C-MOVE <uid> <source AET> <dest AET> “Send this study from source to dest”
C-STORE <data> “Store this study/series”
DICOMWeb
Provides standard REST interface to DICOM image store
Removes much of the complexity of DICOM transport
DICOM DICOMweb
Query C-FIND QIDO-RS
Query on ID for DICOM objects
GET /studies?...
GET /studies/id/series?
Retrieve C-GET WADO-RS
Web access of DICOM objects
GET /studies/id
GET /studies/id/series/id
Store C-STORE STOW-RS
Store over the web
POST /studies/id
DICOMWeb Servers
DCM4CHEE (dcm4che.org)
Comprehensive DICOM archive in Java
Full implementation of DICOM standard + HL7
Requires Wildfly (JBoss), database, LDAP
Available on Docker containers
Dicoogle (University of Aveiro)
Platform-independent PACS (Java)
Implemented on dcm4che
Highly modular: Major functions
(store/index/search) by plugins
WebUI plugins: Front-end
pluggable components in JS
Implements DICOMWeb
Complex querying: Free text
Strong developer support
Dicoogle
DICOMWeb clients
Osirix
Dicomweb Client (dcmjs.org)
DICOMcloud (Zaid Safadi)
DICOMweb Server
Open source DICOMweb server that
implements RESTful services
Implements QIDO-RS, STOW-RS,
WADO-RS, WADO-URI
‘Azure friendly’ – written in C#
Uses Fellow Oak .NET DICOM library
Live demo on Azure
DICOMweb-js Client
JavaScript image viewer
Works with any DICOMweb server
Imaging without DICOM?
More usual in: research, smaller imaging modalities
• Frequent conversion to and from DICOM
Working at the file level is common
• Often working away from clinical PACS systems
Specialized file formats for simplicity (NIFTI, MINC)
• Popular with investigators and developers for ease of adoption
Lack DICOM’s specialized transport protocol
DICOM Nifti
NIPY: Neuroimaging in Python
Nipype: A uniform interface to existing neuroimaging software
Nibabel: Read/write access to (neuro)imaging file formats
NIFTI, GIFTI, Analyze, MINC, MGH
Full coverage of coordinate systems and affines
NIPY.org: Python processing of neuroimaging data
Projects in pipeline processing, computational anatomy, file I/O,
functional MRI, machine learning, electrophysiology, data visualization
BIDS: Brain Imaging Data Structure
A data exchange format using simple file formats and a defined directory structure
Primarily MRI/fMRI, with extensions for PET, EEG, MEG
Images in NIfTI, tabular data in TSV, key-value pairs in JSON
my-experiment
participants.tsv
sub-01
anat
sub-01_t1.nii.gz
sub-01_t1.json
func
sub-
01_task_bold.nii.gz
sub-
01_task_bold.json
dwi
sub-01_dwi.nii.gz
{
"TaskName": "N
Back”,
"RepetitionTime":
0.8,
BIDS Apps
Portable neuroimaging pipelines that understand
BIDS datasets
Apps are stored in Docker Hub
Run in Docker or Singularity
Each has the same core command line arguments
Integrate into automated platforms
What’s next?
Web-native serverless PACS
Highly granular, highly scalable, highly available
NoSQL databases
May suit formats with a sparsely populated dictionary
Non-DICOM storage, transport
Would eliminate DICOM dependency and translation
Meta-PACS
Tagging, multiple identities, de-identification, error
handling, grouping

More Related Content

What's hot

KASan in a Bare-Metal Hypervisor
 KASan in a Bare-Metal Hypervisor  KASan in a Bare-Metal Hypervisor
KASan in a Bare-Metal Hypervisor
LF Events
 
Threads presentation
Threads presentationThreads presentation
Threads presentation
Lawrence Galvez
 
Soa
SoaSoa
Two dimensional viewing
Two dimensional viewingTwo dimensional viewing
Two dimensional viewingMohd Arif
 
Multimedia authoring and user interface
Multimedia authoring and user interface Multimedia authoring and user interface
Multimedia authoring and user interface
nirmalbj
 
Using strace
Using straceUsing strace
Using strace
Ryan Robson
 
09 01 configuration du serveur samba
09 01 configuration du serveur samba09 01 configuration du serveur samba
09 01 configuration du serveur samba
Noël
 
Network and System Administration
Network and System AdministrationNetwork and System Administration
Network and System Administration
IgguuMuude
 
Back face detection
Back face detectionBack face detection
Back face detection
Pooja Dixit
 
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et WebAlphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm
 
virtual memory management in multi processor mach os
virtual memory management in multi processor mach osvirtual memory management in multi processor mach os
virtual memory management in multi processor mach os
AJAY KHARAT
 
Distributed System
Distributed SystemDistributed System
Distributed System
Praveen Penumathsa
 
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
Telecharger Cours Systèmes d’exploitation windows: Administration  WindowsTelecharger Cours Systèmes d’exploitation windows: Administration  Windows
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
webreaker
 
Multimedia networking
Multimedia networkingMultimedia networking
Multimedia networking
Kikima Jimmy
 
Mise en place d’une solution de tests de sécurité pour les passerelles réside...
Mise en place d’une solution de tests de sécurité pour les passerelles réside...Mise en place d’une solution de tests de sécurité pour les passerelles réside...
Mise en place d’une solution de tests de sécurité pour les passerelles réside...
Salmen HITANA
 
Alphorm.com Formation Hacking et Sécurité , avancé
Alphorm.com Formation Hacking et Sécurité , avancéAlphorm.com Formation Hacking et Sécurité , avancé
Alphorm.com Formation Hacking et Sécurité , avancé
Alphorm
 
Chapter 8 distributed file systems
Chapter 8 distributed file systemsChapter 8 distributed file systems
Chapter 8 distributed file systemsAbDul ThaYyal
 
Integrated RIS PACS System
Integrated RIS PACS SystemIntegrated RIS PACS System
Integrated RIS PACS System
Telerad Tech Pvt Ltd
 
Parallel databases
Parallel databasesParallel databases
Parallel databases
Aniruddha Patil
 

What's hot (20)

KASan in a Bare-Metal Hypervisor
 KASan in a Bare-Metal Hypervisor  KASan in a Bare-Metal Hypervisor
KASan in a Bare-Metal Hypervisor
 
Threads presentation
Threads presentationThreads presentation
Threads presentation
 
Soa
SoaSoa
Soa
 
Computer Graphics
Computer GraphicsComputer Graphics
Computer Graphics
 
Two dimensional viewing
Two dimensional viewingTwo dimensional viewing
Two dimensional viewing
 
Multimedia authoring and user interface
Multimedia authoring and user interface Multimedia authoring and user interface
Multimedia authoring and user interface
 
Using strace
Using straceUsing strace
Using strace
 
09 01 configuration du serveur samba
09 01 configuration du serveur samba09 01 configuration du serveur samba
09 01 configuration du serveur samba
 
Network and System Administration
Network and System AdministrationNetwork and System Administration
Network and System Administration
 
Back face detection
Back face detectionBack face detection
Back face detection
 
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et WebAlphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
 
virtual memory management in multi processor mach os
virtual memory management in multi processor mach osvirtual memory management in multi processor mach os
virtual memory management in multi processor mach os
 
Distributed System
Distributed SystemDistributed System
Distributed System
 
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
Telecharger Cours Systèmes d’exploitation windows: Administration  WindowsTelecharger Cours Systèmes d’exploitation windows: Administration  Windows
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
 
Multimedia networking
Multimedia networkingMultimedia networking
Multimedia networking
 
Mise en place d’une solution de tests de sécurité pour les passerelles réside...
Mise en place d’une solution de tests de sécurité pour les passerelles réside...Mise en place d’une solution de tests de sécurité pour les passerelles réside...
Mise en place d’une solution de tests de sécurité pour les passerelles réside...
 
Alphorm.com Formation Hacking et Sécurité , avancé
Alphorm.com Formation Hacking et Sécurité , avancéAlphorm.com Formation Hacking et Sécurité , avancé
Alphorm.com Formation Hacking et Sécurité , avancé
 
Chapter 8 distributed file systems
Chapter 8 distributed file systemsChapter 8 distributed file systems
Chapter 8 distributed file systems
 
Integrated RIS PACS System
Integrated RIS PACS SystemIntegrated RIS PACS System
Integrated RIS PACS System
 
Parallel databases
Parallel databasesParallel databases
Parallel databases
 

Similar to Recent Developments in Free Medical Imaging Software

Docker Training - June 2015
Docker Training - June 2015Docker Training - June 2015
Docker Training - June 2015
{code}
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker Workshop
Jonas Rosland
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Jonas Rosland
 
Turku2017 recentdevelopments
Turku2017 recentdevelopmentsTurku2017 recentdevelopments
Turku2017 recentdevelopments
Andrew Crabb
 
Building production-quality apps with Node.js
Building production-quality apps with Node.jsBuilding production-quality apps with Node.js
Building production-quality apps with Node.js
mattpardee
 
Benefits of an Open environment with Wakanda
Benefits of an Open environment with WakandaBenefits of an Open environment with Wakanda
Benefits of an Open environment with WakandaAlexandre Morgaut
 
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
Edge AI and Vision Alliance
 
DEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in DominoDEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
Heiko Voigt
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class Libraries
Vagif Abilov
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Ryan Cuprak
 
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming..."The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
Edge AI and Vision Alliance
 
Kube con china_2019_7 missing factors for your production-quality 12-factor apps
Kube con china_2019_7 missing factors for your production-quality 12-factor appsKube con china_2019_7 missing factors for your production-quality 12-factor apps
Kube con china_2019_7 missing factors for your production-quality 12-factor apps
Shikha Srivastava
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Pierre Joye
 
Apache Cordova 4.x
Apache Cordova 4.xApache Cordova 4.x
Apache Cordova 4.x
Ivano Malavolta
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
Liang Bo
 
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinTech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
LeanIX GmbH
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source Contributions
Neev Technologies
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
Ivano Malavolta
 
Android : How Do I Code Thee?
Android : How Do I Code Thee?Android : How Do I Code Thee?
Android : How Do I Code Thee?
Viswanath J
 

Similar to Recent Developments in Free Medical Imaging Software (20)

Docker Training - June 2015
Docker Training - June 2015Docker Training - June 2015
Docker Training - June 2015
 
Docker and Containers overview - Docker Workshop
Docker and Containers overview - Docker WorkshopDocker and Containers overview - Docker Workshop
Docker and Containers overview - Docker Workshop
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015
 
Turku2017 recentdevelopments
Turku2017 recentdevelopmentsTurku2017 recentdevelopments
Turku2017 recentdevelopments
 
Building production-quality apps with Node.js
Building production-quality apps with Node.jsBuilding production-quality apps with Node.js
Building production-quality apps with Node.js
 
Benefits of an Open environment with Wakanda
Benefits of an Open environment with WakandaBenefits of an Open environment with Wakanda
Benefits of an Open environment with Wakanda
 
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
“OpenCV: Past, Present and Future,” a Presentation from OpenCV.org
 
DEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in DominoDEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
DEV117 - Unleash the Power of the AppDev Pack and Node.js in Domino
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class Libraries
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
OpenStack Summit
OpenStack SummitOpenStack Summit
OpenStack Summit
 
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming..."The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
 
Kube con china_2019_7 missing factors for your production-quality 12-factor apps
Kube con china_2019_7 missing factors for your production-quality 12-factor appsKube con china_2019_7 missing factors for your production-quality 12-factor apps
Kube con china_2019_7 missing factors for your production-quality 12-factor apps
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18
 
Apache Cordova 4.x
Apache Cordova 4.xApache Cordova 4.x
Apache Cordova 4.x
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinTech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source Contributions
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
 
Android : How Do I Code Thee?
Android : How Do I Code Thee?Android : How Do I Code Thee?
Android : How Do I Code Thee?
 

Recently uploaded

Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 

Recently uploaded (20)

Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 

Recent Developments in Free Medical Imaging Software

  • 1. Recent Developments in Free Medical Imaging Software OrthancCon I, 2019 Andrew Crabb The Johns Hopkins University I Do Imaging
  • 2. Why Free Medical Imaging Software? Why Use It? Medical imaging is well-served by free software Benefits from collaborative imaging community Source code often available Can address specialist/niche/research needs Why Write It? Recognition and publicity Free testing by demanding users Contributions and improvements Sometimes required by sponsor Imaging software is competing for the user’s most valuable asset: time Today’s users are accustomed to high-quality free software Many imaging areas are served by multiple free applications Only the best software becomes self-sustaining
  • 3.
  • 4. Distributions Virtual Machines Docker/DockerHub • docker run jodogne/orthanc Vagrant/VirtualBox • git clone xnat.git; ./run xnat setupPlatform Specific HomeBrew (Mac) • brew install dcmtk apt/yum (Linux) • apt-get install python-dicom zypper (openSUSE) • zypper install orthanc Chocolatey (Windows) Source GitHub/BitBucket repo • hg clone bitbucket.org/sjodogne/orthanc Language Specific Pip (Python) • pip search nifti # (12 results) npm/yarn (Node JS) • npm search dicom # (24 results)
  • 5. DICOM Libraries DCMTK (OFFIS) • C++ ‘reference’ DICOM library • Steady enhancements since 2003 • Command line utilities dcm4che (dcm4che.org) • Java DICOM toolkit since ca. 2000 • Many command line applications • Adding DICOMWeb capabilities GDCM (Mathieu Malaterre) • Grassroots DICOM • C++, binds to Python, C#, Java, PHP • SCU network operations
  • 6. DICOM Libraries dicomParser (Cornerstone Project) • Lightweight JavaScript library for parsing DICOM byte streams • For HTML5 browsers, Node, Meteor pydicom (Darcy Mason) • Pure Python library, no dependencies • Read pixel data with NumPy, Pillow Ruby DICOM (Christoffer Lervåg) • Full Ruby DICOM implementation
  • 7. RadiAnt • Windows DICOM viewer from Poland • Steady enhancements since its introduction • Multiplanar reconstruction • PET-CT image fusion • High performance GPU-based 3D rendering • PACS query/send/retrieve
  • 9. Weasis Long-term project (Nicolas Roduit) Desktop java imaging, PACS deployment Web access using weasis:// protocol DICOM send, query, retrieve DICOMWeb capabilities (Orthanc, DCM4CHEE) Store Process Render Display Transfer Client Transfer HTTP PACS Server PACS Plugin 104DCM 80DCM WADO
  • 10. Oviyam (Raster Images) • Web-based DICOM viewer • Fronts any DICOM server with WADO • Displays images as JPG in browser Store Browser Display Transfer Client Transfer HTTP PACS Server 80 104 WADO Plugin JPG DCM
  • 12. Language Trends Trending: Python, Node Steady: C++, C Post-tending: Javascript, Java
  • 13. Lua sitk = SimpleITK gauss = sitk.GaussianSource (size, sigma, center); deriv = sitk.Derivative(gauss); function IncomingHttpRequestFilter(method, uri, ip, u -- Only allow GET requests for non-admin users if method == 'GET' then return true elseif username == ‘heyitsme' then -- @usage nmap -p4242 --script dicom-ping <target> -- -- @output -- PORT STATE SERVICE REASON -- 4242/tcp open dicom syn-ack -- | dicom-ping: -- | dicom: DICOM Service Provider discovered!
  • 14. Cornerstone (Chris Hafey) • Javascript library for building interactive image viewers • Display in web browsers using HTML5 Canvas • Independent of image container, transport • Not constrained to an interaction paradigm • Format-specific image loaders: • WADO Image Loader (WADO-RS) • Web Image Loader
  • 15. OHIF Viewer • Zero-footprint DICOM viewer • Supports DICOMWeb • Extensions for: Cornerstone, microscopy, VTK
  • 17. VTK-JS and ITK-JS (Kitware) VTK-JS VTK: Visualization Toolkit 3D scientific data manipulation and visualization JavaScript port of core VTK features 3D data rendering in a browser Coding similar to VTK C++/Python ITK-JS ITK Insight Toolkit Image analysis library in C++ Compiled to asm.js and WebAssembly Spatial analysis in a browser or Node.js Supports all file formats of ITK JavaScript ports of foundation packages used in dozens of imaging applications
  • 18. DICOMWeb • DICOM: Proprietary transport • Nodes identified by three fields: • Address (DNS or IP) • Application Entity (AE) Title – 16 character string • Port number (Port 104 reserved for DICOM) C-FIND “Locate study matching these criteria” C-GET <uid> ”Send this study to my IP” C-MOVE <uid> <source AET> <dest AET> “Send this study from source to dest” C-STORE <data> “Store this study/series”
  • 19. DICOMWeb Provides standard REST interface to DICOM image store Removes much of the complexity of DICOM transport DICOM DICOMweb Query C-FIND QIDO-RS Query on ID for DICOM objects GET /studies?... GET /studies/id/series? Retrieve C-GET WADO-RS Web access of DICOM objects GET /studies/id GET /studies/id/series/id Store C-STORE STOW-RS Store over the web POST /studies/id
  • 20. DICOMWeb Servers DCM4CHEE (dcm4che.org) Comprehensive DICOM archive in Java Full implementation of DICOM standard + HL7 Requires Wildfly (JBoss), database, LDAP Available on Docker containers
  • 21. Dicoogle (University of Aveiro) Platform-independent PACS (Java) Implemented on dcm4che Highly modular: Major functions (store/index/search) by plugins WebUI plugins: Front-end pluggable components in JS Implements DICOMWeb Complex querying: Free text Strong developer support
  • 24. DICOMcloud (Zaid Safadi) DICOMweb Server Open source DICOMweb server that implements RESTful services Implements QIDO-RS, STOW-RS, WADO-RS, WADO-URI ‘Azure friendly’ – written in C# Uses Fellow Oak .NET DICOM library Live demo on Azure DICOMweb-js Client JavaScript image viewer Works with any DICOMweb server
  • 25. Imaging without DICOM? More usual in: research, smaller imaging modalities • Frequent conversion to and from DICOM Working at the file level is common • Often working away from clinical PACS systems Specialized file formats for simplicity (NIFTI, MINC) • Popular with investigators and developers for ease of adoption Lack DICOM’s specialized transport protocol DICOM Nifti
  • 26. NIPY: Neuroimaging in Python Nipype: A uniform interface to existing neuroimaging software Nibabel: Read/write access to (neuro)imaging file formats NIFTI, GIFTI, Analyze, MINC, MGH Full coverage of coordinate systems and affines NIPY.org: Python processing of neuroimaging data Projects in pipeline processing, computational anatomy, file I/O, functional MRI, machine learning, electrophysiology, data visualization
  • 27. BIDS: Brain Imaging Data Structure A data exchange format using simple file formats and a defined directory structure Primarily MRI/fMRI, with extensions for PET, EEG, MEG Images in NIfTI, tabular data in TSV, key-value pairs in JSON my-experiment participants.tsv sub-01 anat sub-01_t1.nii.gz sub-01_t1.json func sub- 01_task_bold.nii.gz sub- 01_task_bold.json dwi sub-01_dwi.nii.gz { "TaskName": "N Back”, "RepetitionTime": 0.8, BIDS Apps Portable neuroimaging pipelines that understand BIDS datasets Apps are stored in Docker Hub Run in Docker or Singularity Each has the same core command line arguments Integrate into automated platforms
  • 28. What’s next? Web-native serverless PACS Highly granular, highly scalable, highly available NoSQL databases May suit formats with a sparsely populated dictionary Non-DICOM storage, transport Would eliminate DICOM dependency and translation Meta-PACS Tagging, multiple identities, de-identification, error handling, grouping