...
Panel | ||||
---|---|---|---|---|
|
What's New
In July 2023, the following API was added to this guide.
Purpose of this Guide
The This guide explains the advanced features of the National Biomedical Imaging Archive (NBIA) REST APIs allow you to access the search and download functions used in the TCIA radiology portal. The NBIA Advanced REST APIs , described on this page, provide capabilities to access restricted collections, which require login authentication. They also provide advanced features that are geared towards developers seeking to integrate searching and downloading TCIA data into their own web and desktop applications.
...
NBIA Advanced REST API Base URL, Format, and Return Values
Access to any NBIA Advanced REST API requires an authentication token. You must contact the TCIA Help Desk to receive the client_id and client_secret needed to generate a token. If you want to access restricted collections, the TCIA Help Desk must give your user account permission to access them.
The full API for data structure consists of a base URL followed by the API and query parameters, in that order. The base URL to access NBIA Advanced REST API data is https://services.cancerimagingarchive.net/nbia-api/services.
Note | ||
---|---|---|
| ||
To access National Lung Screening Trial (NLST) data, get the authentication token from https://nlst.cancerimagingarchive.net/nbia-api/oauth/token, then use https://nlst.cancerimagingarchive.net/nbia-api/services/ to make REST API calls. |
...
icon | false |
---|---|
title | NBIA Advanced REST API Query Structure |
Code Block |
---|
<Token><BaseURL><Resource><QueryEndpoint>?<QueryParameters> |
For example, the AP
I
...
shown below requests all Body Part Values and Counts for the PT modality.
Note: To accommodate special characters in passwords, use double quotes on Windows and single quotes on Mac and Linux.
Info | ||||
---|---|---|---|---|
| ||||
|
We can break this down as follows.
Object | Example |
---|---|
Access Token | cd2b2895-85d0-49c5-bd75-804f162da942 |
BaseURL | |
Resource | /nbia-api/services |
Endpoint | getBodyPartValuesAndCounts |
Query Parameters | Modality=PT |
...
All APIs return results in JSON format except for the Thumbnail API (JPG), Manifest Text API (TXT), and Series Metadata 2 API (CSV).
Secure Access to NBIA REST Services
Access to any NBIA Advanced REST API requires a token that you must request.
...
This token can then be used on subsequent requests to authorize access to resources. This token will expire in two hours but you can refresh it.
The NBIA REST API supports secure access to private data in the Client Credentials authorization flow with Spring Security and OAuth2. The Client Credentials authorization flow is also known as "signed fetch" or 2-legged OAuth. The following figure illustrates the typical use case for REST API calls made on the web using 2-legged OAuth. For more information regarding the specific workflow, consult the OAuth2 Specification.
...
Figure 1: Client Credentials Flow
This flow includes the following steps:
- The client authenticates with the authorization server and requests an access token from the token endpoint.
- The authorization server authenticates the client, and if valid, issues an access token.
This token can then be used on subsequent requests to authorize access to resources. The NBIA Advanced REST API server also supports token expiration and extension by refresh. The time it takes tokens to expire is currently two hours but is configurable.
To access TCIA using an NBIA Advanced REST API, you must do the following:
Requesting a Token
Access to any NBIA Advanced REST API requires an authentication token. You must contact the TCIA Help Desk to receive the client_id and client_secret needed to generate a token.
Requesting a Token
Access to any NBIA Advanced REST API requires an access token. A request for an access token takes the following structure. Note that USER should be your TCIA username and PASSWORD should be your TCIA password.
Note: To accommodate special characters in passwords, use double quotes on Windows and single quotes on Mac and LinuxA request for a token takes the following structure. Refer to the table below for the correct username and password to pass in the call.
Code Block | ||
---|---|---|
| ||
curl -v -d "username=<username>USER&password=<password>PASSWORD&client_id=<theClientIDFromHelpDesk>NBIA&clientgrant_secret=<theClientSecretFromHelpDesk>&grant_type=type=password" -X POST -k https://services.cancerimagingarchive.net/nbia-api/oauth/token |
...
If you don't have a TCIA account, you can access public data using the "nbia_guest" account with no password, as follows.
Code Block | ||
---|---|---|
| ||
curl -v -d "username=nbia_guest&password=&client_id=NBIA&grant_type=password" -k https://services.cancerimagingarchive.net/nbia-api/oauth/token |
How a Token is Returned/Granted/Given
A successful token request returns a standard access token in JSON format. The value after "access_token" will be longer than this example.
Request a token by interacting with the application in the following way.
- The application requests credentials. The credentials you pass are different depending on if you want to access public or restricted data (see above).
The application sends a request to the service using the credentials you provided as a query string for the body.
- grant_type=password
- username
- password
The service responds with access token details and expiration information.
- access_token
- expires_in
- token_type
The application makes a request for resources using the returned access token. All APIs listed for accessing public data also support secure access to restricted data with an additional parameter for the access token.
How a Token is Returned/Granted/Given
A successful token request returns a standard access token in JSON format.
Code Block | ||
---|---|---|
| ||
{"access_token":"f7889076cd2b2895-b3e485d0-476849c5-9419bd75-3cd973adda76804f162da942","tokenexpires_typein":"bearer"7200,"refresh_expires_in":7200,"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgO","not-before-policy":"671bb72b-f929-4ef5-a4d7-b52341a6007a","expires_in":7199} |
...
0,"session_state":"92a199c6-84ed-48aa-a0d2-059bbb99bc90","scope":"openid profile email"} |
Make a note of the access token you received and pass it with the REST service call.
Code Block | ||
---|---|---|
| ||
# Request for modality values and counts curl -H "Authorization:Bearer c428d42ccd2b2895-9eed85d0-4f5d49c5-8007bd75-416d46be9b52804f162da942" -k "https://services.cancerimagingarchive.net/nbia-api/services/getModalityValuesAndCounts?Collection=LIDC-IDRI" |
A successful service request returns the value in a defined format.
...
Refreshing the Token
The time it takes tokens to expire is configurable but is currently two hoursYou can refresh your access token for an additional two hours by passing the refresh token from your original token request.
Code Block | ||
---|---|---|
| ||
# Request for refreshing the token $ curl -X -v -d "refresh_token=7c2414a1-1f2f-4c9e-82a0-69fcb9fd18ed& "client_id=nbiaRestAPIClient&client_secret=ItsBetweenUAndMenbia&grant_type=refresh_token" &refresh_token=YOUR_REFRESH_TOKEN" -X POST -k https://servicesnbia.cancerimagingarchive.net/nbia-api/oauth/token /nbia-api/oauth/token" |
In the following result, 119
is 7200
is the seconds before the token expires.
Code Block | ||
---|---|---|
| ||
{"access_token":"YOUR_ACCESS_TOKEN","expires_in":7200,"refresh_expires_in":7200,"refresh_token":"bbe4aa2c-7235-41ad-9770-31619d3dbd15YOUR_REFRESH_TOKEN","token_type":"bearerBearer","refreshid_token":"YOUR_ID_TOKEN","not-before-policy":"671bb72b-f929-4ef5-a4d7-b52341a6007a","expires_in":119} |
Example Request to Logout
0,"session_state":"531425b6-425d-44f8-bc74-41200d6803c0","scope":"openid profile email"} |
Logging Out
The following is an example request to log out. Logging out invalidates the token you previously requested.
Code Block | ||
---|---|---|
| ||
Code Block | ||
| ||
# Request for logout curl -X $ curl -H-v -d "Authorization:Bearer caa278aa-e7a9-45b8-a7ec-2c83d4b03cc0YOUR_ACCESS_TOKEN" -k "https://services.cancerimagingarchive.net/nbia-api/logout" |
Result
Code Block | ||
---|---|---|
| ||
You Have Logged Out successfully. |
REST Advanced REST APIs
The TCIA Radiology Portal’s search features use the following Advanced REST APIs.
If the value for an attribute is null in the specified collection, it will not appear in the returned values.
...
maxLevel | 2 |
---|---|
location | top |
Body Part Values and Counts API
The Body Part Values and Counts API returns the modality values and body part count for the modality. It optionally takes the following parameters.
- Collection
- Modality
Example Body Part Values and Counts Query
The request does not return any values.
Accessing the National Lung Screening Trial (NLST) collection
Due to its size, the National Lung Screening Trial (NLST) collection lives on a separate NBIA server. Since this server only holds the public NLST collection, there is no reason to create an API token with your own credentials. To access these data via the Advanced REST API, you must change the URL to obtain the authentication token from https://nlst.cancerimagingarchive.net/nbia-api/oauth/token. You can then use https://nlst
...
title | Sample Call |
---|
...
.cancerimagingarchive.net/nbia-api/services/
...
Sample Results
...
to make REST API calls. In both cases, the beginning of the URL is changed from "services" to "nlst." Examples of requesting a token and performing an API query are shown below:
Code Block | ||
---|---|---|
| ||
curl -X -v -d "username=nbia_guest&password=&client_id=NBIA&grant_type=password" -X POST -k https://nlst.cancerimagingarchive.net/nbia-api/oauth/token |
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer YOUR_ACCESS_TOKEN" -k "https://nlst.cancerimagingarchive.net/nbia-api/services/getBodyPartValuesAndCounts?Modality=PT" |
Advanced REST APIs
The TCIA Radiology Portal’s search features use the following Advanced REST APIs.
Query Name | Return Values | Query Parameters |
---|---|---|
Body Part Values and Counts | Modality values and body part count for the modality API example and return values for getBodyPartValuesAndCounts |
|
Collection Descriptions | The collection's description | collectionName (O) |
Collection or Series for DOI | The collection and/or series with the Digital Object Identifier (DOI) API example and return values for getCollectionorSeriesforDOI |
|
Collection Values and Counts | The collections and the subject count for the collection API example and return values for getCollectionValuesandCounts | |
Create Saved Cart | Creates a saved cart (list) API example and return values for Create Saved Cart (createSharedList) |
|
DICOM Metadata by Series UID | Provides the functionality in the portal where the DICOM data is retrieved from a series | SeriesUID |
Extended Simple Search with Modality and Body Part Paged | API example and return values for getSimpleSearchWithModalityAndBodyPartPaged |
|
Image with MD5 Hash | Zip file with the images and a CSV file containing the MD5 hashes | SeriesInstanceUID |
Manifest for Simple Search | The Manifest Text for Simple Search API allows the creation of a manifest file that can be used to execute the NBIA Data Retriever. API example and return values for getManifestForSimpleSearch | The API takes the same arguments as the Simple Search GUI. |
Manifest Text | The Manifest Text API allows the creation of a manifest file that can be used to execute the NBIA Data Retriever. |
|
Manifest for Text Search | Generates a manifest file of series. This is an API version of the text search in the NBIA Radiology Portal GUI. See Performing a Text Search for more information. | textValue |
Manifest from Patient Study Series | A manifest file of patient IDs that match the input parameters API example and return values for getManifestfromPatientStudySeries |
|
MD5 Hierarchy | API example and return values for getMD5Hierarchy |
|
Manufacturer Values and Counts | The manufacturer and their counts API example and return values for getManufacturerValuesandCounts | Collection (R) |
MD5 Hash for Image | The API returns a zip file containing the DICOM images and a CSV file with the MD5 hash code for each image file. | sopInstanceUid |
Modality Values and Counts | The modality values plus the manufacturer count for the modality API example and return values for getModalityValuesandCounts |
|
Restrictions for Simple Search | API example and return values for getRestrictionsforSimpleSearch | |
Series Metadata 2 | The Series Metadata API allows returns the metadata needed by the client for a set of series as CSV. | list- Comma-separated list of series to return (R) |
Species Tax | API example and return values for getSpeciesTax | N/A |
Species Values And Counts | API example and return values for getSpeciesValuesAndCounts | |
Study Drill Down With Series IDs | API example and return values for getStudyDrillDownWithSeriesIDs | list |
Thumbnail | API example and return values for getThumbnail | seriesUID objectUID |
Text Search | API example and return values for getTextSearch | textValue |
Updated Series | API example and return values for getUpdatedSeries | fromDate (R) |
Return Values
If the value for an attribute is null in the specified collection, it will not appear in the returned values.
Table of Content Zone | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Body Part Values and CountsExample Body Part Values and Counts Query
Collection DescriptionsExample getCollectionDescriptions Query
Collection or Series for DOIExample getCollectionOrSeriesForDOI Query for Collection
Return Value for Collection
Example getCollectionOrSeriesForDOI Query for Series
Return Value for Series
Collection Values and CountsExample Collection Values And Counts Query
Create Saved CartExample Create Saved Cart Query
NOTE: list=<seriesInstanceUID> DICOM Metadata by Series UIDThe SeriesUID is available from the Drill Down API call. Example Metadata Query
The API sends back triples of all DICOM element, name, data in the file.
Extended Simple Search with Modality and Body Part PagedThe Extended Simple Search with Modality and Body Part Paged API is used to run queries for the Simple Search GUI in the NBIA client. This API uses a variety of criteria as seen in the NBIA client, as well as the pages of data the client requests. The available criteria types and their components follow. Since the simple search can take an unlimited number of criteria, each of the criteria items is appended with a number signifying its order in the query, starting with 0. Example Extended Simple Search with Modality and Body Part Paged Query
The API returns the results of the search.
Image with MD5 HashExample Image with MD5 Hash Query
Manifest for Simple SearchExample Manifest for Simple Search Query
Manifest TextExample Manifest Query
Manifest for Text SearchThis API takes a text value and generates a manifest file of series. This is an API version of the text search in the NBIA Radiology Portal GUI. See Performing a Text Search for more information. Example getManifestForTextSearch Query
Manifest from Patient Study SeriesThis API takes a a parameter and generates a manifest file of patient IDs that match those parameters. This API takes the following parameters:
Example getManifestFromPatientStudySeries Query
If successful, the API returns the following.
MD5 HierarchyExample getMD5Hierarchy Query
Manufacturer Values and Counts APIExample getManufacturerValuesAndCounts Query
MD5 Hash for ImageGenerates an MD5 Hierarchy for a given Collection, PatientID, StudyInstanceUID, or SeriesInstanceUID, which can be compared to a previously generated hierarchy to determine if any changes have occurred to the data. The API takes one argument:
Example MD5 Hash for Image Query
Modality Values and CountsThe Modality Values and Counts API returns the modality values plus the subject count for the modality. It optionally takes the following parameters.
Example Modality Values and Counts Query
The API returns the modalities and their counts.
Restrictions for Simple SearchThe Restrictions on Simple Search API returns whether any series returned by simple search has commercial restrictions. The API takes the same parameters as the Simple Search GUI. Example getRestrictionsForSimpleSearch Query
The API returns "Yes" if there are commercial restrictions and "No" if there are not. Series Metadata 2The Series Metadata API allows returns the metadata needed by the client for a set of series as CSV. Example Series Metadata 2 Query
The API returns ok if successful, and the error if one occurs.
Species TaxThe Species Tax API returns the species taxonomy and takes no parameters. Example Species Tax Query
The API returns the current species taxonomy.
Species Values And CountsThe Get Species Values And Counts API returns the values and counts for species and takes the same parameters as the Simple Search GUI. Example Species Values And Counts Query
The API returns the values and counts for species.
Study Drill Down With Series IDsThe Study Drill Down API provides the functionality in the portal where the user drills down to the studies and series associated with a given user. The API takes a list of series to query, using the parameter "list," that is repeated for each series instance UIDs you want to retrieve. Example Study Drill Down With Series IDs Query
The Study Drill Down With Series Ids API returns JSON with the information to populate the drill down to study screen. There can be multiple studies.
ThumbnailThe Get Thumbnail API returns the DICOM tags and values associated with the image.
Example Thumbnail Query
The API returns a JPG thumbnail.
Text SearchThe text search API is used to run queries for Text Search in the portal. The text search takes an argument, textValue. Example Text Search Query
Note that the returned JSON now includes the "hit" that was found by the Solr search engine.
Updated SeriesThis API returns the series that have been updated since a given date. The API takes one argument:
Example Get Updated Series Query
The API returns the updated series.
| Sample Return Value | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[
{"criteria":"ABDOMEN","count":"13"},
{"criteria":"CHEST","count":"298"},
{"criteria":"Chest","count":"1"},
{"criteria":"HEADNECK","count":"1"},{
"criteria":"Lung","count":"76"},
{"criteria":"THORAX_1_ROUTINE","count":"1"}
] |
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer eec67b9c-44fc-4fd8-809d-dea1b228c8b9" -k "https://imaging-qacm.nci.nih.gov/nbia-api/services/getCollectionOrSeriesForDOI" -d "DOI=https://doifor-CBIS-DDSM&CollectionOrSeries=collection" |
The API returns the collections with their counts.
Code Block | ||
---|---|---|
| ||
[\{"collection":"CBIS-DDSM","seriesInstanceUID":null,"thirdPartyAnanlysis":null}] |
Collection Values and Counts API
The Collection Values and Counts API returns the collections and the subject count for the collection.
Example Collection Values And Counts Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 8159f96d-d2fc-4af9-aa83-9a29876ef758" -k “https://services.cancerimagingarchive.net/nbia-api/services/getCollectionValuesAndCounts" -d "criteriaType0=CollectionCriteria&value0=CBIS-DDSM" |
The API returns the collections with their counts.
Code Block | ||
---|---|---|
| ||
[
{"criteria":"IDRI","count":"614"},
{"criteria":"IDRICONDUIT","count":"66"},
{"criteria":"LIDC","count":"397"},
{"criteria":"RIDER Pilot","count":"130"},
{"criteria":"SportInjury","count":"1"},
{"criteria":"Test","count":"3"},
{"criteria":"Test2","count":"3"}
] |
Create Saved Cart API
The Create Saved Cart API allows the creation of a saved cart.
The API takes four arguments:
- list - A repeatable parameter for each series you wish to have in the saved cart
- name- Name for the saved cart (note that names of saved carts must be unique)
- description - Description of the saved cart
- url - URL of the saved cart
Example Create Saved Cart Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 5e3d3b2a-2533-4257-ba76-aa498ab8d269" -k "https://services.cancerimagingarchive.net/nbia-api/services/createSharedList" -d "list=88.8.133841977708353813381069288155921822331&list=88.8.326983478845196402838719404831299211067&name=scottslist&description=mydescription&url=testurl" |
DICOM Metadata by Series UID API
The DICOM Metadata by Series UID API provides the functionality in the portal where the DICOM data is retrieved from a series.
The API takes one argument:
- SeriesUID
The SeriesUID is available from the Drill Down API call.
Example Metadata Query
Code Block | ||
---|---|---|
| ||
C:\curl>curl -H "Authorization:Bearer 25bbea7c-4b8d-4f64-9d95-6ad62313c7d6" -k "https://services.cancerimagingarchive.net/nbia-api/services/getDicomTags?SeriesUID=9999.266036705757333804188405684898037929022 |
The API sends back triples of all DICOM element, name, data in the file.
Code Block | ||
---|---|---|
| ||
[
{"element":"(0002,0001)","name":"File Meta Information Version","data":"00\\01"},
{"element":"(0002,0002)","name":"Media Storage SOP Class UID","data":"1.2.840.10008.5.1.4.1.1.2"}
................................... |
DICOM Tags By Image ID API
The DICOM Tag By Image ID API returns the DICOM tags and values associated with the image.
- imageID
The values used in this API can be derived by using the results of the imagePkId in the Drill Down to Images API.
Example DICOM Tags By Image ID Query
Code Block | ||
---|---|---|
| ||
C:\curl>curl -H "Authorization:Bearer d9d01317-34c3-40ac-92dc-9a1287a159e4" -k "https://services.cancerimagingarchive.net/nbia-api/services/getDicomTagsByImageID?imageID=4587520" |
The API returns the tags and values.
Code Block | ||
---|---|---|
| ||
[{"element":"(0002,0001)","name":"File Meta Information Version","data":"00
01"},
{"element":"(0002,0002)","name":"Media Storage SOP Class UID","data":"1.2.840.10008.5.1.4.1.1.128"},
{"element":"(0002,0003)","name":"Media Storage SOP Instance UID","data":"88.8.263250895051952442807371950278727814872"},
{"element":"(0002,0010)... |
Drill Down API
The Drill Down API provides the functionality in the search client where the user drills down the studies and series associated with a given patient.
The API takes a list of series to query, using the parameter "list," that repeats for each series you want to retrieve. During the workflow these values come from the series identifiers in the Extended Simple Search with Modality and Body Part Paged Query.
Example Drill Down Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 946bddb4-d076-4fb1-8dff-81fb64d6f921" -k "https://services.cancerimagingarchive.net/nbia-api/services/getStudyDrillDown" -d "list=1376256&list=262144" |
The Drill Down API returns JSON with the information to populate the drill down to study screen. There can be multiple studies.
Code Block | ||
---|---|---|
| ||
[ {"studyId" : "88.8.40100432719994870453539459050137164864",
"date" : 671515200000,
"description" : "CT CHEST W/O CONTRAST",
"id" : 1310720,
"seriesList" : [ {
"seriesNumber" : "3",
"seriesUID" : "88.8.326983478845196402838719404831299211067",
"numberImages" : 9,
"modality" : "CT",
"manufacturer" : null,
"annotationsFlag" : false,
"annotationsSize" : 0,
"patientId" : "Project-3076386612",
"patientPkId" : "1277952",
"studyId" : "88.8.40100432719994870453539459050137164864",
"studyPkId" : 1310720,
"totalSizeForAllImagesInSeries" : 4739336,
"project" : "Project",
"description" : "LUNG",
"dataProvenanceSiteName" : null,
"manufacturerModelName" : null,
"softwareVersion" : null,
"maxFrameCount" : "0",
"seriesId" : "88.8.326983478845196402838719404831299211067",
"seriesPkId" : 1376256,
"exactSize" : 4739336 } ]} ] |
Drill Down Using Series UIDs API
The Drill Down Using Series UIDs API provides the functionality in the portal where the user drills down the studies and series associated with a set of IDs. In this case, the API takes Series Instance UIDs so the users can access this information outside of the Search Client workflow using any Series Instance UIDs that they are interested in.
The API simply takes a list of Series UIDs to query, using the parameter "list," that repeats for each Series UID you want to retrieve.
Example Drill Down Using Series UIDs Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 5e3e2193-55dc-43b5-b11a-70fee2ccf50f" -k "https://services.cancerimagingarchive.net/nbia-api/services/getStudyDrillDownWithSeriesIds" -d "list=88.8.327219764444138790630242591550292040652&list=88.8.48940758713094405889891485363115655700" |
The Drill Down Using Series UIDs API returns JSON with the information to populate the drill down to study screen. You can retrieve multiple studies.
Code Block | ||
---|---|---|
| ||
[ {"studyId" : "88.8.40100432719994870453539459050137164864",
"date" : 671515200000,
"description" : "CT CHEST W/O CONTRAST",
"id" : 1310720,
"seriesList" : [ {
"seriesNumber" : "3",
"seriesUID" : "88.8.326983478845196402838719404831299211067",
"numberImages" : 9,
"modality" : "CT",
"manufacturer" : null,
"annotationsFlag" : false,
"annotationsSize" : 0,
"patientId" : "Project-3076386612",
"patientPkId" : "1277952",
"studyId" : "88.8.40100432719994870453539459050137164864",
"studyPkId" : 1310720,
"totalSizeForAllImagesInSeries" : 4739336,
"project" : "Project",
"description" : "LUNG",
"dataProvenanceSiteName" : null,
"manufacturerModelName" : null,
"softwareVersion" : null,
"maxFrameCount" : "0",
"seriesId" : "88.8.326983478845196402838719404831299211067",
"seriesPkId" : 1376256,
"exactSize" : 4739336 } ]} ] |
Drill Down to Images API
The Drill Down to Images API allows the developer to drill down to the images in a series and have the information available to create a WADO call that can retrieve the images themselves. This API is used to create the Thumbnails screen in the portal.
The API takes a list of series to query, using the parameter "list," that repeats for each series for which you want to retrieve images.
Example Drill Down to Images Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 946bddb4-d076-4fb1-8dff-81fb64d6f921" -k "https://services.cancerimagingarchive.net/nbia-api/services/getImageDrillDown" -d "list=1376256&list=262144" |
The API returns the information needed to populate the Thumbnails screen.
Code Block | ||
---|---|---|
| ||
[ { "imagePkId" : 1409028,
"contentDate" : null,
"contentTime" : null,
"seriesPkId" : 1376256,
"instanceNumber" : 73,
"sopInstanceUid" : "88.8.73811183841243046367164226375699603900",
"seriesInstanceUid" : "88.8.326983478845196402838719404831299211067",
"studyInstanceUid" : "88.8.40100432719994870453539459050137164864",
"size" : 526592,
"fileURI" : "C:\\projects\\NBIA\\nbia-install_6.3\\CTP-server\\CTP\\storage\\0000000000\\000\\000\\006.dcm",
"project" : null,
"siteName" : null,
"frameNum" : 0
}, {
"imagePkId" : 1409024,
"contentDate" : null,
"contentTime" : null,
"seriesPkId" : 1376256,
"instanceNumber" : 85,
8<------------------------------------------------------------------------------->8 |
The information needed to create a WADO call is the following snippet from this code:
Code Block | ||
---|---|---|
| ||
"sopInstanceUid" : "88.8.73811183841243046367164226375699603900",
"seriesInstanceUid" : "88.8.326983478845196402838719404831299211067",
"studyInstanceUid" : "88.8.40100432719994870453539459050137164864", |
Extended Simple Search with Modality and Body Part Paged API
The Extended Simple Search with Modality and Body Part Paged API is used to run queries for the Simple Search GUI in the NBIA client. This API uses a variety of criteria as seen in the NBIA client, as well as the pages of data the client requests. The available criteria types and their components follow. Since the simple search can take an unlimited number of criteria each of the criteria items is appended with a number signifying its order in the query, starting with 0.
- CollectionCriteria
- value
- ImageModalityCriteria
- value
- AnatomicalSiteCriteria
- value
- ManufacturerCriteria
- value
- DateRangeCriteria
- fromDate - Formatted "dd/mm/yyyy"
- toDate - Formatted "dd/mm/yyyy"
- PatientCriteria
- value
- MinNumberOfStudiesCriteria
- value
- SpeciesCriteria
- The code for the species
- PhantomCriteria
- yes for phantoms
- TimePointCriteria
- eventType the eventType for the timepoint
- fromDate - Formatted "dd/mm/yyyy"
- toDate - Formatted "dd/mm/yyyy"
- SortField
- The field to sort on
- SortDirection
- ascending or descending
- Start
- The page to start on
- Size
- How many items per page
Example Extended Simple Search with Modality and Body Part Paged Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer d2310d88-cefe-491f-82a2-df66d6c087c4" -k "http://services.cancerimagingarchive.net/nbia-api/services/getSimpleSearchWithModalityAndBodyPartPaged" -d "criteriaType0=TimePointCriteria&eventType0=DIAGNOSIS&fromDay0=-5&toDay0=10&sortField=subject&sortDirection=descending&start=0&size=9" |
The API returns the results of the search.
Code Block | ||
---|---|---|
| ||
{
"resultSet":[
{
"subjectId":"Test-5910936489",
"project":"Test",
"id":819200,
"modalities":[
"CT"
],
"bodyParts":[
"LUNG"
],
"species":[
"L-877FC"
],
"timepoints":{
"DIAGNOSIS":[
1,
3
]
},
"totalNumberOfStudies":28,
"totalNumberOfSeries":61,
"studyIdentifiers":[
{
"seriesIdentifiers":[
917526,
917527,
917528
],
"seriesAndModality":[
],
"studyIdentifier":851979
},
{
"seriesIdentifiers":[
917529,
917530
],
"seriesAndModality":[
],
"studyIdentifier":851980
},
{
"seriesIdentifiers":[
917531,
917532
],
"seriesAndModality":[
],
"studyIdentifier":851981
}
]
}
],
"totalPatients":1,
"bodyParts":[
{
"value":"LUNG",
"count":1
}
],
"modalities":[
{
"value":"CT",
"count":1
}
],
"collections":[
{
"value":"Test",
"count":1
}
],
"species":[
{
"value":"L-877FC",
"count":1
}
],
"maxTimepoints":{
"DIAGNOSIS":3
},
"minTimepoints":{
"DIAGNOSIS":1
},
"sort":"subject-descending"
} |
Get Cart Data
This API takes a saved cart name (the parameter for this is "list"), which is part of the cart data URL after you put data into your cart and select Share My Cart in the NBIA Radiology Portal. For example, if your cart data URL were https://nbia.cancerimagingarchive.net/nbia-search/?saved-cart=nbia-55731690489493857, your saved cart name would be 55731690489493857.
This API takes one parameter:
- list
Example GetCartData Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer ACCESS_TOKEN" -X POST "http://services.cancerimagingarchive.net/nbia-api/services/getCartData" -d "list=55731690489493857" |
The API then returns all of the columns for the selected data.
Code Block | ||
---|---|---|
| ||
[{"studyId":"139.175141514092320098642891109306621504881","date":"1997-10-20","description":"p4","id":730267648,"study_id":null,"excludeCommercial":null,"seriesList":[{"seriesNumber":"502.000000","seriesUID":"139.238309468517260042204179442848160894322","numberImages":50,"modality":"CT","manufacturer":"Varian Imaging Laboratories, Switzerland","annotationsFlag":false,"annotationsSize":0,"patientId":"1736105642","patientPkId":"730234880","studyId":"139.175141514092320098642891109306621504881","studyPkId":730267648,"totalSizeForAllImagesInSeries":26341288,"project":"ABC","description":"P4^P101^S100^I0, Gated, 20.0%","dataProvenanceSiteName":null,"manufacturerModelName":null,"softwareVersion":null,"maxFrameCount":null,"studyDate":null,"studyDesc":null,"bodyPartExamined":"LUNG","study_id":null,"thirdPartyAnalysis":null,"descriptionURI":"ABC","sopClassUID":null,"licenseName":null,"licenseUrl":null,"commercialRestrictions":false,"seriesId":"139.238309468517260042204179442848160894322","studyDateString":"","seriesPkId":55731690489493857,"exactSize":26341288}]}] |
Get Collection Descriptions
This API takes a collection name and returns the collection's description.
The API takes one parameter:
- collectionName
Example GetCollectionDescriptions Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer ACCESS_TOKEN" -k "http://services.cancerimagingarchive.net/nbia-api/services/getCollectionDescriptions?collectionName=Anti-PD-1_Lung"
|
If successful, the API returns the collection description.
Code Block | ||
---|---|---|
| ||
[{"description":"<p>\n\t<span class=\"conf-macro output-inline\" data-hasbody=\"true\" data-macro-name=\"excerpt\">This collection includes 46 lung cases treated with <span style=\"color: rgb(23,43,77);\">anti-PD1 immunotherapy</span> in 2016, each with pre-treatment imaging (CT,PT,SC) and most with 1 imaging follow-up timepoint.</span></p>\n<p>\n\t<span _ngcontent-cmj-c43=\"\" class=\"toolTip step show\" style=\"top: 1196.5px;\"><span _ngcontent-cmj-c43=\"\">Please see the <a href=\"https://doi.org/10.7937/tcia.2019.zjjwb9ip\">Anti-PD-1_Lung</a> wiki page to learn more about the images and to obtain any supporting metadata for this collection.</span></span></p>\n","id":700088325,"collectionDescTimestamp":null,"collectionName":"Anti-PD-1_Lung","userName":null,"licenseId":null,"descriptionURI":null}] |
Get Collection Site
The API returns all collections/sites in TCIA in JSON format.
The API does not take any parameters.
Example GetCollectionSite Query
Code Block |
---|
curl -H "Authorization:Bearer ACCESS_TOKEN" -k "services.cancerimagingarchive.net/nbia-api/services/getCollectionSite" |
Image with MD5 Hash API
This API takes a series UID and returns a zip file with the images and a CSV file containing the MD5 hashes.
The API takes two arguments:
- Collection - The collection to update
- DOI - Digital Object Identifier
Example Image with MD5 Hash Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 72dfaea7-b704-4b31-ad90-02606faa4572" -k "http://services.cancerimagingarchive.net/nbia-api/services/v2/getImageWithMD5Hash?SeriesInstanceUID=1.3.6.1.4.1.14519.5.2.1.6919.4624.313514201353787659031503464798" |
The API returns the images and a CSV file in the zip file that records the file name and a hash.
Licenses API
The Licenses API retrieves all available license information.
The API takes no arguments.
Example Licenses Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer ff849ffb-7b18-4c7e-83bd-6db2f7dbee9c" -k "https://services.cancerimagingarchive.net/nbia-api/services/getLicenses" |
If the API is successful, it returns the license long name, short name, license URL, license text, and commercial use designation.
Code Block | ||
---|---|---|
| ||
[
{
"longName":"Creative Commons Attribution 3.0 Unported License",
"id":1,
"shortName":"CC BY 3.0",
"licenseURL":"http://creativecommons.org/licenses/by/3.0/",
"licenseText":"https://creativecommons.org/licenses/by/3.0/",
"commercialUse":"YES",
"license":{
"id":1,
"longName":"Creative Commons Attribution 3.0 Unported License",
"shortName":"CC BY 3.0",
"url":"http://creativecommons.org/licenses/by/3.0/",
"commercialUse":"YES",
"licenseText":"https://creativecommons.org/licenses/by/3.0/"
}
},.... |
Manifest for Simple Search API
The Manifest Text for Simple Search API allows the creation of a manifest file that can be used to execute the NBIA Data Retriever.
The API takes the same arguments as the Simple Search GUI.
Example Manifest for Simple Search Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 73c7f5c1-8d3b-49a6-81fc-fdc40f31da68" -k "http://localhost:8080/nbia-api/services/getManifestForSimpleSearch" -d "criteriaType0=ThirdPartyAnalysis&value0=yes&sortField=subject&sortDirection=descending&start=0&size=1000000" |
The API returns text that can be used as a manifest file for the NBIA Data Retriever.
Code Block | ||
---|---|---|
| ||
downloadServerUrl=https://imaging-devcm.nci.nih.gov/nbia-download/servlet/DownloadServlet includeAnnotation=false noOfrRetry=4 databasketId=manifest-1523866570303.tcia manifestVersion=3.0 ListOfSeriesToDownload= 52309835344870054201882678149260479935","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.58230391169750649153488661664117068107","Modality":"CT","SeriesDate":"2016-03-21 00:00:00.0","SeriesDescription":"Chest\/Abd\/Pel LUNG 3.0 B60f","BodyPartExamined":"CHEST","SeriesNumber":3,"Collection":"CPTAC-UCEC","PatientID":"C3L-03467","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":140},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.100731759010416801525756814661582905453","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.192180924543597682091545532955797799290","Modality":"CT","SeriesDate":"2016-10-25 00:00:00.0","SeriesDescription":"Abd\/Pelvis 3.0 B20f","BodyPartExamined":"ABDOMEN","SeriesNumber":3,"Collection":"CPTAC-UCEC","PatientID":"C3L-05848","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":201},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.37671622521464066812631978471928306007","StudyInstanceUID":"1.3.6.1.4.1.932814519.5.502.3.336 |
Manifest Text API
The Manifest Text API allows the creation of a manifest file that can be used to execute the NBIA Data Retriever.
The API takes two arguments:
- list - A repeatable parameter of series UIDs for each series you want to download
- includeAnnotation - If "true" is used, the annotations are returned.
Example Manifest Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer d98c390f-b53d-4456-beb3-110e63663762" -k "https://services.cancerimagingarchive.net/nbia-api/services/getManifestTextV2" -d "list=1.58230391169750649153488661664117068107","Modality":"CT","SeriesDate":"2016-03-21 00:00:00.0","SeriesDescription":"CORONAL","BodyPartExamined":"CHEST","SeriesNumber":4,"Collection":"CPTAC-UCEC","PatientID":"C3L-03467","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":84},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.93285.502.3.336&includeAnnotation=false" |
The API returns text that can be used as a manifest file for the NBIA Data Retriever.
Code Block | ||
---|---|---|
| ||
downloadServerUrl=https://imaging-devcm.nci.nih.gov/nbia-download/servlet/DownloadServlet includeAnnotation=false noOfrRetry=4 databasketId=manifest-1523866570303.tcia manifestVersion=3.0 ListOfSeriesToDownload= 1.253168115551446290926256440815409084370","StudyInstanceUID":"1.3.6.1.4.1.932814519.505.3.336 |
Manufacturer Values and Counts API
The Manufacturer Values and Counts API returns the modality values plus the manufacturer count for the modality. It optionally takes the following parameters.
- Collection
- Modality
- Body Part Examined
Example Manufacturer Values and Counts Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer c428d42c-9eed-4f5d-8007-416d46be9b52" -k "https://services.cancerimagingarchive.net/nbia-api/services/getManufacturerValuesAndCounts?Modality=PT" |
The API returns the manufacturer and their counts.
Code Block | ||
---|---|---|
| ||
[
{"criteria":"DeJarnette Research Systems","count":"2"},
{"criteria":"FUJI PHOTO FILM Co., ltd.","count":"4"}
] |
Manufacturer Tree API
The Manufacturer Tree API returns the manufacturer and software in a tree structure.
Example Manufacturer Values and Counts Query
Code Block |
---|
curl -H "Authorization:Bearer 3ecccd7d-9d72-4424-bd81-757d79cd44aa" -k "https://services.cancerimagingarchive.net/nbia-api/services/getManufacturerTree" |
The API returns the manufacturer and their counts.
Code Block |
---|
{"data":{"criteria":"root","value":"All Manufactures"},
"children":[{"data":{"criteria":"Manufacturer","value":"CMS, Inc."},
"children":[{"data":{"criteria":"Model","value":"XiO"},
"children":[{"data":{"criteria":"Software Ver.","value":"4.51.00"},
"children":[]},{"data":{"criteria":"Software Ver.","value":"4.51.02"},"children":[]}]}]},
{"data":{"criteria":"Manufacturer","value":"CPS"},
"children":[{"data":{"criteria":"Model","value":"1024"}
8<------------------------------------------------------------------------------->8 |
MD5 Hash for Image API
This API takes the SOPInstanceIUD and returns an MD5 hash.
The API takes one argument:
- sopInstanceUid - UID of the image
Example MD5 Hash for Image Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 295382ae-e94c-473c-a98e-db10ce6ad774" -k "http://services.cancerimagingarchive.net/nbia-api/services/v2/getM5HashForImage?SOPInstanceUid=2.1.67953080284076345917473005680077306867","Modality":"CT","SeriesDate":"2016-09-26 00:00:00.0","SeriesDescription":"CORONAL","BodyPartExamined":"CHEST","SeriesNumber":4,"Collection":"CPTAC-UCEC","PatientID":"C3L-03467","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":114},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.224409518854330380839516384479543090458","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.77155367638621502173880012762024128638","Modality":"CT","SeriesDate":"2015-03-03 00:00:00.0","SeriesDescription":"CORONAL","BodyPartExamined":"CHEST","SeriesNumber":4,"Collection":"CPTAC-UCEC","PatientID":"C3L-02747","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":85},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.269703894431372598509100851602159288765","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.143508475032044659595485724455199959932","Modality":"CT","SeriesDate":"2016-07-24 00:00:00.0","SeriesDescription":"CORONAL","BodyPartExamined":"ABDOMEN","SeriesNumber":4,"Collection":"CPTAC-UCEC","PatientID":"C3L-05848","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":71},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.97934223577100833484431647137145455556","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.67953080284076345917473005680077306867","Modality":"CT","SeriesDate":"2016-09-26 00:00:00.0","SeriesDescription":"Chest\/Abd\/Pel soft tissue 3.0 B20f","BodyPartExamined":"CHEST","SeriesNumber":2,"Collection":"CPTAC-UCEC","PatientID":"C3L-03467","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":312},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.140707133919097170612230090340002977287","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.6919.4624.302693755253199226108824913410" |
The API returns the MD5 hash.
Modality Values and Counts API
The Modality Values and Counts API returns the modality values plus the subject count for the modality. It optionally takes the following parameters.
- Collection
- BodyPartExamined
Example Modality Values and Counts Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer c428d42c-9eed-4f5d-8007-416d46be9b52" -k "https://services.cancerimagingarchive.net/nbia-api/services/getModalityValuesAndCounts?Collection=LIDC" |
The API returns the modalities and their counts.
Code Block | ||
---|---|---|
| ||
[
{"criteria":"CT","count":"397"}
] |
Restrictions on Simple Search API
The Restrictions on Simple Search API returns whether any series returned by simple search has commercial restrictions.
The API takes the same parameters as the Simple Search GUI.
Example Restrictions on Simple Search Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 1fb4f3b5-f30e-4ccf-bea9-8b51183a70cd" -k "http://localhost:8080/nbia-api/services/getRestrictionsForSimpleSearch" -d "criteriaType0=ThirdPartyAnalysis&value0=yes&sortField=subject&sortDirection=descending&start=0&size=1000000" |
The API returns "Yes" if there are commercial restrictions and "No" if there are not.
Series Metadata API
The Series Metadata API allows returns the metadata needed by the client for a set of series as CSV.
The API takes one argument:
- list- Comma-separated list of series to return
Example Series Metadata Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 1be042c4-2506-4ecc-9c5e-9556506896aa" -k "https://services.cancerimagingarchive.net/nbia-api/services/getSeriesMetadata2" -d "list=9999.293545899757968087866143572947417050996,9999.172212451609088872857235914630319746611" |
The API returns ok if successful, and the error if one occurs.
Code Block | ||
---|---|---|
| ||
Subject ID,Study UID,Study Description,Study Date,Series ID,Series Description,Number of images,File Size (Bytes),Collection Name,Modality,Manufacturer,3rd Party Analysis,Data Description URI,Series Number,License Name,License URL STS_010,104353760415096244893510486715328792697","Modality":"CT","SeriesDate":"2018-03-19 00:00:00.0","SeriesDescription":"CAP 3.0 SPO cor","BodyPartExamined":"ABDOMEN","SeriesNumber":4,"Collection":"CPTAC-UCEC","PatientID":"C3L-03467","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":101},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.43546293045303953649134661873116783074","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.192180924543597682091545532955797799290","Modality":"CT","SeriesDate":"2016-10-25 00:00:00.0","SeriesDescription":"Topogram 0.6 T20s","BodyPartExamined":"ABDOMEN","SeriesNumber":2,"Collection":"CPTAC-UCEC","PatientID":"C3L-05848","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":2},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.5168.1900.154535988064062152660648619556,MRI LT LEG +C,2003-12-12,237642993417197417654052076474980244050","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.5168.1900.104193299251798317056218297018,2. AXIAL T1 BOTH LEGS - RESEARCH,48,25273786,Soft-tissue-Sarcoma,MR,GE MEDICAL SYSTEMS,,https://doi.org/10.7937/K9/TCIA.2015.7GO2GSKS,2,Creative Commons Attribution 3.0 Unported License,http://creativecommons.org/licenses/by/3.0/ |
Species Tax API
The Species Tax API returns the species taxonomy and takes no parameters.
Example Species Tax Query
Code Block | ||
---|---|---|
| ||
C:\curl>curl -H "Authorization:Bearer 0a6c0a95-1919-4430-888d-5375fca7566f" -k "https://services.cancerimagingarchive.net/nbia-api/services/getSpeciesTax" |
The API returns the current species taxonomy.
Code Block | ||
---|---|---|
| ||
[\{"speciesCode":"L-877FC","speciesDescription":"Rattus norvegicus (common rat)"},\{"speciesCode":"L-85003","speciesDescription":"Human (Homo sapiens)"}] |
Species Values And Counts API
The Get Species Values And Counts API returns the values and counts for species and takes the same parameters as the Simple Search GUI.
Example Species Values And Counts Query
Code Block | ||
---|---|---|
| ||
C:\curl>curl -H "Authorization:Bearer 9227f2ee-5936-4fe9-8268-131e50833527" -k "https://services.cancerimagingarchive.net/nbia-api/services/getSimpleSearchCriteriaValues" -d "criteriaType0=CollectionCriteria&value0=CBIS-DDSM" |
The API returns the values and counts for species.
Code Block | ||
---|---|---|
| ||
[{"criteria":"Collections","values":[
{"criteria":"CBIS-DDSM","count":"80"}
]},
{"criteria":"Species","values":[\{"criteria":"Human","count":"80"}
]},
{"criteria":"Image Modality","values":[\{"criteria":"MG","count":"80"}
]},
{"criteria":"Anatomical Site","values":[\{"criteria":"BREAST","count":"80"}
]},
{"criteria":"Manufacturer","values":[\{"criteria":"","count":"80"}
]}] |
Study Drill Down API
The Study Drill Down API provides the functionality in the portal where the user drills down the studies and series associated with a given user.
The API simply takes a list of series to query, using the parameter "list", that is repeated for each series you want to retrieve.
Example Study Drill Down Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 946bddb4-d076-4fb1-8dff-81fb64d6f921" -k "https://services.cancerimagingarchive.net/nbia-api/services/getStudyDrillDown" -d "list=1376256&list=262144" |
The Study Drill Down API returns JSON with the information to populate the drill down to study screen. You can retrieve multiple studies.
Code Block | ||
---|---|---|
| ||
[ {"studyId" : "88.8.40100432719994870453539459050137164864",
"date" : 671515200000,
"description" : "CT CHEST W/O CONTRAST",
"id" : 1310720,
"seriesList" : [ {
"seriesNumber" : "3",
"seriesUID" : "88.8.326983478845196402838719404831299211067",
"numberImages" : 9,
"modality" : "CT",
"manufacturer" : null,
"annotationsFlag" : false,
"annotationsSize" : 0,
"patientId" : "Project-3076386612",
"patientPkId" : "1277952",
"studyId" : "88.8.40100432719994870453539459050137164864",
"studyPkId" : 1310720,
"totalSizeForAllImagesInSeries" : 4739336,
"project" : "Project",
"description" : "LUNG",
"dataProvenanceSiteName" : null,
"manufacturerModelName" : null,
"softwareVersion" : null,
"maxFrameCount" : "0",
"seriesId" : "88.8.326983478845196402838719404831299211067",
"seriesPkId" : 1376256,
"exactSize" : 4739336 } ]} ] |
Study Drill Down With Series IDs API
The Study Drill Down API provides the functionality in the portal where the user drills down to the studies and series associated with a given user.
The API takes a list of series to query, using the parameter "list," that is repeated for each series instance UIDs you want to retrieve.
Example Study Drill Down With Series IDs Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 5e3e2193-55dc-43b5-b11a-70fee2ccf50f" -k "https://services.cancerimagingarchive.net/nbia-api/services/getStudyDrillDownWithSeriesIds" -d "list=88.8.327219764444138790630242591550292040652&list=88.8.48940758713094405889891485363115655700" |
The Study Drill Down With Series Ids API returns JSON with the information to populate the drill down to study screen. There can be multiple studies.
Code Block | ||
---|---|---|
| ||
[ {"studyId" : "88.8.40100432719994870453539459050137164864",
"date" : 671515200000,
"description" : "CT CHEST W/O CONTRAST",
"id" : 1310720,
"seriesList" : [ {
"seriesNumber" : "3",
"seriesUID" : "88.8.326983478845196402838719404831299211067",
"numberImages" : 9,
"modality" : "CT",
"manufacturer" : null,
"annotationsFlag" : false,
"annotationsSize" : 0,
"patientId" : "Project-3076386612",
"patientPkId" : "1277952",
"studyId" : "88.8.40100432719994870453539459050137164864",
"studyPkId" : 1310720,
"totalSizeForAllImagesInSeries" : 4739336,
"project" : "Project",
"description" : "LUNG",
"dataProvenanceSiteName" : null,
"manufacturerModelName" : null,
"softwareVersion" : null,
"maxFrameCount" : "0",
"seriesId" : "88.8.326983478845196402838719404831299211067",
"seriesPkId" : 1376256,
"exactSize" : 4739336 } ]} ] |
Thumbnail API
The Get Thumbnail API returns the DICOM tags and values associated with the image.
- seriesUID
- objectUID
Example Thumbnail Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer f314f9bb-6752-4c5d-9f56-d2d450b7260c" -k "https://services.cancerimagingarchive.net/nbia-api/services/getThumbnail" -d "seriesUID=1.3.6.1.4.1.14519.5.2.1.3023.4024.536949365601910993926257264114&objectUID=1.3.6.1.4.1.14519.5.2.1.3023.4024.822829852603295162591249163632" --output Thumbnail.jpg |
Text Search API
The text search API is used to run queries for Text Search in the portal. The text search takes an argument, textValue.
Example Text Search Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 946bddb4-d076-4fb1-8dff-81fb64d6f921" -k "https://services.cancerimagingarchive.net/nbia-api/services/getTextSearch" -d "textValue=lung" |
Note that the returned JSON now includes the "hit" that was found by the Solr search engine.
Code Block | ||
---|---|---|
| ||
[{
"subjectId":"Project-3076386612",
"project":"Project",
"id":1277952,
"totalNumberOfStudies":1,
"totalNumberOfSeries":1,
"hit":"<em>seriesDesc</em>: <strong>LUNG</strong>",
"studyIdentifiers":[{
"seriesIdentifiers":[1376256],
"studyIdentifier":1310720
}]
}] |
Updated Series API
This API returns the series that have been updated since a given date.
The API takes one argument:
- fromDate - the date to get the updates have happened
Example Get Updated Series Query
Code Block | ||
---|---|---|
| ||
curl -H "Authorization:Bearer 86d45ad0-2e48-4f10-bbbe-593d7176fe30" -k "http://services.cancerimagingarchive.net/nbia-api/services/v2/getUpdatedSeries?fromDate=01/01/2020" |
The API returns the updated series.
Code Block | ||
---|---|---|
| ||
[ { .1.14519.5.2.1.104353760415096244893510486715328792697","Modality":"CT","SeriesDate":"2018-03-19 00:00:00.0","SeriesDescription":"Topogram 0.6 T20s","BodyPartExamined":"ABDOMEN","SeriesNumber":1,"Collection":"CPTAC-UCEC","PatientID":"C3L-03467","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":1},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.261450458963518213442565909435054795413","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.67953080284076345917473005680077306867","Modality":"CT","SeriesDate":"2016-09-26 00:00:00.0","SeriesDescription":"Topogram 0.6 T20s","BodyPartExamined":"CHEST","SeriesNumber":1,"Collection":"CPTAC-UCEC","PatientID":"C3L-03467","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":1},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.50446370192855283669200346817959448281","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.143508475032044659595485724455199959932","Modality":"CT","SeriesDate":"2016-07-24 00:00:00.0","SeriesDescription":"Topogram 0.6 T20s","BodyPartExamined":"ABDOMEN","SeriesNumber":1,"Collection":"CPTAC-UCEC","PatientID":"C3L-05848","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":2},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.257013319324343199851187045765222186475","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.77155367638621502173880012762024128638","Modality":"CT","SeriesDate":"2015-03-03 00:00:00.0","SeriesDescription":"Topogram 0.6 T20s","BodyPartExamined":"CHEST","SeriesNumber":1,"Collection":"CPTAC-UCEC","PatientID":"C3L-02747","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":1},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.155009580845247983590647218721888717749","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.58230391169750649153488661664117068107","Modality":"CT","SeriesDate":"2016-03-21 00:00:00.0","SeriesDescription":"Topogram 0.6 T20s","BodyPartExamined":"CHEST","SeriesNumber":1,"Collection":"CPTAC-UCEC","PatientID":"C3L-03467","Manufacturer":"SIEMENS","ManufacturerModelName":"Sensation 64","SoftwareVersions":"syngo CT 2014A","ImageCount":1},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.205668089768657343528117029713103142029","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.177774985137352576417359587837444674436","Modality":"MR","ProtocolName":"t1_vibe_tra_recon coronal too","SeriesDate":"1994-04-18 00:00:00.0","SeriesDescription":"_T1_t1_vibe_tra_recon coronal too","BodyPartExamined":"HEAD","SeriesNumber":7,"Collection":"Vestibular-Schwannoma-MC-RC","PatientID":"VS-SEG-032","Manufacturer":"SIEMENS","ManufacturerModelName":"SymphonyTim","SoftwareVersions":"syngo MR B17","ImageCount":24},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.171418726181894059770838067663080088554","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.208289673453114055830732280203640249870","Modality":"MR","ProtocolName":"COR_T2","SeriesDate":"2011-11-27 00:00:00.0","SeriesDescription":"COR_T2","BodyPartExamined":"ABDOMEN","SeriesNumber":3,"Collection":"CPTAC-CCRCC","PatientID":"C3L-01463","Manufacturer":"SIEMENS","ManufacturerModelName":"Aera","SoftwareVersions":"syngo MR E11","ImageCount":30},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.5.2.1.103502325371497058487486382016244519383","StudyInstanceUID":"1.3.6.1.4.1.14519.5.2.1.208289673453114055830732280203640249870","Modality":"MR","ProtocolName":"AX_T1_FS_+C_20_SEC","SeriesDate":"2011-11-27 00:00:00.0","SeriesDescription":"AX_T1_FS_+C_20_SEC","BodyPartExamined":"ABDOMEN","SeriesNumber":13,"Collection":"CPTAC-CCRCC","PatientID":"C3L-01463","Manufacturer":"SIEMENS","ManufacturerModelName":"Aera","SoftwareVersions":"syngo MR E11","ImageCount":80},{"SeriesInstanceUID":"1.3.6.1.4.1.14519.59625.12.1.0.0.1560173490.85106.1108338939505521682156134341331869087312", "StudyInstanceUID":"1.3.6.1.4.1.596214519.5.12.1.0.1560173490.85106.1", "Modality":"SR", 208289673453114055830732280203640249870","Modality":"MR","ProtocolName":"AX_T1_FS+C_90_SEC","SeriesDate":"20162011-0111-0627 00:00:00.0", "SeriesDescription":"PDM Mouse Overview", "SeriesDescription":"AX_T1_FS+C_90_SEC","BodyPartExamined":"ABDOMEN","SeriesNumber":1, 14,"Collection":"ProjectCPTAC-CCRCC", "PatientID":"128783-104-T_VQ4", C3L-01463","Manufacturer":"PixelMedSIEMENS", "ManufacturerModelName":"XSLTAera", "SoftwareVersions":"0.1syngo MR E11", "ImageCount":1 }80},{"SeriesInstanceUID":"1.3.6 |