Я использую библиотеку DCMTK (3.6.0), чтобы получить значение тега (0020,0013), который представляет собой номер изображения, также известный как номер фрагмента серии.
Я использую следующее в пакетном сценарии
for /f "tokens=2 delims=[]" %%a in ('@echo. ^|c:\Libs\dcmtk-3.6.0\bin\dcmdump +P "0020,0013" %%i') do (set img_no=%%a)
Обычно все идет хорошо, но иногда это значение всегда устанавливается равным «0» для всей серии.
Я попытался сбросить это с помощью этой команды
C:\Libs\dcmtk-3.6.0\bin>dcmdump +P "0020,0013" PathToInvalideDICOM\img.dcm
(0020,0013) IS [0] # 2, 1 InstanceNumber
(0020,0013) IS [4] # 2, 1 InstanceNumber
(0020,0013) IS [0] # 2, 1 InstanceNumber
C:\Libs\dcmtk-3.6.0\bin>dcmdump +P "0020,0013" PathToCorrectDICOM\img.dcm
(0020,0013) IS [0] # 2, 1 InstanceNumber
(0020,0013) IS [5] # 2, 1 InstanceNumber
Как мы видим, иногда значение, которое нужно получить (которое не является «0»), является последним. В этом случае все хорошо. Но в некоторых частных случаях правильное значение сохраняется между двумя «0».
Я также пробовал использовать другой дампер (DCM4CHE 2.0.23), и он дал мне тот же результат.
Я хочу знать, почему это происходит. И более того, как получить правильное значение?
Есть ли способ в пакетном файле исключить 0 до правильного числа?
По умолчанию моя командная строка, приведенная выше, занимает последнее поле... Я думаю.