Commit 69671ddcbdab5850cb3442afcb638b4577a3e89a

Authored by Thiago Franco de Moraes
1 parent 45e979a1
Exists in master

Checking if a tag element has undefined length

Showing 1 changed file with 36 additions and 37 deletions   Show diff stats
invesalius/reader/dicom_reader.py
@@ -118,11 +118,11 @@ class LoadDicom: @@ -118,11 +118,11 @@ class LoadDicom:
118 # Retrieve header 118 # Retrieve header
119 header = file.GetHeader() 119 header = file.GetHeader()
120 stf = gdcm.StringFilter() 120 stf = gdcm.StringFilter()
  121 + stf.SetFile(file)
121 122
122 field_dict = {} 123 field_dict = {}
123 data_dict = {} 124 data_dict = {}
124 125
125 -  
126 tag = gdcm.Tag(0x0008, 0x0005) 126 tag = gdcm.Tag(0x0008, 0x0005)
127 ds = reader.GetFile().GetDataSet() 127 ds = reader.GetFile().GetDataSet()
128 if ds.FindDataElement(tag): 128 if ds.FindDataElement(tag):
@@ -138,53 +138,52 @@ class LoadDicom: @@ -138,53 +138,52 @@ class LoadDicom:
138 else: 138 else:
139 encoding = "ISO_IR 100" 139 encoding = "ISO_IR 100"
140 140
141 -  
142 # Iterate through the Header 141 # Iterate through the Header
143 iterator = header.GetDES().begin() 142 iterator = header.GetDES().begin()
144 while (not iterator.equal(header.GetDES().end())): 143 while (not iterator.equal(header.GetDES().end())):
145 dataElement = iterator.next() 144 dataElement = iterator.next()
146 - stf.SetFile(file)  
147 - tag = dataElement.GetTag()  
148 - data = stf.ToStringPair(tag)  
149 - stag = tag.PrintAsPipeSeparatedString()  
150 -  
151 - group = str(tag.GetGroup())  
152 - field = str(tag.GetElement()) 145 + if not dataElement.IsUndefinedLength():
  146 + tag = dataElement.GetTag()
  147 + data = stf.ToStringPair(tag)
  148 + stag = tag.PrintAsPipeSeparatedString()
153 149
154 - tag_labels[stag] = data[0]  
155 -  
156 - if not group in data_dict.keys():  
157 - data_dict[group] = {} 150 + group = str(tag.GetGroup())
  151 + field = str(tag.GetElement())
158 152
159 - if not(utils.VerifyInvalidPListCharacter(data[1])):  
160 - data_dict[group][field] = data[1].decode(encoding)  
161 - else:  
162 - data_dict[group][field] = "Invalid Character" 153 + tag_labels[stag] = data[0]
  154 +
  155 + if not group in data_dict.keys():
  156 + data_dict[group] = {}
  157 +
  158 + if not(utils.VerifyInvalidPListCharacter(data[1])):
  159 + data_dict[group][field] = data[1].decode(encoding)
  160 + else:
  161 + data_dict[group][field] = "Invalid Character"
163 162
164 -  
165 # Iterate through the Data set 163 # Iterate through the Data set
166 iterator = dataSet.GetDES().begin() 164 iterator = dataSet.GetDES().begin()
167 while (not iterator.equal(dataSet.GetDES().end())): 165 while (not iterator.equal(dataSet.GetDES().end())):
168 dataElement = iterator.next() 166 dataElement = iterator.next()
169 -  
170 - stf.SetFile(file)  
171 - tag = dataElement.GetTag()  
172 - data = stf.ToStringPair(tag)  
173 - stag = tag.PrintAsPipeSeparatedString()  
174 -  
175 - group = str(tag.GetGroup())  
176 - field = str(tag.GetElement())  
177 -  
178 - tag_labels[stag] = data[0]  
179 -  
180 - if not group in data_dict.keys():  
181 - data_dict[group] = {}  
182 -  
183 - if not(utils.VerifyInvalidPListCharacter(data[1])):  
184 - data_dict[group][field] = data[1].decode(encoding, 'replace')  
185 - else:  
186 - data_dict[group][field] = "Invalid Character"  
187 - 167 + if not dataElement.IsUndefinedLength():
  168 + tag = dataElement.GetTag()
  169 + # if (tag.GetGroup() == 0x0009 and tag.GetElement() == 0x10e3) \
  170 + # or (tag.GetGroup() == 0x0043 and tag.GetElement() == 0x1027):
  171 + # continue
  172 + data = stf.ToStringPair(tag)
  173 + stag = tag.PrintAsPipeSeparatedString()
  174 +
  175 + group = str(tag.GetGroup())
  176 + field = str(tag.GetElement())
  177 +
  178 + tag_labels[stag] = data[0]
  179 +
  180 + if not group in data_dict.keys():
  181 + data_dict[group] = {}
  182 +
  183 + if not(utils.VerifyInvalidPListCharacter(data[1])):
  184 + data_dict[group][field] = data[1].decode(encoding, 'replace')
  185 + else:
  186 + data_dict[group][field] = "Invalid Character"
188 187
189 188
190 # -------------- To Create DICOM Thumbnail ----------- 189 # -------------- To Create DICOM Thumbnail -----------