Command-line interface#

We offer a command-line client for XNAT together with this library. Many of the commands have arguments for the hostname and login information. This would make each command have a lot parameters, e.g.:

$ xnat --hostname https://xnat.example.com --user username list project

To avoid having to give all these arguments for every single call, it is possible to set the hostname with an environment variable. Furthermore, you can login once and reuse the session. For example:

$ XNATPY_HOST=https://xnat.example.com
$ XNATPY_JSESSION=`xnat login --user username`
$ xnat list project
$ xnat logout

Between the login and logout all commands will automatically use the host and login specified. This avoids the need to login for every single command.

Command-line interface reference#

xnat#

xnat [OPTIONS] COMMAND [ARGS]...

Options

--version#

Show the version and exit.

--jsession <jsession>#

JSESSION value

-u, --user <user>#

Username to connect to XNAT with.

-h, --host <host>#

XNAT host to connect to.

-n, --netrc <netrc>#

.netrc file location.

--loglevel <loglevel>#

Logging verbosity level.

--output-format <output_format>#

Output format

Options:

raw | csv | human

--timeout <timeout>#

Timeout for the command in ms.

Environment variables

XNATPY_JSESSION

Provide a default for --jsession

['XNAT_USER', 'XNATPY_USER']

Provide a default for --user

['XNAT_HOST', 'XNATPY_HOST']

Provide a default for --host

XNATPY_LOGLEVEL

Provide a default for --loglevel

XNATPY_OUTPUT

Provide a default for --output-format

XNATPY_TIMEOUT

Provide a default for --timeout

download#

Commands to download XNAT objects to your machine.

xnat download [OPTIONS] COMMAND [ARGS]...
project#

Download XNAT project to the target directory.

xnat download project [OPTIONS] PROJECT TARGETDIR

Arguments

PROJECT#

Required argument

TARGETDIR#

Required argument

import#

Commands to import data from your machine into XNAT

xnat import [OPTIONS] COMMAND [ARGS]...
experiment#

Import experiment from the target folder to XNAT

xnat import experiment [OPTIONS] FOLDER

Options

--destination <destination>#

The destination to upload the scan to.

--project <project>#

The project in the archive to assign the session to (only accepts project ID, not a label).

--subject <subject>#

The subject in the archive to assign the session to.

--experiment <experiment>#

The experiment in the archive to assign the session content to.

--import_handler <import_handler>#
--quarantine#

Flag to indicate session should be quarantined.

--trigger_pipelines#

Indicate that importing should trigger pipelines.

Arguments

FOLDER#

Required argument

list#

Commands to list different XNAT objects either in machine- or human-readable formats.

xnat list [OPTIONS] COMMAND [ARGS]...
projects#

List projects in the target XNAT.

xnat list projects [OPTIONS]

Options

--filter <filter>#

Filter criteria to select projects.

--header, --no-header#

Include header in the listing or not.

--column <column>#

Columns to include in the listing.

subjects#

List subjects in the target XNAT.

xnat list subjects [OPTIONS]

Options

--project <project>#

Project id to list subjects from.

--filter <filter>#

Filter criteria to select subjects.

--header, --no-header#

Include header in the listing or not.

--column <column>#

Columns to include in the listing.

login#

Establish a connection to XNAT and print the JSESSIONID so it can be used in sequent calls. The session is purposefully not closed so will live for next commands to use until it will time-out.

xnat login [OPTIONS]

logout#

Close your current connection to XNAT.

xnat logout [OPTIONS]

prearchive#

Commands for prearchive management.

xnat prearchive [OPTIONS] COMMAND [ARGS]...
archive#

Archive selected prearchive session.

xnat prearchive archive [OPTIONS] __SESSIONID __PROJECT

Options

--subject <subject>#

The subject in the archive to assign the content to.

--experiment <experiment>#

The experiment in the archive to assign the session content to.

--overwrite <overwrite>#

Action to take in case data already exists. Possible values: none, append, delete.

--quarantine#

Indicate whether the session should be quarantined.

--trigger-pipelines#

Indicate whether archiving should trigger pipelines.

Arguments

__SESSIONID#

Required argument

__PROJECT#

Required argument

delete#

Delete selected prearchive sessions.

xnat prearchive delete [OPTIONS]

Options

-p, --project <project>#

Project the session belongs to.

-l, --label <label>#

Session label.

-s, --subject <subject>#

Session subject.

--status <status>#

Session status.

list#

List all sessions currently in prearchive.

xnat prearchive list [OPTIONS]
move#

Move selected prearchive sessions.

xnat prearchive move [OPTIONS]

Options

-p, --project <project>#

Project the sessions currently belong to.

--dest-project <dest_project>#

Destination project.

Session label., -l, --label <label>#
Session subject., -s, --subject <subject>#
Session status., --status <status>#

rest#

Perform various REST requests to the target XNAT.

xnat rest [OPTIONS] COMMAND [ARGS]...
delete#

Perform DELETE request to the target XNAT.

xnat rest delete [OPTIONS] PATH

Options

--query <query>#

The values to be added to the query string in the URI.

--headers <headers>#

HTTP headers to include.

Arguments

PATH#

Required argument

get#

Perform GET request to the target XNAT.

xnat rest get [OPTIONS] PATH

Options

--query <query>#

The values to be added to the query string in the URI.

--headers <headers>#

HTTP headers to include.

Arguments

PATH#

Required argument

head#

Perform HEAD request to the target XNAT.

xnat rest head [OPTIONS] PATH

Options

--query <query>#

The values to be added to the query string in the URI.

--headers <headers>#

HTTP headers to include.

Arguments

PATH#

Required argument

post#

Perform POST request to the target XNAT.

xnat rest post [OPTIONS] PATH

Options

-j, --jsonpath <jsonpath>#

JSON payload file location.

-d, --datapath <datapath>#

Data payload file location.

--query <query>#

The values to be added to the query string in the URI.

--headers <headers>#

HTTP headers to include.

Arguments

PATH#

Required argument

put#

Perform PUT request to the target XNAT.

xnat rest put [OPTIONS] PATH

Options

-j, --jsonpath <jsonpath>#

JSON payload file location.

-d, --datapath <datapath>#

Data payload file location.

--query <query>#

The values to be added to the query string in the URI.

--headers <headers>#

HTTP headers to include.

Arguments

PATH#

Required argument

script#

Collection of various XNAT-related scripts.

xnat script [OPTIONS] COMMAND [ARGS]...
copy-project#

Copy all data from source project to destination project. Source and destination projects can be located in different XNAT instances.

xnat script copy-project [OPTIONS]

Options

--source-host <source_host>#

Required Source XNAT URL

--source-project <source_project>#

Required Source XNAT project

--dest-host <dest_host>#

Required Destination XNAT URL

--dest-project <dest_project>#

Required Destination XNAT project

data-integrity-check#

Perform data integrity check.

xnat script data-integrity-check [OPTIONS]

Options

--host <host>#

Required XNAT URL

--xnat-home-dir <xnat_home_dir>#

Required Path to XNAT home directory

--report <report>#

Required Path to report file