Получить ClearCanvas DicomTag из группы dicom и номеров элементов
Я пытаюсь прочитать теги dicom из текстового файла как (####,####)
и создайте соответствующий DicomTag из библиотеки clear canvas
//parsing txt string to find the corresponding dicomtag
foreach (String elem in settings)
{
String tag = elem.Replace("(", "").Replace(")", "");
String[] arr = tag.Split(',');
DicomTag dTag = DicomTagDictionary.GetDicomTag(ushort.Parse(arr[0]), ushort.Parse(arr[1]));
if (dTag != null)
{
toRemove.Add(dTag);
}
else
{
MessageBox.Show("Tag: (" + arr[0] + "," + arr[1] + ") is not valid");
}
}
Иногда, даже если тег существует DicomTagDictionary.GetDicomTag(ushort group, ushort element)
Метод не может найти тег, например (0008 0008) работает, но тег (0008,1070) не работает.
теги можно найти здесь: http://medical.nema.org/Dicom/2011/11_06pu.pdf
эквивалент чистого холста можно найти здесь: https://github.com/ClearCanvas/ClearCanvas/blob/master/Dicom/DicomTags.cs
2 ответа
Я думаю, что у текстового файла есть группа и элемент в шестнадцатеричном, в то время как ushort анализирует их как десятичный. 0008, 1070 как десятичное значение 0x0008, 0x042E в шестнадцатеричном формате, что не является допустимым тегом dicom (по крайней мере, в соответствии с dicomlookup.com)
Если вы укажете ushort.Parse со стилем чисел HexNumber, это должно правильно проанализировать значение из текстового файла.
msdn.microsoft.com/en-us/library/kbaxyssf(v=vs.110).aspx
Я использую следующее для редактирования или создания несуществующих тегов в Clear Canvas:
Platform.Log(LogLevel.Info, "Setting Tag: " + "0x" + Stats.g_TaglistTag1 + " to value of: " + Stats.g_tbTagList1);
AC_To_Coerce[Convert.ToUInt32("0x" + Stats.g_TaglistTag1, 16)].SetStringValue(Stats.g_tbTagList1);
AC_To_Coerce является объектом DicomAttributeCollection. Stats.g_TaglistTag1 - это шестнадцатеричная строка для тега DICOM, Stats.g_tbTagList1 - это значение для тега. Это также может быть использовано для установки значения тега для объекта DicomFile или объекта DicomMessage с простой модификацией.
Это устанавливает или создает и устанавливает значение и регистрирует следующую строку, например:
2015-09-18 21: 02: 24,944 [6704] [7] INFO - Значение тега: 0x00100010 для значения: Test