[Dcmlib] SOP Instance UID

Mathieu Malaterre mathieu.malaterre at kitware.com
Thu Jan 20 19:50:38 CET 2005


> Je ne sais pas comment doivent être gérés ces UID, je sais seulement qu'ils
> doivent
> etre différents et qu'ils sont important pour que e-film considère le
> fichier comme
> correct.

Voila ce qu j'ai mis dans ITK:

m_UIDPrefix = "1.2.826.0.1.3680043.2.1125." "1";

for (each frame):

// UID generation part:
// We only create *ONE* Study/Series.Frame of Reference Instance UID
if( m_StudyInstanceUID.empty() )
{
   // As long as user maintain there gdcmIO they will keep the same
   // Study/Series instance UID.
   m_StudyInstanceUID = gdcm::Util::CreateUniqueUID( m_UIDPrefix );
   m_SeriesInstanceUID = gdcm::Util::CreateUniqueUID( m_UIDPrefix );
   m_FrameOfReferenceInstanceUID = gdcm::Util::CreateUniqueUID( 
m_UIDPrefix );
}
std::string uid = gdcm::Util::CreateUniqueUID( m_UIDPrefix );

header->ReplaceOrCreateByNumber( uid, 0x0008, 0x0018); //[SOP Instance UID]
header->ReplaceOrCreateByNumber( uid, 0x0002, 0x0003); //[Media Stored 
SOP Instance UID]
header->ReplaceOrCreateByNumber( m_StudyInstanceUID, 0x0020, 0x000d); 
//[Study Instance UID]
header->ReplaceOrCreateByNumber( m_SeriesInstanceUID, 0x0020, 0x000e); 
//[Series Instance UID]
header->ReplaceOrCreateByNumber( m_FrameOfReferenceInstanceUID, 0x0020, 
0x0052); //[Frame of Reference UID]

end for;

Voila voila, il faut noter qu'il est *tres* important de preserver 
study/serie/Frame machine consitant lors de l'ecriture DICOM. Seule SOP 
Instance UID et Media Stored SOP Instance UID doivent changer a chaque 
frame.

Idealement ce code devrait etre dans gdcm et non pas ITK...
Mathieu





More information about the Dcmlib mailing list