Conflict with identical uuid across multiple files

Questions about BrainVisa usage and installation

Moderators: denghien, riviere

Post Reply
User avatar
François Leroy
Posts: 30
Joined: Wed Feb 22, 2006 5:22 pm

Conflict with identical uuid across multiple files

Post by François Leroy »

Hi brain-wisers,

When running the baby pipeline toolbox, I got an error message several times related to conflict between file uuids. The error message says there is a file with the same uuid than the file being processed by the pipeline. I checked the uuid in the .minf of these files and found that indeed they were the same.

When uuid labels are added to files? I don't think processes of the baby pipeline make any uuid labels. Are they produced only when updating the database?

What can we do to prevent identical uuid labels to occur ? Do we need "to check the database" from the data management toolbox to get rid of these conflicts ?

Thanks for your help,
Francois
User avatar
riviere
Site Admin
Posts: 1361
Joined: Tue Jan 06, 2004 12:21 pm
Location: CEA NeuroSpin, Saint Aubin, France
Contact:

Re: Conflict with identical uuid across multiple files

Post by riviere »

Hi François,

The uuid is added typically by the brainvisa infrastructure when indexing data in its databases.
The uuid is stored in the .minf file next to the image data. If the image is copied along with the .minf file, then the uuid is duplicated.
This may also happen if a processing program loads an image, modifies it (without creating a new one) and saves it back at a different location. We have not found a way to regenerate/erase uuids automatically in every situation, and are open to any suggestions.

Denis
User avatar
François Leroy
Posts: 30
Joined: Wed Feb 22, 2006 5:22 pm

Re: Conflict with identical uuid across multiple files

Post by François Leroy »

Thanks Denis for this information.

Here is an example of saving a file without uuid duplication. Suppose you have created some array (eg arr_seg) and that you want to save it with a given file name (eg seg_filename) by using a reliable image header which includes its own uuid (eg vol_mri):

vol_seg = aims.Volume_S16( arr_seg )
vol_seg.header().update( vol_mri.header() )
if 'uuid' in vol_seg.header(): del vol_seg.header()['uuid']
aims.write( vol_seg, seg_filename )

In this way, you save reliable header information without uuid duplication. A new uuid will then be added when updating the database.

I hope this is satisfactory and may help brainvisa developpers.
Cheers,
Francois
Post Reply