On the Slicer5 roadmap link, I saw proposed changes to coordinate system for markups and models to be LPS.
I am curious how this will impact the existing data being loaded in the Slicer5. We have thousands of landmark files from published datasets (and associated models/volumes), and I would like to know the impact.
All medical imaging software I know (except Slicer) uses LPS coordinate system in files. So, we don’t really have a choice and follow this convention to avoid errors and frustration of users.
To make the transition smooth, since 2017 Slicer writes it in the header of all saved model and markup files what coordinate system is used (LPS or RAS). When we change Slicer to start writing LPS files as default, all the new and old files can still be read correctly.
The final step is to change how files without coordinate system definition are interpreted by default. Old scenes will still be loaded correctly (because from the scene file version we know that the default was RAS back then). For standalone model files that were created by Slicer before 2017 the user will have to choose the correct coordinate system in Add data dialog manually. We can delay this final step for a couple of more years to give users more time to update their model files.
We don’t keep the scene files unfortunately, only the models/volumes and associated fcsv file.
But it is good to know that at least files since 2017 will be automatically converted. For older files, we can programmatically add those headers. This is a fairly significant change for us.
What is the plan to save for re-saving on old fcsv file imported to the new version? Will it remain intact (unless a property modified), or as the user saving the scene will automatically get overwritten with new coordinates and coordinate system.
I am asking this more from a data preservation/integrity perspective
Coordinate system storage in fcsv files was added many years ago, so most likely all your fcsv files already have
# CoordinateSystem in their header.
If you need to update any file then you can load it and re-save it. You can do it in the GUI by making sure the checkbox in save data dialog is checked. You can also write a python script to update all the files in a folder hierarchy (it should be really simple, about 10-15 lines of code).