コード例 #1
0
    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
コード例 #2
0
ファイル: test_extract.py プロジェクト: moloney/dcmstack
 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)
コード例 #3
0
 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)
コード例 #4
0
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)
コード例 #5
0
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
コード例 #6
0
ファイル: extract.py プロジェクト: neurodebian/dcmstack
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
コード例 #7
0
def csa_image_trans_func(elem):
    '''Function for translating the CSA image sub header.'''
    return simplify_csa_dict(csareader.read(elem.value))
コード例 #8
0
ファイル: extract.py プロジェクト: neurodebian/dcmstack
def csa_image_trans_func(elem):
    '''Function for translating the CSA image sub header.'''
    return simplify_csa_dict(csareader.read(elem.value))