Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel

Table of Contents
maxLevel2

Summary

Get images in your apps with the new TCIA REST APIImage RemovedThis document describes v4 of the TCIA programmatic Interface or REST API implementation.  This API is designed for use by developers of image analysis and data mining tools to directly query the public resources of TCIA and retrieve information into their applications. The API complements the existing web interface but eliminates the need for users to visit the TCIA web pages to select and download images then upload them into their viewing and analysis applications. The TCIA programmatic interface is based on a middleware platform called Project Bindaas, developed by Emory University and uses REST web service technologies.

The API is a RESTful interface, accessed through web URLs. There is no software that an application developer needs to download in order to use the API. The application developer can build their own access routines using just the API documentation provided. The interface employs a set of predefined query functions (see REST API Directory) that access TCIA databases.

This page describes the representational state transfer application programming interface (REST API) implementations that can be used to access TCIA data and resources. The APIs complement the existing web interfaces and enable developers to build direct access to TCIA data into their applications using only the API documentation provided. The application developer must ensure that they and the users of their applications comply with the TCIA Data Usage Policy. If you are interested in using the

...

APIs and have any questions, please contact

...

Previously, access to the APIs required an API-KEY. An API-KEY is no longer required to access the public TCIA collections.

What's New

The following characteristics apply to all TCIA APIs.

Version 4 (current)

  • The getSeries API has been modified to include new query parameters.
  • Bug fixes.

Version 3 (Documentation for Version 3)

  • Two new APIs have been added (/getSingleImage, /getSOPInstanceUIDs).
  • Three new APIs have been added (/NewPatientsInCollection, /NewStudiesInPatientsCollection, /PatientsByModality).
  • The getSeries API has been modified to include new query parameters.
  • Bug fixes.

Version 2 (Documentation for Version 2)

  • You can access the metadata of an API by appending /metadata to the end of a QueryEndpoint, without any QueryParameters (See below). The metadata is in JSON format and conforms to this schema.
  • Most APIs can return results as CSV/JSON/XML/HTML. You can specify the return format by including the query parameter format.

Getting Started with the TCIA API

Getting access to the API:

  • Previously access to the APIs required an API-KEY.  An API-KEY is no longer required to access the public TCIA collections. Simply call the RESTful endpoints.
  •  To support existing code without changes, an API-KEY can be included in the url by adding an extra query parameter api_key or it can be included in the HTTP headers.  Since the API-KEY is no longer needed, the underlying service will simply ignore it.

The following characteristics apply to all TCIA APIs:

  • You access a resource by sending an HTTP request to the TCIA API server. The server replies with a response that either contains the data you requested, or a status indicator.
  • You can access the metadata of an API by appending /metadata to the end of the query. See examples. The metadata is in JSON format and conforms to this schema.
  • Most APIs can return results as CSV/JSON/XML/HTML. You can specify the return format by including the query parameter format.
  • An API request takes the following structure:
    <BaseURL><Resource><QueryEndpoint>?<QueryParameters><Format> 

For example, the API shown below requests all studies in the TCGA-GBM collection for patient GBM-0123 as CSV (note that in this example, patID is not a valid TCGA-GBM ID and this call will return only column headers).

Code Block
https://services.cancerimagingarchive.net/services/v4/TCIA/query/getPatientStudy?Collection=TCGA-GBM&PatientID=GBM-0123&format=csv

This can be broken down as follows:

...

API Reference

The full API consists of a base URL followed by the api and the query parameters in that order. 

...

Query Parameters

...

Format

...

Returns a list of PatientIDs, given a specific Collection Name and Modality

the TCIA Help Desk except where otherwise noted.

  • NBIA REST APIsProvided as part of the NBIA software, these APIs provide access to the search and download functions used in the TCIA radiology portal, and allow access to both public and limited access DICOM collections.
    • The NBIA Search REST APIs allow you to perform basic queries and download data for image analysis on public collections.
    • The NBIA Search with Authentication REST APIs allow you to perform basic queries on and download data for image analysis from public and restricted collections.
    • The NBIA Advanced REST APIs also allow access to public and restricted collections, but are geared towards developers seeking to integrate searching and downloading TCIA data into their own web and desktop applications. 
  • DataCite REST APIEach Collection TCIA publishes is issued a Digital Object Identifier (DOI) through DataCite.  This API can be used to programmatically access Collection metadata such as their DOIs, titles and abstracts.  Please note that this API was not developed by TCIA. See https://support.datacite.org/ for any technical questions.  The TCIA Helpdesk may be able to assist if your inquiry is related to the content of the data itself.
  • TCIA REST API: [DEPRECATED 6-22-2022] - The TCIA REST API originally developed using Project Bindaas with Emory University, has been deprecated in favor of the NBIA REST APIs. While the NBIA REST APIs have the same functionality as the Bindaas based TCIA REST APIs, there are some differences that should be noted and tested during conversion from the TCIA REST API to the NBIA REST API. Please see the Migration Guide for details. The existing Bindaas based TCIA REST APIs will remain active but will receive no updates or maintenance going forward.  They also do not contain an up-to-date view of our available datasets, so newer collections will not appear if you use them.

TCIA_Utils

The tcia_utils package contains functions to simplify common tasks one might perform when interacting with The Cancer Imaging Archive (TCIA) via Python.  Issues with this package should be submitted at https://github.com/kirbyju/tcia_utils/issues.  Example notebooks demonstrating tcia_utils functionality can be found at https://github.com/kirbyju/TCIA_Notebooks

Installation can be achieved with this Pip command:

Code Block
pip install tcia_utils


 To import functions related to NBIA for accessing our DICOM radiology data:

Code Block
from tcia_utils import nbia


To import functions related to pathDB for accessing our digitized pathology data:

Code Block
from tcia_utils import pathdb


To import functions related to Datacite for querying Collection metadata such as their DOIs, titles and abstracts:

Code Block
from tcia_utils import datacite

TCIA Data Usage Policy

Excerpt Include
Data Usage Policies and Restrictions
Data Usage Policies and Restrictions
nopaneltrue

...

Collection / StudyInstanceUID /
PatientID / SeriesInstanceUID /
Modality / BodyPartExamined /
ManufacturerModelName /
Manufacturer

...

Date (R)
Collection (R

...

Returns a set of Patients that have been added to a specified collection since a specified date.
Date is specified as (YYYY-MM-DD).
Use the getCollectionValues to get the list of available collections. 

Note

There is a bug if you include a Date argument to NewPatientsInCollection under v3 of the API. This was fixed in v4.

...

Returns a set of Studies that have been added to a specified collection, and optionally to a patient since a specified date.

...

Return a list of SOPInstanceUID for a given series using the SeriesInstanceUID.

...

API Metadata

The API now supports the ability to programmatically access the metadata about your API. This information is provided as a JSON document and includes:

  • Name of API
  • Free text description
  • List of Query Parameters
  • Supported Return Types
  • A description of the returned attributes: Name, DICOM Tag and Description
The returned metadata conforms to a JSON schema.
Info

Example:
Let us say we wanted metadata for the getPatientStudy query from our earlier example. The query would look as follows:
https://services.cancerimagingarchive.net/services/v4/TCIA/query/getPatientStudy/metadata 

Or in other words, the query would have the following structure:
<BaseURL><Resource><QueryEndpoint>/metadata

Warning

Don’t forget to include the api-key in either HTTP headers or the URL of the API.

Return Values

More details on the return values are available.