Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tool to display DICOM overlays #788

Closed
wants to merge 2 commits into from
Closed

Conversation

kofifus
Copy link
Contributor

@kofifus kofifus commented Feb 4, 2019

When enabled this tool will disable the DICOM overlays stored in image.overlays

The overlays data is created by cornerstoneWADOImageLoader - see cornerstonejs/cornerstoneWADOImageLoader#239

Implements DICOM standard C.9 - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html

When enabled this tool will disable the DICOM overlays stored in `image.overlays`

The overlays data is created by `cornerstoneWADOImageLoader` - see cornerstonejs/cornerstoneWADOImageLoader#239

Implements DICOM standard C.9 - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html
When enabled this tool will disable the DICOM overlays stored in `image.overlays`

The overlays data is created by `cornerstoneWADOImageLoader` - see cornerstonejs/cornerstoneWADOImageLoader#239

Implements DICOM standard C.9 - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html
@dannyrb dannyrb changed the base branch from master to v2.4.x February 5, 2019 16:58
@dannyrb dannyrb added Change: Implementation 💻 Change that updates implementation details w/o expanding the API Version 2 📦 labels Feb 5, 2019
@dannyrb
Copy link
Member

dannyrb commented Feb 5, 2019

@kofifus, I don't believe this is a strong candidate for version 2. Ideally, I think it's better suited as a maintained 3rd party plugin in Version 3.

You can find an example of a Version 3 Plugin here: https://github.com/QSolutionsLLC/cornerstone-tool-image-statistics

If you ignore all of the tooling, the meat of the plugin lives in this one file: https://github.com/QSolutionsLLC/cornerstone-tool-image-statistics/blob/master/src/index.js

The advantage of tool plugins is that they allow us to be more agile in developing core features for cornerstone-tools without needing to update/maintain every single tool as we do. It also empowers our community to create more advanced, niche tools that may not benefit our wider audience. We're working on a way to find 3rd party plugins and list them on our website or on a "marketplace".

We can continue the discussion here if you would like. I'm going to close this issue for now. This is a plugin I would be interested in helping to build as a 3rd party plugin -- please don't hesitate to follow up with me on this.

@dannyrb dannyrb closed this Feb 5, 2019
@kofifus
Copy link
Contributor Author

kofifus commented Feb 5, 2019

OK up to you, to me this is a misunderstanding of what overlays are - they are part of the DICOM standard describing what constitutes an image, essentially they are part of the pixel data. Any PACS I know shows them out of the box not as a 'feature' or 'tool' (3rd party or not), and every radiologist and practice will expect them to be there - in fact I think there may be legal issues for practices if you show images without overlays as they may contain vital information. This is why I still feel they should be part of core.

@dannyrb
Copy link
Member

dannyrb commented Feb 5, 2019

I lean very heavily on @swederik, @JamesAPetts, and other core maintainers for decisions like this. I don't have the experience necessary to qualify including a new tool as a core/supported tool.

I know that eFilm shows the first four layers in the example DICOM I was provided. My company's desktop viewer does the same. I'm also pretty sure that this is the first time in over three years that this issue has been brought up, despite there being a decent number of Cornerstone powered viewers in production.

Outside of that, my knowledge is very limited. If you believe strongly that the logic should be in cornerstone-core or a maintained tool in cornerstone-tools and can get a green light from an active maintainer or two that are more knowledgable than me, then I am more than happy to help facilitate that.

FWIW, a 3rd party tool is identical to a maintained tool in implementation. If at a later date we decide to merge it into tools, the amount of work is very close to 0. The only reason I hesitate is because by merging it, I expand the amount of code we promise to maintain as an org of volunteers. I want to be very careful, as we are already very resource constrained.

Also, I know that my company eventually wants this functionality. If you don't move forward on this, I likely will create it as a third party tool at a later time this year. Then the community can choose to install/add the plugin if they feel they need the functionality.

@kofifus
Copy link
Contributor Author

kofifus commented Feb 5, 2019

It will take me awhile to move to V3, we did quite substantial modifications to cornerstone so merging may be tricky so I don't expect to submit this as a 3rd party plugin soon - especially since I don't feel it is!

cornerstonejs/cornerstoneWADOImageLoader#239 can still be merged and used as the basis of future work ..

@dannyrb
Copy link
Member

dannyrb commented Feb 5, 2019

@kofifus, our super official process for determining where this should live, and in what form:

image

So we at least have consensus on that it should be maintained in a cornerstone repository. Ideally as a tool. I'll take a peak at your code sometime this week and what transitioning to the new tool setup would entail. Most overlay tools take < 30 minutes to transition

@kofifus
Copy link
Contributor Author

kofifus commented Feb 5, 2019

thx

kofifus added a commit to kofifus/cornerstoneWADOImageLoader that referenced this pull request Feb 7, 2019
Adds 'overlayPlaneModule' type returning an array of DICOM overlays.
This array is then added the 'overlays' propertry of the image.

This is then read by the overlays tool see - [cornerstonejs/cornerstoneTools#788](cornerstonejs/cornerstoneTools#809)

see issue [cornerstonejs/cornerstoneTools#780](cornerstonejs/cornerstoneTools#780)
see DICOM overlays standard - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html
kofifus added a commit to kofifus/cornerstoneWADOImageLoader that referenced this pull request Feb 7, 2019
Adds 'overlayPlaneModule' type returning an array of DICOM overlays.
This array is then added the 'overlays' propertry of the image.

This is then read by the overlays tool see - [cornerstonejs/cornerstoneTools#788](cornerstonejs/cornerstoneTools#809)

see issue [cornerstonejs/cornerstoneTools#780](cornerstonejs/cornerstoneTools#780)
see DICOM overlays standard - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html
swederik pushed a commit to cornerstonejs/cornerstoneWADOImageLoader that referenced this pull request Feb 8, 2019
…rlays (#240)

* DICOM Overlays 

Adds 'overlayPlaneModule' type returning an array of DICOM overlays.
This array is then added the 'overlays' propertry of the image.

This is then read by the overlays tool see - [cornerstonejs/cornerstoneTools#788](cornerstonejs/cornerstoneTools#809)

see issue [cornerstonejs/cornerstoneTools#780](cornerstonejs/cornerstoneTools#780)
see DICOM overlays standard - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html

* DICOM Overlays 

Adds 'overlayPlaneModule' type returning an array of DICOM overlays.
This array is then added the 'overlays' propertry of the image.

This is then read by the overlays tool see - [cornerstonejs/cornerstoneTools#788](cornerstonejs/cornerstoneTools#809)

see issue [cornerstonejs/cornerstoneTools#780](cornerstonejs/cornerstoneTools#780)
see DICOM overlays standard - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html
sedghi pushed a commit to sedghi/cornerstone3D-beta that referenced this pull request Jan 13, 2023
…rlays (cornerstonejs#240)

* DICOM Overlays

Adds 'overlayPlaneModule' type returning an array of DICOM overlays.
This array is then added the 'overlays' propertry of the image.

This is then read by the overlays tool see - [cornerstonejs/cornerstoneTools#788](cornerstonejs/cornerstoneTools#809)

see issue [cornerstonejs/cornerstoneTools#780](cornerstonejs/cornerstoneTools#780)
see DICOM overlays standard - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html

* DICOM Overlays

Adds 'overlayPlaneModule' type returning an array of DICOM overlays.
This array is then added the 'overlays' propertry of the image.

This is then read by the overlays tool see - [cornerstonejs/cornerstoneTools#788](cornerstonejs/cornerstoneTools#809)

see issue [cornerstonejs/cornerstoneTools#780](cornerstonejs/cornerstoneTools#780)
see DICOM overlays standard - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html
sedghi pushed a commit to cornerstonejs/cornerstone3D that referenced this pull request Jan 30, 2023
…rlays (#240)

* DICOM Overlays

Adds 'overlayPlaneModule' type returning an array of DICOM overlays.
This array is then added the 'overlays' propertry of the image.

This is then read by the overlays tool see - [cornerstonejs/cornerstoneTools#788](cornerstonejs/cornerstoneTools#809)

see issue [cornerstonejs/cornerstoneTools#780](cornerstonejs/cornerstoneTools#780)
see DICOM overlays standard - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html

* DICOM Overlays

Adds 'overlayPlaneModule' type returning an array of DICOM overlays.
This array is then added the 'overlays' propertry of the image.

This is then read by the overlays tool see - [cornerstonejs/cornerstoneTools#788](cornerstonejs/cornerstoneTools#809)

see issue [cornerstonejs/cornerstoneTools#780](cornerstonejs/cornerstoneTools#780)
see DICOM overlays standard - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html
sedghi pushed a commit to cornerstonejs/cornerstone3D that referenced this pull request Jan 30, 2023
…rlays (#240)

* DICOM Overlays

Adds 'overlayPlaneModule' type returning an array of DICOM overlays.
This array is then added the 'overlays' propertry of the image.

This is then read by the overlays tool see - [cornerstonejs/cornerstoneTools#788](cornerstonejs/cornerstoneTools#809)

see issue [cornerstonejs/cornerstoneTools#780](cornerstonejs/cornerstoneTools#780)
see DICOM overlays standard - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html

* DICOM Overlays

Adds 'overlayPlaneModule' type returning an array of DICOM overlays.
This array is then added the 'overlays' propertry of the image.

This is then read by the overlays tool see - [cornerstonejs/cornerstoneTools#788](cornerstonejs/cornerstoneTools#809)

see issue [cornerstonejs/cornerstoneTools#780](cornerstonejs/cornerstoneTools#780)
see DICOM overlays standard - http://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Change: Implementation 💻 Change that updates implementation details w/o expanding the API Version 2 📦
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants