open source, mobile, cloud, and medical imagescoscup.wdfiles.com › local--files › schedule-2011...
TRANSCRIPT
![Page 1: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/1.jpg)
Open Source, Mobile, Cloud, and
Medical Images
Michael J Pan, CEOnephosity
![Page 2: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/2.jpg)
Synopsis
● What are we building? ● What problem are we trying to solve?● Demo● Why are we using open source?● Which open source packages do we use?
![Page 3: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/3.jpg)
What are we building?
a mobile collaboration ecosystem
for
medical images
![Page 4: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/4.jpg)
The problem
Current workflows involving medical images are
cumbersome and non-collaborative
![Page 5: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/5.jpg)
Example 1
![Page 6: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/6.jpg)
● You get an MRI (or an Xray) at an imaging center
● The imaging center gives you a CD
● You bring the CD to your doctor
● Your doctor loads the CD on his desktop (10-15min)
● Your doctor views the images and gives you a diagnosis
Problem: It takes a long time to load images. A doctor does this 20-30 times a day
Example 1
![Page 7: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/7.jpg)
Example 2
![Page 8: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/8.jpg)
Example 2
● Your doctor wants to consult a doctor in another hospital
● Your doctor orders a CD of your MRI and sends that CD to the other doctor
● The other doctor receives and loads the CD● The 2 doctors discuss on the phone
Problem: creating and sending CDs require time, and no shared view during collaboration
![Page 9: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/9.jpg)
Our solution
Build a mobile collaboration ecosystem to eliminate friction in viewing and collaborating over medical images. 2 components:– nephosCT is the cloud server backend that
supports collaboration and delivers medical images in real time
– mobileCT is the mobile collaborative teleradiology app for viewing and collaborating on your iPad
![Page 11: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/11.jpg)
System design overview
![Page 12: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/12.jpg)
Why use open source?
We built this system using lots of open source packages
because...
![Page 13: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/13.jpg)
We don't know that much(you understand the problem
better than we do)
![Page 14: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/14.jpg)
We're not that smart(you can come up with
better solutions than we can)
![Page 15: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/15.jpg)
We're kinda lazy(why do something if you
have already done it for us?)
![Page 16: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/16.jpg)
and...
we're busy / have too much to do
(angry birds is very time consuming ;)
![Page 17: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/17.jpg)
How do we use open source?
● In the product– Desktop server
– Cloud server
– Mobile app
● Productivity– Developer tools
– Project management software
– Quality assurance
– Packaging tools
![Page 18: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/18.jpg)
and now...
An unordered, non-comprehensive list of
open source packages that we use
![Page 19: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/19.jpg)
GUI
● QT / PySide● three20
![Page 20: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/20.jpg)
QT / PySide
● QT is C++ GUI library● PySide is Python bindings for QT● Developed by Nokia● LGPL license● Build cross-platform GUI for our desktop server
![Page 21: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/21.jpg)
three20
● An UI library for the iOS devices● Originally developed by Facebook● Apache license● Build GUI for our iPad app
![Page 22: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/22.jpg)
Cloud service
● Eucalyptus● Mongrel2● Celery
![Page 23: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/23.jpg)
Eucalyptus
● An IaaS software, open source equivalent of Amazon's EC2
● Developed by Eucalyptus Systems● GPL license● Deploy private clouds
![Page 24: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/24.jpg)
mongrel2
● Language agnostic web server● Developed by Zed Shaw● BSD license● Our web server / gatekeeper to our cloud
![Page 25: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/25.jpg)
celery
● Distributed task queuing system● Originally developed by Django● BSD license● Pool and manage tasks to process medical
images uploaded to our cloud
![Page 26: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/26.jpg)
Messaging
● Rabbitmq● 0mq● UDT● Zeroconf
![Page 27: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/27.jpg)
rabbitmq
● Brokered messaging with persistence● Developed by VMWare / SpringSource● Mozilla Public license● AMQP messaging backend for celery
![Page 28: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/28.jpg)
0MQ
● Super fast, brokerless messaging library● Developed by iMatix● LGPL● Messaging backend for mobile, mongrel2,
various backend cloud components
![Page 29: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/29.jpg)
UDT
● UDP based Data Transfer● Developed by Yunhong Gu (main developer of
Sector/Sphere)● BSD license● Used by SectorFS for high bandwidth transfer
![Page 30: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/30.jpg)
Zeroconf
● Bonjour
– Apple's implementation of the zeroconf spec, for Mac OSX and Windows
– Apple Public source license● Avahi is the open source implementation of zeroconf for other
*nix and BSD
– LGPL● PyBonjour is the Python wrapper to a system's underlying
zeroconf library
– MIT license● Save users from needing to configure the connection to their
desktop server / internal cloud
![Page 31: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/31.jpg)
DICOM
DICOM (Digital Imaging and Communications in Medicine) is a standard for handling, storing, printing, and transmitting information in medical imaging. It includes a file format definition and a network communications protocol.
● GDCM● dcm4che
![Page 32: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/32.jpg)
GDCM
● Library for reading / writing DICOM images. Currently no network capabilities (handles only file format portion of DICOM standard)
● Developed by Mathieu Malaterre● BSD license● Library to read medical images
![Page 33: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/33.jpg)
dcm4che
● An open source clinical image and object management platform
● dcm4che.org● MPL/GPL/LGPL● DICOM network library to query/download
DICOM files from hospital PACS (Picture archive & communication system)
![Page 34: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/34.jpg)
Data storage / distribution
● SectorFS● MongoDB● SQLite
![Page 35: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/35.jpg)
SectorFS
● Super fast fault-tolerant distributed file system● Developed by the National Center for Data
Mining (NCDM) at the University of Illinois at Chicago (UIC)
● Apache 2.0 license● Distributing/replicating large files (ie the DICOM
images) across our cloud
![Page 36: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/36.jpg)
MongoDB
● Distributed NoSQL database● Developed by 10gen● AGPL license for database, Apache license for
drivers● Replicating image metadata
![Page 37: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/37.jpg)
SQLite
● Embedded SQL database● Developed by Hwaci● Public domain● Configuration / metadata caching● Also used by mongrel2 for configuration
![Page 38: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/38.jpg)
Other packages in our code
● SBJson (ObjC JSON library)● mext/Reaction (event processing in Python)● chardet (language detection)● threadpool
![Page 39: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/39.jpg)
Open source productivity software
● Subversion (version control)● nose (unittesting in Python)● coverage (test coverage in Python)● trac (project management)● pyinstaller (multi-platform packaging of our
desktop server)● InnoSetup (installer package creator of our
desktop Windows server)
![Page 40: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/40.jpg)
Our open source contributions
● pomsets (workflow management for your cloud)● cloudpool (execution pool in the cloud)● pypatterns (common patterns in Python)● currypy (de/serializable curried objects)● Patches to open source projects that we use
![Page 41: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/41.jpg)
You ask: Any other open source?
● Lots!● Continue to investigate new technologies, new
open source packages● Many are still in evaluation, so not listed here
![Page 42: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/42.jpg)
Summary
● We are building mobile collaboration for medical images
● Touches the latest, hottest buzzwords-- mobile, collaboration, medical, cloud
● We are doing it using lots of open source, plus a bit of our “secret sauce”
● We contribute some of our secret sauce back as open source
![Page 43: Open Source, Mobile, Cloud, and Medical Imagescoscup.wdfiles.com › local--files › schedule-2011 › mjpan-presentatio… · celery Distributed task ... Pool and manage tasks to](https://reader033.vdocuments.site/reader033/viewer/2022060501/5f1aeeb8bf8a4828d663ba3c/html5/thumbnails/43.jpg)
Have medical images?
● Buy our app!● Cloud beta Q1 2012
● http://nephosCT.com