I am looking to replicate a workflow I currently use in 3D Slicer on a web-based platform using VTK.js or Cornerstone3D.js. Specifically, I need to view a 3D object file (e.g., OBJ) in conjunction with a medical image file (e.g., NIFTI) across three orthogonal views and see the intersections.
Current Workflow in 3D Slicer:
- Load Medical Image:
- Add a NIFTI image as a volume.
- Right-click on the image and select “Show in 3D views as volume rendering.”
- Load 3D Model:
- Add an OBJ file as a model.
- In the Data tab, right-click on the model and enable “2D Visibility.”
- Transform Model:
- Create a new transform for the model object.
- Right-click on the transform and go to “Edit Properties” to adjust the model’s position and rotation using sliders.
- View Intersections:
- Move the model within the volume and observe intersections in Axial, Sagittal, and Coronal views.
- Use the Model tab to switch the model’s visibility between intersection and surface modes.
Requirement:
I need to achieve similar functionality on the web with VTK.js or Cornerstone3D.js. Specifically:
- Load a medical image file (e.g., NIFTI).
- Load a 3D object file (e.g., OBJ).
- Move the OBJ file within the NIFTI volume.
- Navigate through the volume in Axial, Sagittal, and Coronal views to observe the position of the 3D model.
- Display intersections of the 3D model with the medical image volume in the orthogonal views.
Questions:
- Which specific modules and components of VTK.js are suitable for this task?
- Are there any existing examples or tutorials that demonstrate similar functionalities?
- How can I implement interactive transformations (position and rotation) of the 3D model within the volume?
- What is the best approach to enable and visualize intersections of the 3D model in the orthogonal views?
Any guidance or examples to get started with this would be greatly appreciated.
Thank you!