Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have implemented significant enhancements to the RTUtils library, which originally required file path dependencies for generating and manipulating RTStructs (Radiotherapy Structures). My contribution specifically addresses the limitation of needing file paths, which was not feasible for API-driven environments where direct file system access is restricted or undesirable.
Key Enhancements:
Memory-Based RTStruct Creation:
create_new_from_memory
, which allows RTStructs to be created directly from DICOM datasets already loaded into memory using PyDicom. This enhancement is crucial for deploying the library in server environments where DICOM files are received as streams or over network protocols without storing them on disk.In-Memory RTStruct Saving:
save_to_memory
function to the RTStruct class. This method facilitates the generation of RTStructs without needing to write to the filesystem. It saves the RTStruct to a BytesIO stream, which can then be used directly within applications or sent over networks, thus enhancing the usability of the library in distributed systems and cloud applications.API Compatibility:
Use Case in API:
Implemented the enhancements in a REST API setting, where DICOM files are retrieved and processed on-the-fly. The updated library handles DICOM files received from HTTP requests, processes them to generate RTStructs, and optionally uploads them to DICOM servers without intermediate disk I/O, demonstrating the library's enhanced functionality in a live server environment.
It would be great to have a feature like this! Thanks!