Skip to content

Commit 53f1d67

Browse files
committed
Merge branch 'master' of https://github.com/kasbohm/heudiconv into enh/private
2 parents f3a7e50 + c68d836 commit 53f1d67

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

heudiconv/dicoms.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import logging
55
from collections import OrderedDict
66
import tarfile
7-
7+
from nibabel.nicom import csareader
88
from heudiconv.external.pydicom import dcm
99

1010
from .utils import SeqInfo, load_json, set_readonly
@@ -73,6 +73,23 @@ def group_dicoms_into_seqinfos(files, file_filter, dcmfilter, grouping):
7373
lgr.info("File {} is missing any StudyInstanceUID".format(filename))
7474
file_studyUID = None
7575

76+
# Workaround for protocol name in private siemens csa header
77+
try:
78+
ProtocolName = mw.dcm_data.ProtocolName
79+
except AttributeError:
80+
mw.dcm_data.ProtocolName = ''
81+
82+
# try parsing Siemens csa header
83+
try:
84+
if mw.is_csa and mw.dcm_data.ProtocolName == '':
85+
csastr = csareader.get_csa_header(mw.dcm_data, 'series')['tags']['MrPhoenixProtocol']['items'][0]
86+
#Make sure dcmstack finds beginning of header.
87+
csastr = csastr.replace("### ASCCONV BEGIN", "### ASCCONV BEGIN ### ") #Remove when dmcstack is updated
88+
parsedhdr = ds.extract.parse_phoenix_prot('MrPhoenixProtocol', csastr)
89+
mw.dcm_data.ProtocolName = parsedhdr['tProtocolName'].replace(" ", "")
90+
except:
91+
lgr.info("File {} is missing ProtocolName".format(filename))
92+
7693
try:
7794
series_id = (int(mw.dcm_data.SeriesNumber),
7895
mw.dcm_data.ProtocolName)
@@ -208,7 +225,7 @@ def group_dicoms_into_seqinfos(files, file_filter, dcmfilter, grouping):
208225
dcminfo.get('PatientID'),
209226
dcminfo.get('StudyDescription'),
210227
refphys,
211-
dcminfo.get('SeriesDescription'),
228+
series_desc, #We try to set this further up.
212229
sequence_name,
213230
image_type,
214231
accession_number,
@@ -232,7 +249,7 @@ def group_dicoms_into_seqinfos(files, file_filter, dcmfilter, grouping):
232249
lgr.debug("%30s %30s %27s %27s %5s nref=%-2d nsrc=%-2d %s" % (
233250
key,
234251
info.series_id,
235-
dcminfo.SeriesDescription,
252+
series_desc,
236253
dcminfo.ProtocolName,
237254
info.is_derived,
238255
len(dcminfo.get('ReferencedImageSequence', '')),

0 commit comments

Comments
 (0)