Comments (4)
A small update from my side:
I ended up converting all POINT and OPEN_PLANAR structures into CLOSED_PLANAR by expanding the number of triplets using the corresponding image serie dimensions to determine the new triplet positions, as this resultet in a better workflow for our physicians.
The reason for this, is that our delineation software has more tools available for CLOSED_PLANAR structures, whereas POINT structures had to be replaced by new delineations in order to adjust the size.
I'm not sure how common this is for other image software, but this approach will work when POINT and OPEN_PLANAR are not supported.
from rt-utils.
Hi @mathiasgaede, thanks for the feedback.
I would love to help you guys expand your toolbox a little instead.
That would be awesome, we always are happy help new contributors.
Regarding what your are saying with the contours, what would be an ideal fix? We can change between OPEN_PLANAR / CLOSED_PLANAR based on the number of points. We can also provided an interface so that users can enable POINT's instead of
OPEN_PLANAR,
from rt-utils.
A quick and dirty fix would just be to use the NumberOfContourPoints value to set the geometric type:
1 = POINT
2 = OPEN_PLANAR
3 <= CLOSED_PLANAR
For this part, i don't think you need any user input, as you just need the model output to be successfully transferred to the image software without information loss. The trouble here is with the OPEN_PLANAR part not always being supported, which i will test a few methods for this week. I'm working with Syngo.via from Siemens and Mirada XD from Mirada Medical, but i can also check stuff in Slicer3D, if that is the program you are using.
For OPEN_NONPLANAR and CLOSEDPLANAR_XOR i do think you need some kind of user decision to implement them properly, but I'm not familiar enough with your toolbox to suggest a way to implement it yet.
To handle empty spaces inside contours, such as dead areas inside a tumour, i currently just inverse the binary mask, discard the largest connected component and give the other components the CLOSEDPLANAR_XOR type. This function has to be manually activated, as it is not a situation that can happen for most image series i work with. I'm sure that there are smarter ways to implement this.
I have no personal experience with usage of OPEN_NONPLANAR and i have not yet had a use case for this.
Link to Dicom standard for geometric types:
http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.8.8.6.html#sect_C.8.8.6.1
from rt-utils.
@mathiasgaede thanks for the detailed response. We are hoping to publish the changes for this sometime over the next week.
from rt-utils.
Related Issues (20)
- RtStruct saved from nifti appears rotated. HOT 5
- rt-utils fails on "Radiation therapy simulation head ..."
- How to use rt-utils to convert nii files to dicom (rtstruct)?
- Error when using platipy.dicom.io.nifti_to_rtruct function to convert nii to rtstruct: the Mask must have the number of layers saved (in dimension 3) as an input sequence. Expected 65, result 13
- NIfTI to RTStruct - no registration with CT (rotation problem?)
- No SOPClass UID after add_roi
- RT-Struct does not always align with the original CT Scan HOT 1
- use_pin_hole (x,y) vs (y,x) HOT 1
- File type for ML masks HOT 3
- nifti mask to RT-struct dicom HOT 6
- Pixelated contours preferred
- cv.fillPoly() exception when running rtstruct.get_roi_mask_by_name HOT 10
- Empty series and slice mask functions column rather than row first HOT 2
- Preferred Way to Cite this Repository HOT 1
- PixelSpacing incorrectly taken into account HOT 2
- RTs to .nii.gz conversion issue HOT 1
- ROIException Error
- Nonuniform slice thickness
- Acquisition Count > 1 not supported
- Return ROI names of geometric type
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rt-utils.