Standardize RT Structure Names
curl --request POST \
--url https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"structures": [
{
"structure_name": "<string>",
"rt_plan_id": "<string>",
"rt_structure_set_id": "<string>",
"structure_type": "VOLUME",
"dose_reference_type": "ORGAN_AT_RISK",
"target_prescription_dose": 50.4,
"observation_type": "PTV",
"structure_volume": 120.5,
"body_part_examined": "HEAD_NECK"
}
],
"language": "en",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize"
payload = {
"structures": [
{
"structure_name": "<string>",
"rt_plan_id": "<string>",
"rt_structure_set_id": "<string>",
"structure_type": "VOLUME",
"dose_reference_type": "ORGAN_AT_RISK",
"target_prescription_dose": 50.4,
"observation_type": "PTV",
"structure_volume": 120.5,
"body_part_examined": "HEAD_NECK"
}
],
"language": "en",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
structures: [
{
structure_name: '<string>',
rt_plan_id: '<string>',
rt_structure_set_id: '<string>',
structure_type: 'VOLUME',
dose_reference_type: 'ORGAN_AT_RISK',
target_prescription_dose: 50.4,
observation_type: 'PTV',
structure_volume: 120.5,
body_part_examined: 'HEAD_NECK'
}
],
language: 'en',
project_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'structures' => [
[
'structure_name' => '<string>',
'rt_plan_id' => '<string>',
'rt_structure_set_id' => '<string>',
'structure_type' => 'VOLUME',
'dose_reference_type' => 'ORGAN_AT_RISK',
'target_prescription_dose' => 50.4,
'observation_type' => 'PTV',
'structure_volume' => 120.5,
'body_part_examined' => 'HEAD_NECK'
]
],
'language' => 'en',
'project_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize"
payload := strings.NewReader("{\n \"structures\": [\n {\n \"structure_name\": \"<string>\",\n \"rt_plan_id\": \"<string>\",\n \"rt_structure_set_id\": \"<string>\",\n \"structure_type\": \"VOLUME\",\n \"dose_reference_type\": \"ORGAN_AT_RISK\",\n \"target_prescription_dose\": 50.4,\n \"observation_type\": \"PTV\",\n \"structure_volume\": 120.5,\n \"body_part_examined\": \"HEAD_NECK\"\n }\n ],\n \"language\": \"en\",\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"structures\": [\n {\n \"structure_name\": \"<string>\",\n \"rt_plan_id\": \"<string>\",\n \"rt_structure_set_id\": \"<string>\",\n \"structure_type\": \"VOLUME\",\n \"dose_reference_type\": \"ORGAN_AT_RISK\",\n \"target_prescription_dose\": 50.4,\n \"observation_type\": \"PTV\",\n \"structure_volume\": 120.5,\n \"body_part_examined\": \"HEAD_NECK\"\n }\n ],\n \"language\": \"en\",\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"structures\": [\n {\n \"structure_name\": \"<string>\",\n \"rt_plan_id\": \"<string>\",\n \"rt_structure_set_id\": \"<string>\",\n \"structure_type\": \"VOLUME\",\n \"dose_reference_type\": \"ORGAN_AT_RISK\",\n \"target_prescription_dose\": 50.4,\n \"observation_type\": \"PTV\",\n \"structure_volume\": 120.5,\n \"body_part_examined\": \"HEAD_NECK\"\n }\n ],\n \"language\": \"en\",\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"standardized_labels": [
{
"original_name": "<string>",
"new_label": "<string>",
"confidence": 123,
"rt_plan_id": "<string>",
"rt_structure_set_id": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}RT Structures
Standardize RT Structure Names
Standardizes a list of Radiation Therapy structure names using Aitrium’s RT Plan Standardizer.
POST
/
structures
/
standardize
Standardize RT Structure Names
curl --request POST \
--url https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"structures": [
{
"structure_name": "<string>",
"rt_plan_id": "<string>",
"rt_structure_set_id": "<string>",
"structure_type": "VOLUME",
"dose_reference_type": "ORGAN_AT_RISK",
"target_prescription_dose": 50.4,
"observation_type": "PTV",
"structure_volume": 120.5,
"body_part_examined": "HEAD_NECK"
}
],
"language": "en",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize"
payload = {
"structures": [
{
"structure_name": "<string>",
"rt_plan_id": "<string>",
"rt_structure_set_id": "<string>",
"structure_type": "VOLUME",
"dose_reference_type": "ORGAN_AT_RISK",
"target_prescription_dose": 50.4,
"observation_type": "PTV",
"structure_volume": 120.5,
"body_part_examined": "HEAD_NECK"
}
],
"language": "en",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
structures: [
{
structure_name: '<string>',
rt_plan_id: '<string>',
rt_structure_set_id: '<string>',
structure_type: 'VOLUME',
dose_reference_type: 'ORGAN_AT_RISK',
target_prescription_dose: 50.4,
observation_type: 'PTV',
structure_volume: 120.5,
body_part_examined: 'HEAD_NECK'
}
],
language: 'en',
project_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'structures' => [
[
'structure_name' => '<string>',
'rt_plan_id' => '<string>',
'rt_structure_set_id' => '<string>',
'structure_type' => 'VOLUME',
'dose_reference_type' => 'ORGAN_AT_RISK',
'target_prescription_dose' => 50.4,
'observation_type' => 'PTV',
'structure_volume' => 120.5,
'body_part_examined' => 'HEAD_NECK'
]
],
'language' => 'en',
'project_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize"
payload := strings.NewReader("{\n \"structures\": [\n {\n \"structure_name\": \"<string>\",\n \"rt_plan_id\": \"<string>\",\n \"rt_structure_set_id\": \"<string>\",\n \"structure_type\": \"VOLUME\",\n \"dose_reference_type\": \"ORGAN_AT_RISK\",\n \"target_prescription_dose\": 50.4,\n \"observation_type\": \"PTV\",\n \"structure_volume\": 120.5,\n \"body_part_examined\": \"HEAD_NECK\"\n }\n ],\n \"language\": \"en\",\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"structures\": [\n {\n \"structure_name\": \"<string>\",\n \"rt_plan_id\": \"<string>\",\n \"rt_structure_set_id\": \"<string>\",\n \"structure_type\": \"VOLUME\",\n \"dose_reference_type\": \"ORGAN_AT_RISK\",\n \"target_prescription_dose\": 50.4,\n \"observation_type\": \"PTV\",\n \"structure_volume\": 120.5,\n \"body_part_examined\": \"HEAD_NECK\"\n }\n ],\n \"language\": \"en\",\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://newleaf-api-336813653216.us-central1.run.app/external/v1/structures/standardize")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"structures\": [\n {\n \"structure_name\": \"<string>\",\n \"rt_plan_id\": \"<string>\",\n \"rt_structure_set_id\": \"<string>\",\n \"structure_type\": \"VOLUME\",\n \"dose_reference_type\": \"ORGAN_AT_RISK\",\n \"target_prescription_dose\": 50.4,\n \"observation_type\": \"PTV\",\n \"structure_volume\": 120.5,\n \"body_part_examined\": \"HEAD_NECK\"\n }\n ],\n \"language\": \"en\",\n \"project_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"standardized_labels": [
{
"original_name": "<string>",
"new_label": "<string>",
"confidence": 123,
"rt_plan_id": "<string>",
"rt_structure_set_id": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
OAuth 2.0 Client Credentials Grant. Requires client_id and client_secret to obtain a Bearer token.
Body
application/json
List of structures to standardize and context.
Request body for standardizing multiple structure names.
Response
Successfully standardized structures.
Response body containing the list of standardized labels.
Show child attributes
Show child attributes