Difference between revisions of "2015 Summer Project Week:Dicom parsing with DCMJS"

From NAMIC Wiki
Jump to: navigation, search
 
(9 intermediate revisions by 2 users not shown)
Line 8: Line 8:
 
* Michael Onken
 
* Michael Onken
 
* Steve Pieper
 
* Steve Pieper
 +
* Yves Martelli
  
 
==Project Description==
 
==Project Description==
Line 26: Line 27:
 
<h3>Progress</h3>
 
<h3>Progress</h3>
 
* Evaluation of current solutions
 
* Evaluation of current solutions
** yves:
 
*** pros: fast
 
*** cons: single frame and need to parse dicom header by hand in JS later on
 
** dicomparser: same
 
** dcmjs:
 
*** pro: relies on dcmtk, (almost) no need to manually parse dicom header by hand
 
*** cons: slower (150ms for dcmdump vs 30ms for other solutions)
 
 
** note: compilation of  dcmjs with -o3 or -of drasticly improves performance of dcmjs
 
** note: compilation of  dcmjs with -o3 or -of drasticly improves performance of dcmjs
 
* Proposed workflow
 
* Proposed workflow
 
** https://docs.google.com/drawings/d/1BX0NBIDPrrM-JGk9b1awL_w57f9rMvdTJSeVjT9bM5U
 
** https://docs.google.com/drawings/d/1BX0NBIDPrrM-JGk9b1awL_w57f9rMvdTJSeVjT9bM5U
** workflow relies on new dcmtk functionnalities
+
** note: workflow relies on new dcmtk functionnalities. It will have to be evaluated in term of performance.
 +
** https://github.com/andywer/threadpool-js
 
* Take dicom segmentations/models into account
 
* Take dicom segmentations/models into account
* Testing database
+
* DICOM testing database discussion with web-torrents
 
</div>
 
</div>
 
</div>
 
</div>
 +
 +
== Benchmark ==
 +
Benchmark of DICOM parser libraries using [http://benchmarkjs.com/ benchmark.js] ([http://stackoverflow.com/questions/28524653/what-do-the-results-from-benchmark-js-mean what-do-the-results-from-benchmark-js-mean]).
 +
 +
These results were obtained on a Lenovo Flex2 laptop (Intel Core i3-4030U) under Microsoft Windows 8.1 using Mozilla Firefox (ff) 38.0.5 and Google Chrome v43.0.
 +
 +
Parsers: [http://github.com/commontk/dcmjs dcmjs] ([http://github.com/commontk/dcmjs/tree/3fe78ddc82a4ff7938037f60f82999f129f66e82 3fe78dd]), [http://github.com/chafey/dicomParser dicomParser] ([http://github.com/chafey/dicomParser/releases/tag/1.0.2 v1.0.2]) and [http://github.com/ivmartel/dwv dwv] ([http://github.com/ivmartel/dwv/releases/tag/v0.10.0 v0.10.0]). The test just calls the parse method of each library, no values are checked. Note that the 'dicomParser' does not interpret the data until asked for when the others do at parsing time.
 +
 +
Units are in operations/seconds.
 +
{| class="wikitable"
 +
|- bgcolor="#eee"
 +
! &nbsp; !! dcmjs !! &nbsp; !! dicomParser !! &nbsp; !! dwv !! &nbsp;
 +
|- bgcolor="#eee"
 +
! &nbsp; !! ff !! chrome !! ff !! chrome !! ff !! chrome
 +
|-
 +
| gdcm-CT-MONO2-8-abdo|| 320|| 112|| 16115|| 9974|| 4551|| 3640
 +
|-
 +
| gdcm-CR-MONO1-10-chest|| 249|| 83.13|| 8412|| 9004|| 3603|| 2804
 +
|-
 +
| osirix-toutatix-100|| 170|| 48.65|| 3245|| 3843|| 1411|| 995
 +
|-
 +
| osirix-goudurix|| 189|| 53.97|| 6346|| 3995|| 1885|| 1363
 +
|-
 +
| dicompyler-ct.0|| 187|| 60.86|| 8414|| 5156|| 2612|| 1930
 +
|-
 +
| gdcm-US-RGB-8-epicard|| 148|| 54.04|| 10418|| 10217|| 31.42|| 256
 +
|-
 +
| gdcm-US-RGB-8-esopecho|| 501|| 110|| 10309|| 10198|| 4642|| 3340
 +
|- bgcolor="#eee"
 +
! Average !! 252!! 75!! 9037!! 7484!! 2676!! 2047
 +
|-
 +
| &nbsp; || &nbsp; || &nbsp; || bgcolor="#eee" | &nbsp; || bgcolor="#eee" | 3.4 || bgcolor="#eee" | &nbsp; || &nbsp;
 +
|-
 +
| &nbsp; || &nbsp; || &nbsp; || &nbsp; || bgcolor="#eee" | &nbsp; || bgcolor="#eee" | 3.7 || bgcolor="#eee" | &nbsp;
 +
|-
 +
| &nbsp; || bgcolor="#eee" | &nbsp; || bgcolor="#eee" | 0.03 || bgcolor="#eee" | &nbsp; || &nbsp; || &nbsp; || &nbsp;
 +
|-
 +
|&nbsp; || &nbsp; || bgcolor="#eee" | &nbsp; || bgcolor="#eee" | 0.01 || bgcolor="#eee" | &nbsp; || &nbsp; || &nbsp;
 +
|}

Latest revision as of 10:21, 10 July 2015

Home < 2015 Summer Project Week:Dicom parsing with DCMJS

Key Investigators

  • Nicolas Rannou
  • Michael Onken
  • Steve Pieper
  • Yves Martelli

Project Description

Objective

  • Define target DICOM types
  • Define a good workflow to parse targets with DCMJS.
  • Define required JS models to support the workflow.
  • Evaluate DicomParser from cornerstone team.

Approach, Plan

  • Talk with DICOM/DCMTK experts to get some feedback on best strategy.
  • Write a demo to showcase js models and dicom parsing workflows.

Progress

Benchmark

Benchmark of DICOM parser libraries using benchmark.js (what-do-the-results-from-benchmark-js-mean).

These results were obtained on a Lenovo Flex2 laptop (Intel Core i3-4030U) under Microsoft Windows 8.1 using Mozilla Firefox (ff) 38.0.5 and Google Chrome v43.0.

Parsers: dcmjs (3fe78dd), dicomParser (v1.0.2) and dwv (v0.10.0). The test just calls the parse method of each library, no values are checked. Note that the 'dicomParser' does not interpret the data until asked for when the others do at parsing time.

Units are in operations/seconds.

  dcmjs   dicomParser   dwv  
  ff chrome ff chrome ff chrome
gdcm-CT-MONO2-8-abdo 320 112 16115 9974 4551 3640
gdcm-CR-MONO1-10-chest 249 83.13 8412 9004 3603 2804
osirix-toutatix-100 170 48.65 3245 3843 1411 995
osirix-goudurix 189 53.97 6346 3995 1885 1363
dicompyler-ct.0 187 60.86 8414 5156 2612 1930
gdcm-US-RGB-8-epicard 148 54.04 10418 10217 31.42 256
gdcm-US-RGB-8-esopecho 501 110 10309 10198 4642 3340
Average 252 75 9037 7484 2676 2047
        3.4    
          3.7  
    0.03        
      0.01