DICOM INTERNATIONAL CONFERENCE & SEMINAR Oct 9-11, 2010 Rio de Janeiro, Brazil Building a DICOM Library in C# Victor Derks GE Healthcare.

Slides:



Advertisements
Similar presentations
The creation of "Yaolan.com" A Site for Pre-natal and Parenting Education in Chinese by James Caldwell DAE Interactive Marketing a Web Connection Company.
Advertisements

DICOM INTERNATIONAL CONFERENCE & SEMINAR Oct 9-11, 2010 Rio de Janeiro, Brazil WADO: a useful tool for remote visualization of large DICOM files Bmed.
Composite Device Computing Environment: A Framework for Situated Interaction Using Small Screen Devices Thai-Lai Pham, Georg Schneider, Stuart Goose and.
Building International Applications with Visual Studio.NET Achim Ruopp International Program Manager Microsoft Corporation.
MHK200 Module 1: Introduction to Windows CE. MHK200 Overivew Windows CE Design Goals Windows CE Architecture Supported Technologies, Libraries, and Tools.
Visual Round Trip Analyzer (VRTA) Velocity 2009 Performance Tools Free download.microsoft.com.
Module 5: TLS and SSL 1. Overview Transport Layer Security Overview Secure Socket Layer Overview SSL Termination SSL in the Hosted Environment Load Balanced.
11 DICOM Image Communication in Globus-Based Medical Grids Michal Vossberg, Thomas Tolxdorff, Associate Member, IEEE, and Dagmar Krefting Ting-Wei, Chen.
Conversion Between Video Compression Protocols Performed by: Dmitry Sezganov, Vitaly Spector Instructor: Stas Lapchev, Artyom Borzin Cooperated with:
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Introduction to Web Database Processing
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
Input/Output and Communication
Technology Round 7 Exploring I.C.T. in the Syllabus.
©Brooks/Cole, 2003 Chapter 6 Computer Networks. ©Brooks/Cole, 2003 Understand the rationale for the existence of networks. Distinguish between the three.
Unicode, character sets, and a a little history. Historical Perspective First came EBCIDIC (6 Bits?) Then in the early 1960s came ASCII – Most computers.
INTRODUCTION TO WEB DATABASE PROGRAMMING
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
Web Servers Web server software is a product that works with the operating system The server computer can run more than one software product such as .
Lecture 2 Character Codes and Low-Structure Text Document Formats.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
Presentation on Osi & TCP/IP MODEL
Characteristics of Communication Systems
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Wide Area Networks(WANs) Lecture Week 2. Point-to-Point Protocol (PPP) Accessing the WAN.
Wireless Intelligent Sensor Modules for Home Monitoring and Control Presented by: BUI, Phuong Nhung, 裴芳绒 António M. Silva1, Alexandre Correia1, António.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
San Jose, California, September 2002 Compact Encodings of Unicode Markus W. Scherer Unicode/G11N Software Engineer IBM Globalization Center of Competency.
IBM Globalization Center of Competency © 2006 IBM Corporation IUC 29, Burlingame, CAMarch 2006 Automatic Character Set Recognition Eric Mader, IBM Andy.
DICOM INTERNATIONAL DICOM INTERNATIONAL CONFERENCE & SEMINAR April 8-10, 2008 Chengdu, China Medical Image Quality Assurance with Automated Constraint.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
Learning Aid Type Text Page 206 MGS GROUP C Svitlana Panasik.
Material being covered 3/9 Remainder of Text Chapter 6 (Q5, 6) Text Chapter 6A Material Posted 3/9 Midterm Information Introduction to Text Chapter 7.
Introduction To Internet
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
VIRTUAL PRIVATE NETWORK By: Tammy Be Khoa Kieu Stephen Tran Michael Tse.
Character Encoding, F onts. Overview Why do character encoding and fonts matter to linguists? How can you identify problems? Why do these problems arise?
EIDE Design Considerations 1 EIDE Design Considerations Brian Wright Portland General Electric.
Using Encryption with Microsoft SQL Server 2000 Kevin McDonnell Technical Lead SQL Server Support Microsoft Corporation.
Application Block Diagram III. SOFTWARE PLATFORM Figure above shows a network protocol stack for a computer that connects to an Ethernet network and.
A worldwide library cooperative OCLC Online Computer Library Center OCLC CJK Users Group 2007 Annual Meeting March 24, 2007, Boston David Whitehair, OCLC.
TTCN-3 MOST Challenges Maria Teodorescu
William Stallings Data and Computer Communications
IT 284 Unit 4 Seminar.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
CIT3611 Software i18n Wk 4: Code sets, Online Help, Prototyping David Tuffley School of Computing & IT Griffith University.
Unit 9: Distributing Computing & Networking Kaplan University 1.
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
Open System Interconnection Describe how information from a software application in one computer moves through a network medium to a software application.
Chapter 5 Input/Output 5.1 Principles of I/O hardware
Dyalog’08. Conga, SSL and WebServices Morten Kromberg Dyalog’08 - Elsinore.
What is Java? Object Oriented Programming Language Sun Microsystems “Write Once, Run Everywhere” Bytecode and Virtual Machine Java Platform (Java VM and.
ISDS 4120 Project 1 DWAYNE CARRAL JR 3/27/15. There are seven layers which make up the OSI (Open Systems Interconnection Model) which is the model for.
Java – in context Main Features From Sun Microsystems ‘White Paper’
MISSION CRITICAL COMPUTING SQL Server Special Considerations.
Voice Over Internet Protocol (VoIP) Copyright © 2006 Heathkit Company, Inc. All Rights Reserved Presentation 5 – VoIP and the OSI Model.
Networks Standardisation & Protocols. Learning Objectives Explain the advantages of standardisation and describe some areas of standardisation such as.
Introduction to Communication Lecture (11) 1. Digital Transmission A computer network is designed to send information from one point to another. This.
Streaming Video over TCP with Receiver-based Delay Control
Introducing the Windows Mobile development
Network Controllable MP3 Player
Networking COMP
Vocabulary Prototype: A preliminary sketch of an idea or model for something new. It’s the original drawing from which something real might be built or.
Unit – 5 JAVA Web Services
Vocabulary Prototype: A preliminary sketch of an idea or model for something new. It’s the original drawing from which something real might be built or.
An Introduction to Visual Basic .NET and Program Design
Knowledge Byte In this section, you will learn about:
XML Problems and Solutions
Message Passing Systems
Presentation transcript:

DICOM INTERNATIONAL CONFERENCE & SEMINAR Oct 9-11, 2010 Rio de Janeiro, Brazil Building a DICOM Library in C# Victor Derks GE Healthcare

Contents Introduction Design Goals Inception Approach and Effort Design Challenges Character Encoding DICOM C-STORE on a Wide Area Network (WAN) DICOM Operations on a Wide Area Network Conclusions Recommendations

Introduction Microsoft.NET Platform Group within GE Healthcare –Provide Microsoft.NET components to applications teams –Internal DICOM library is a one of these components –The preferred programming language of our group is C#

Design Goals Requirements: –DICOM File I/O –DICOM Communication Focus Areas: –Internationalization –Service Oriented Architecture –Easy to use for C# programmers

Inception Started in 2007 building prototypes: –Wrap existing C++ internal implementation in.NET layer? –Create new C# implementation? Findings: –.NET \ C++ Memory Management Models are conflicting –Mixed solution doesn’t work well due to high interaction between the layers –No option to leverage new.NET patterns: Asynchronous Programming Model Thread pool

Approach and Effort Test Driven Development (TDD): –DICOM Standard defines expected behavior –50% of these unit tests check for bad cases –About 2000 unit tests Note: Lines Of Code counted with CLOC Average is 60 K Lines. NameLines Of CodeLines Of Test Code GE DICOM Library (C#)34,63733,707 Comparable Open Source: ClearCanvas (C#)87,738 Dcm4che (Java)40,954 PixelMed (Java)86,864

Design Challenge 1: Character Encoding

DICOM Character Sets Originally only support for ASCII (IR-6) 1993: Latin 1\2\3\4\5, Arabic, Hebrew, Cyrillic, Greek, Japanese, \ 2000: Thai, Korean 2003: UTF8 (ISO_IR 192), but this is an option Most modern applications use internally UTF16 Unicode strings (C++ \.NET \ Java).NET provides standard text encoders: –UTF8 –Many code page based encoders

Text Conversions Input (decoding) Read and convert DICOM text values to.NET strings. Output (encode) Many use cases require text updates to the DICOM data. For example Patient Information Reconciliation. Output would be easy if all DICOM systems would support UTF8… DICOM values.NET Strings DICOM values decode encode

Legacy Character Set Encoding Steps needed to serialize DICOM text data to an output device that doesn’t support UTF8 –Application needs to define encoding method –Application needs to define allowed character sets and preferred order –Library needs to scan all characters –Library computes required character sets and serialize data Recommendation: design / use systems that support UTF8

Design Challenge 2: DICOM C-STORE on a Wide Area Network

C-STORE on a WAN: Intro Historically most DICOM communication is on a local network Trend is to store images in regional and national DICOM data centers Wide Area Network (WAN): –Bandwidth: 1 Mbit/s up to 1 Gbit/s –Round Trip Time (RTT) : 10 ms up to 1 s for satellite connections

C-STORE Example Example: Sending a study of 2000 compressed instances of 125 Kbyte on a local network –Bandwidth = 100 Mbit/s, Round Trip Time = 1 ms, –N * (T x + T rtt ) = 27 seconds Sending same study on a Wide Area Network –Bandwidth = 100 Mbit/s, Round Trip Time = 200 ms, –N * (T x + T rtt ) = 425 seconds 425 seconds vs 27 seconds: 15 times slower!

C-STORE on a WAN: Root Cause Local: 92 % WAN: 6 % Solutions (within the Standard): –Open more connections –Supports DICOM Asynchronous Operations (PS 3.7 Annex D.3.3.3) 1 1

C-STORE on a WAN: Solution 99 % Transmission time: (N * T x )+ T rtt = 25 seconds Both DICOM systems need to support asynchronous operations Maximum number of pending requests is Responses can arrive out of order

Design Challenge 3: DICOM Operations on a Wide Area Network

DICOM Operations on a WAN Same WAN sample configuration: –Round Trip Time = 200 ms –Secure DICOM (TLS) Connection Establishment is slow TCP / IP Protocol: slow start algorithm NameTime TCP / IP Handshake200 ms TLS / SSL Handshake400 ms DICOM Handshake200 ms DICOM Request \ Response200 ms

DICOM Association pool Pooling is automatic Pool will reuse a suitable open association If no association available, pool will open a new association Auto learning which presentation contexts are required Number of open associations is managed Associations are closed after idle timeout Compatible with Asynchronous Operations CP-948: C-STORE sub operations (Std 2008)

Conclusions –Having a GE DICOM library in.NET allows us to quickly adapt to changes in the Standard. –We have seen good performance –.NET provides a rich set of libraries which makes it relatively easy to develop DICOM applications

Recommendations –Use the Microsoft.NET Guidelines to ensure a library is consistent with.NET (FxCop) –Use UTF8 as the default character encoding Great if DICOM Standard would make this required in the future (roadmap) –To be Internet / Wide Area Network ready: Support Asynchronous Operations Support re-use of open DICOM associations

Questions \ Perguntas Questions ? Contact