Currently, there is no interface for pipelines to write to or read from the iFDO "image-set-header" section. However, this access is necessary to create complete and valid iFDOs with marimba.
One solution would be to automatically pull duplicate/common information in the "image-set-items" objects in the header. This would require the pipeline to write the same information into the image information of each image in order to write to the header. While this could be easily be implemented in a non-breaking way, I think this solution may not be very intuitive for users, even if documented, as its behavior is not obvious when building pipelines. A sample implementation can be found here.
Therefore, I would prefer a solution that allows to directly change the header section from the pipeline. While this could result in conflicting information being written to the header by different pipelines, this could be easily detected and then simply force the user to choose a lower "metadata-level" configuration. So if two pipelines want to write different data to the same field in the header, the user would simply need to use a "metadata-level" config equal to pipeline or collection to avoid the collision. However, I currently have no idea, how to implement this solution.
Currently, there is no interface for pipelines to write to or read from the iFDO "image-set-header" section. However, this access is necessary to create complete and valid iFDOs with marimba.
One solution would be to automatically pull duplicate/common information in the "image-set-items" objects in the header. This would require the pipeline to write the same information into the image information of each image in order to write to the header. While this could be easily be implemented in a non-breaking way, I think this solution may not be very intuitive for users, even if documented, as its behavior is not obvious when building pipelines. A sample implementation can be found here.
Therefore, I would prefer a solution that allows to directly change the header section from the pipeline. While this could result in conflicting information being written to the header by different pipelines, this could be easily detected and then simply force the user to choose a lower "metadata-level" configuration. So if two pipelines want to write different data to the same field in the header, the user would simply need to use a "metadata-level" config equal to pipeline or collection to avoid the collision. However, I currently have no idea, how to implement this solution.