-
Notifications
You must be signed in to change notification settings - Fork 294
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
RFC for v2.x #717
Comments
#514 - DONE |
#697 - DONE |
Would the rafactor of Since this version is mainly trying to catch up with the modern DX, I'd love to see that the web worker files can be loaded in a more general way, which could makes it possible to be bundled by other modern bundlers like For now I believe users have to manually copy all the worker files from within the This is what almost 'blocks' me from using this great library the first time, with a project set up by |
Thanks for your comment @shunia |
I would love to and did try to create a repo for this, but after some digging I find it becoming harder to implement a simple viewer now because of the API change, you have to create an image loader or the viewport will just not work and complains with errors. If you are interested in how to setup a basic npm create vite@latest And because of the failed experience, I believe the 'image loader' concept should be improved too. I don't have enough time to dig deeper now, but I think the signature of |
I hoped the custom image loader how-to-guide adds some guidance on how to write your loaders https://www.cornerstonejs.org/docs/how-to-guides/custom-image-loader |
DONE imageCoordinate -> worldCoordinate function getDataInTime( |
DONE I think there is an inconsistency with how a volume or stack triggers the NEW_VOLUME or NEW_STACK events. In BaseVolumeViewport.ts, the VOLUME_VIEWPORT_NEW_VOLUME event is triggered on the viewport element whereas in StackViewport.ts, the STACK_VIEWPORT_NEW_STACK event is triggered on the cornerstone eventTarget. Is this intentional? Relevant lines below:
https://github.com/cornerstonejs/cornerstone3D/blob/c527923a8a1afd65e76f9335ac4cc0bc3a0e924b/packages/core/src/RenderingEngine/StackViewport.ts#[…]2 |
I believe the most important part is omitted in the example code: // Request succeeded, Create an image object (logic omitted)
const image = createImageObject(oReq.response); What is the actual return type? |
DONE camera rotation should be on the camera not properties |
remove STACK_NEW_IMAGE and VOLUME_NEW_IMAGE after merging the NEW_IMAGE |
DONE getCalibratedLengthUnits and getCalibratedAreaUnits arugment order |
DONE resetCamera(resetPan, ....) |
decache, convertToImages etc. in streaming |
DONE referenceId vs referencedId vs referencedImageId vs referenceImageId |
DONE export function triggerAnnotationRenderForViewportIds( Should be rendering engine Id |
DONE VOLUME_SCROLL_OUT_OF_BOUNDS is VOLUME_VIEWPORT_SCROLL_OUT_OF_BOUNDS |
DONE createAndCacheVolume might be better to name createAndCacheEmptyVolume |
getSegmentationRepresentationByUID requires toolGroupId which does not makes sense |
getAllSegmentationRepresentations should be array instead of object |
drawpath vs drawpolyline |
Increase line width to 100, OHIF dev experience is much better |
setSegmentationRepresentationSpecificConfig should not rely on toolGroupId as UIDs should be uids |
drawRect, |
I can see the types for dicomImageLoader is missing. I've been trying to fix it on main branch but I ended up with issue with |
@kresli I know it is a pain, we will work on it soon hopefully |
We are not following the lps definition in our slices, volview does it correctly |
Update the volume API to use single slices on browser side and combined slice data on volume side so that the memory is shared between single frames and multiple frames and large volume allocation works. This should allow 2 memory regions on the webGL side to be treated as a single volume for rendering so that larger volumes can be created. This would involve removing all the destination volume code where the offset to store to is included in the imageio, and the imageio would no longer need to use shared memory. |
We might want to consider the API for resizing of windows - there is CSS which automatically selects the right aspect ratio, and will allow resizing the window using the browser native resize so it is really smooth, followed by automatic updates. Unfortunately, it changes the API for the element containing the viewport a tiny bit - the old ones work, but need to be fixed just a bit to work more smoothly, but the new element styling is NOT backwards compatible. |
DONE We should enable the prescale always to true |
Optional installs |
Changing the naming of the -> change everything to AreaUnits |
display are should be one to one always |
@sedghi Do you have a timeline on when will V2 come out of beta release? |
Veeeery soon |
@sedghi I'm starting a new project. Do you recommend installing the latest beta or the latest ~1.86? Also, how "soon" you mean? This month or next month? |
I mean worst case scenario next week |
Done in #1400 |
Cornerstone3D beta distribution tag is now live in npm 🎉, and the beta branch will publish to it.
We are excited 😃 to open this RFC for version 2.x of Cornerstone3D. Our vision for these changes includes:
Removal of cjs in favor of esm and umd: we don't really need all three 🧹.Dropping ES5 support and targeting newer ES2022: Aligning with the latest standards 🚀.Upgrade of TypeScript to 5.x: Enhancing the type safety and developer experience 💻.Rework of the web workers with comlink: Modernizing this critical aspect for better performance and maintainability 🛠️.These changes are intended to make Cornerstone3D more modern and efficient. However, we recognize that they might also lead to breaking changes, particularly in the API 😬.
If there is any part of the API that doesn't make sense to you, or if you have a better idea that you couldn't propose before due to it being a breaking change, now is the time ⏰. We value your input, and we're eager to hear your thoughts 💭.
How to Propose Changes:
The text was updated successfully, but these errors were encountered: