Skip to content
xsa_skript.py 1.59 KiB
Newer Older
import xsalogic.queries as queries

def main(host, user, passw):
    import distutils.core

    root_element = 'xnat:mrScanData'
    constraints = [
        ('xnat:mrScanData/TYPE', 'LIKE', '%t1%'),
        ('xnat:mrScanData/PARAMETERS_FLIP', '>=', '10'),
        'AND',
        [('xnat:mrScanData/PARAMETERS_TE', '>', '2.0'),
         ('xnat:mrScanData/PARAMETERS_TE', '<', '2.0'),
         'OR'
         ]
        ]

    search_fields=[ 'xnat:mrScanData/TYPE',
                    'xnat:mrSessionData/PROJECT',
                    'xnat:mrSessionData/SUBJECT_ID',
                    'xnat:mrSessionData/SESSION_ID',
                    'xnat:mrScanData/ID'
                    ]


    results = queries.search_for(host, root_element, constraints,search_fields, user, passw)

    print "Search results (%s):" % len(results)
    print results

    while True:
        try:
            is_downl = distutils.util.strtobool(raw_input("download? "))
            break
        except ValueError:
            print "invalid character. Please use y or n."

    if is_downl:
        print "downloading files..."
        queries.download_all(results, host)
        print "finished"
    else:
        print "download canceled"



if __name__ == "__main__":
    import argparse

    parser = argparse.ArgumentParser(description='search and download')
    parser.add_argument('--host', type=str, help='hostname or ip-address (including port).', default="localhost:8080")
    parser.add_argument('--user', type=str, help='user:passw', default=":")

    args = parser.parse_args()

    u,p = args.user.split(':')
    main(args.host, u, p)