1、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 P
2、latform 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 CommunicationFocus Areas: Internationalization Service
3、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 doesnt work well due to high interaction
4、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 testsNote: Lines Of Code counted with CLOC 1.
5、52. Average is 60 K Lines.,Design Challenge 1: Character Encoding,DICOM Character Sets,Originally only support for ASCII (IR-6) 1993: Latin 12345, Arabic, Hebrew, Cyrillic, Greek, Japanese, 1999 2000: Thai, Korean 2003: UTF8 (ISO_IR 192), but this is an option Most modern applications use internally
6、 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 R
7、econciliation. 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 doesnt support UTF8 Application needs to define encoding method Applicatio
8、n needs to define allowed character sets and preferred order Library needs to scan all characters Library computes required character sets and serialize dataRecommendation: design / use systems that support UTF8,Design Challenge 2: DICOM C-STORE on a Wide Area Network,C-STORE on a WAN: Intro,Histori
9、cally 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 com
10、pressed instances of 125 Kbyte on a local network Bandwidth = 100 Mbit/s, Round Trip Time = 1 ms, N * (Tx + Trtt) = 27 seconds Sending same study on a Wide Area Network Bandwidth = 100 Mbit/s, Round Trip Time = 200 ms, N * (Tx + Trtt) = 425 seconds425 seconds vs 27 seconds: 15 times slower!,C-STORE
11、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 * Tx)+ Trtt = 25 secondsBoth DICOM systems need to support asynchronous operations Max
12、imum number of pending requests is 65536 Responses can arrive out of order,3,1,6,5,4,8,7,9,2,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 slowTCP / IP Proto
13、col: slow start algorithm,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
14、idle timeout Compatible with Asynchronous Operations CP-948: C-STORE sub operations (Std 2008),Conclusions,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 relativel
15、y easy to develop DICOM applications,Recommendations,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 http:/
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1