Viewers icon indicating copy to clipboard operation
Viewers copied to clipboard

Multi-frame DICOM support

Open md-prog opened this issue 2 years ago • 5 comments

OHIFv3 lacks the support of annotations and measurements on multi-frame DICOM files particularly when we want to persist and load Measurement SRs on multi-frame DICOM files.

There are several issues being resolved in this PR:

  • Supporting of annotations and measurements on multi-frame files
  • Saving Measurement SRs on multi-frame DICOM files
  • Fixed loading of frames of multi-frame DICOM files : it was not loading the last frame ( loading Frame 1 twice, and not loading the last frame) , as you can guess, it was related to indexing of frames. Frame numbers are 1-based, not 0-based.
  • Fix jumping to the selected measurement/annotation on multi-frame files
  • Show correct instance id and frame number on the "Measurement Tracking" panel
  • Fixed a few "React" errors that was causing error logs in the browser console.

External dependencies: This depends on the changes of dcmjs library: https://github.com/dcmjs-org/dcmjs/pull/317 The changes has been merged and available on version 0.28.1, therefore updated the package.json for dcmjs library.

md-prog avatar Oct 04 '22 18:10 md-prog

Deploy Preview for ohif-platform-docs canceled.

Name Link
Latest commit 566ba8c72a8b6081d638b003bfd34383d6ef5f74
Latest deploy log https://app.netlify.com/sites/ohif-platform-docs/deploys/63407db027379600090a103a

netlify[bot] avatar Oct 04 '22 18:10 netlify[bot]

Deploy Preview for ohif-platform-viewer canceled.

Name Link
Latest commit 566ba8c72a8b6081d638b003bfd34383d6ef5f74
Latest deploy log https://app.netlify.com/sites/ohif-platform-viewer/deploys/63407db06d104d0008e0a2b7

netlify[bot] avatar Oct 04 '22 18:10 netlify[bot]

Codecov Report

Merging #2973 (566ba8c) into v3-stable (9f1e813) will increase coverage by 12.38%. The diff coverage is n/a.

Impacted file tree graph

@@              Coverage Diff               @@
##           v3-stable    #2973       +/-   ##
==============================================
+ Coverage      25.15%   37.54%   +12.38%     
==============================================
  Files            119      101       -18     
  Lines           2862     2152      -710     
  Branches         555      439      -116     
==============================================
+ Hits             720      808       +88     
+ Misses          1856     1101      -755     
+ Partials         286      243       -43     
Impacted Files Coverage Δ
...tform/core/src/services/CineService/CineService.js 12.50% <0.00%> (-6.25%) :arrow_down:
.../services/MeasurementService/MeasurementService.js 47.23% <0.00%> (-1.96%) :arrow_down:
platform/core/src/classes/CommandsManager.js 90.69% <0.00%> (-1.14%) :arrow_down:
platform/core/src/classes/MetadataProvider.js 4.54% <0.00%> (-0.72%) :arrow_down:
...core/src/services/ToolBarService/ToolBarService.js 1.36% <0.00%> (-0.13%) :arrow_down:
platform/viewer/src/index.js 0.00% <0.00%> (ø)
platform/viewer/src/appInit.js 0.00% <0.00%> (ø)
platform/core/src/utils/index.js 100.00% <0.00%> (ø)
platform/core/src/utils/isImage.js 100.00% <0.00%> (ø)
platform/core/src/services/ServicesManager.js 100.00% <0.00%> (ø)
... and 48 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 1bcc9cc...566ba8c. Read the comment docs.

codecov[bot] avatar Oct 04 '22 18:10 codecov[bot]

Do you have sample objects produced by the code proposed in this PR that would illustrate supporting of annotations and measurements on multi-frame files and saving Measurement SRs on multi-frame DICOM files?

fedorov avatar Oct 05 '22 02:10 fedorov

@md-prog - a few small changes, then it looks good to me. @sedghi - this fixes some important issues with multiframe and annotations. It does not fix volume annotations yet - that is something we still need to discuss how to handle properly.

wayfarer3130 avatar Oct 05 '22 21:10 wayfarer3130

@sedghi, the issue No.1 mentioned in your last comment is related to dcmjs library's "lack of features" (if not defect).

https://github.com/dcmjs-org/dcmjs/issues/318

Basically, the lines of dcmjs library mentioned in above Github issue, are blocking us to save the annotations made on to the multi-frame file with the correct frame number information.

With this issue resolved, the issue should go. (During my development, I had to temporarily use the locally cloned dcmjs with the temporary fix to the issue.)

Fix has been proposed in https://github.com/dcmjs-org/dcmjs/pull/320

No.2 is not a new thing, I think.

md-prog avatar Oct 07 '22 11:10 md-prog