def get_phase_encoding_direction(self, dicom_path): dcm = pydicom.read_file(dicom_path) inplane_pe_dir = dcm[int('00181312', 16)].value csa_str = dcm[int('00291010', 16)].value csa_tr = csareader.read(csa_str) pedp = csa_tr['tags']['PhaseEncodingDirectionPositive']['items'][0] sign = PEDP_TO_SIGN[pedp] return sign, inplane_pe_dir
def test_simplify(self): eq_(extract.simplify_csa_dict(None), None) csa_dict = csareader.read(self.data[pydicom.tag.Tag(0x29, 0x1010)].value) simp_dict = extract.simplify_csa_dict(csa_dict) for tag in csa_dict['tags']: items = csa_dict['tags'][tag]['items'] if len(items) == 0: ok_(not tag in simp_dict) elif len(items) == 1: eq_(simp_dict[tag], items[0]) else: eq_(simp_dict[tag], items)
def get_bids_phase_encoding_direction(dicom_path): """Return BIDS PhaseEncodingDirection string (i, j, k, i-, j-, k-) for DICOM at dicom_path. NOTE: work-in-progress """ dcm = pydicom.read_file(dicom_path) inplane_pe_dir = dcm_pa[int('00181312', 16)].value csa_str = dcm[int('00291010', 16)].value csa_tr = csareader.read(csa_str) pedp = csa_tr['tags']['PhaseEncodingDirectionPositive']['items'][0] ij = rowcol_to_niftidim[inplane_pe_dir] sign = pedp_to_sign[pedp] return '{}{}'.format(ij, sign)
def csa_series_trans_func(elem): '''Function for parsing the CSA series sub header.''' csa_dict = simplify_csa_dict(csareader.read(elem.value)) #If there is a phoenix protocol, parse it and dump it into the csa_dict phx_src = None if 'MrPhoenixProtocol' in csa_dict: phx_src = 'MrPhoenixProtocol' elif 'MrProtocol' in csa_dict: phx_src = 'MrProtocol' if not phx_src is None: phoenix_dict = parse_phoenix_prot(phx_src, csa_dict[phx_src]) del csa_dict[phx_src] for key, val in iteritems(phoenix_dict): new_key = '%s.%s' % ('MrPhoenixProtocol', key) csa_dict[new_key] = val return csa_dict
def csa_series_trans_func(elem): '''Function for parsing the CSA series sub header.''' csa_dict = simplify_csa_dict(csareader.read(elem.value)) #If there is a phoenix protocol, parse it and dump it into the csa_dict phx_src = None if 'MrPhoenixProtocol' in csa_dict: phx_src = 'MrPhoenixProtocol' elif 'MrProtocol' in csa_dict: phx_src = 'MrProtocol' if not phx_src is None: phoenix_dict = parse_phoenix_prot(phx_src, csa_dict[phx_src]) del csa_dict[phx_src] for key, val in phoenix_dict.iteritems(): new_key = '%s.%s' % ('MrPhoenixProtocol', key) csa_dict[new_key] = val return csa_dict
def csa_image_trans_func(elem): '''Function for translating the CSA image sub header.''' return simplify_csa_dict(csareader.read(elem.value))