[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