Преобразуйте тег dicom в имя строки в gdcm в переполнении стека

Учитывая тег gdcm, например gdcm::Tag(0x0010,0x0010) как это может быть преобразовано в соответствующую строку имени тега, в этом случае "PatientsName" в С ++?

2

Решение

Вот что я делаю в приложении на базе Qt с GDCM:

QString duDicomDictionary::getTagName( const gdcm::Tag & tag )
{
QString retVal;

const gdcm::Global& g = gdcm::Global::GetInstance();
const gdcm::Dicts &dicts = g.GetDicts();
const gdcm::Dict &pubdict = dicts.GetPublicDict();

gdcm::DictEntry ent = pubdict.GetDictEntry(tag);

if (ent.GetVR() != gdcm::VR::INVALID ) {
retVal = QString::fromStdString(ent.GetName());
}

return retVal;
}

Этот код будет работать только для публичных групп.

Чтобы получить частные группы, которые я использую (после того, как я заполнил частный словарь):

QString duDicomDictionary::getTagName( const gdcm::PrivateTag & tag )
{
QString retVal;

const gdcm::Global& g = gdcm::Global::GetInstance();
const gdcm::Dicts &dicts = g.GetDicts();
const gdcm::PrivateDict &privdict = dicts.GetPrivateDict();

gdcm::DictEntry ent = privdict.GetDictEntry(tag);

if (ent.GetVR() != gdcm::VR::INVALID ) {
retVal = QString::fromStdString(ent.GetName());
}
else
{
ent = g_privateDict.GetDictEntry(tag);

if (ent.GetVR() != gdcm::VR::INVALID ) {
retVal = QString::fromStdString(ent.GetName());
}

}

return retVal;
}
2

Другие решения


По вопросам рекламы [email protected]