Upload DICOMs
To upload your DICOM images, include the DICOM files you wish to upload in the request. Ensure that the Modality
field in the DICOM metadata is correctly populated with one of the accepted values (CR, CX, DR, DX) before uploading.
API Format
POST /upload
or
POST /studies
Request Formats
curl -X POST \\
-L 'Base_URL/studies/' \\
-H 'Content-Type: multipart/form-data' \\
-H 'Authorization: Token <PASTE_YOUR_TOKEN>' \\
-H 'Source: <PASTE_YOUR_SOURCE>' \\
-H 'User-Agent: <YOUR_USER_AGENT>' \\
-F 'file_1=@"</path/to/your/dicom_file1.dcm>"' \\
-F 'file_2=@"</path/to/your/dicom_file2.dcm>"' \\
-F 'file_3=@"</path/to/your/dicom_file3.dcm>"'
import requests
url = "Base_URL/studies/"
# Prepare the files for upload. Assign each file a unique key.
files = {
'file_0': ('<dicom_file1.dcm>', open('<path/to/dicom_file1.dcm>', 'rb'), 'application/dicom'),
'file_1': ('<dicom_file2.dcm>', open('<path/to/dicom_file2.dcm>', 'rb'), 'application/dicom'),
'file_2': ('<dicom_file3.dcm>', open('<path/to/dicom_file3.dcm>', 'rb'), 'application/dicom'),
...
'file_99': ('<dicom_file99.dcm>', open('<path/to/dicom_file99.dcm>', 'rb'), 'application/dicom')
}
# Headers, including the Authorization token and Source
headers = {
'Authorization': 'Token <PASTE_YOUR_TOKEN>',
'Source': '<PASTE_YOUR_SOURCE>',
'Content-Type': 'multipart/form-data',
'User-Agent': '<YOUR_USER_AGENT>'
}
# Perform the POST request
response = requests.post(url, headers=headers, files=files)
# Print the response text
print(response.text)
# Close the file handles after the request is done
for file in files.values():
file[1].close()
Success Response
Upon successfully uploading the DICOM images, you will receive a 200 OK response along with the following JSON body:
{
"message": "Success",
"status": "success",
"messages": {
"file0": {
"message": "DICOM registered successfully.",
"created": true,
"license_expired": false,
"metadata": {
"AccessionNumber": "<accession_number>",
"AcquisitionDate": "<acquisition_date>",
"AcquisitionTime": "<acquisition_time>",
"ImageUUID": "<image_uuid>",
"InstancesList": "<instances_list>",
"InstanceNumber": "<instance_number>",
"Modality": "CT",
"PatientAge": "<patient_age>",
"PatientBirthDate": "<patient_birth_date>",
"PatientID": "<patient_id>",
"PatientName": "<patient_name>",
"PatientSex": "<patient_sex>",
"SeriesInstanceUID": "<series_instance_uid>",
"SeriesList": "<series_list>",
"SeriesNumber": "<series_number>",
"SOPClassUID": "<sop_class_uid>",
"SOPInstanceUID": "<sop_instance_uid>",
"StudyDate": "<study_date>",
"StudyInstanceUID": "<study_instance_uid>",
"StudyTime": "<study_time>",
"TransferSyntaxUID": "<transfer_syntax_uid>"
}
},
"file2": {
"message": "DICOM registered successfully.",
"created": true,
"license_expired": false,
"metadata": {
"AccessionNumber": "<accession_number>",
"AcquisitionDate": "<acquisition_date>",
"AcquisitionTime": "<acquisition_time>",
"ImageUUID": "<image_uuid>",
"InstancesList": "<instances_list>",
"InstanceNumber": "<instance_number>",
"Modality": "CT",
"PatientAge": "<patient_age>",
"PatientBirthDate": "<patient_birth_date>",
"PatientID": "<patient_id>",
"PatientName": "<patient_name>",
"PatientSex": "<patient_sex>",
"SeriesInstanceUID": "<series_instance_uid>",
"SeriesList": "<series_list>",
"SeriesNumber": "<series_number>",
"SOPClassUID": "<sop_class_uid>",
"SOPInstanceUID": "<sop_instance_uid>",
"StudyDate": "<study_date>",
"StudyInstanceUID": "<study_instance_uid>",
"StudyTime": "<study_time>",
"TransferSyntaxUID": "<transfer_syntax_uid>"
}
},
...
"file99": {
"message": "DICOM registered successfully.",
"created": true,
"license_expired": false,
"metadata": {
"AccessionNumber": "<accession_number>",
"AcquisitionDate": "<acquisition_date>",
"AcquisitionTime": "<acquisition_time>",
"ImageUUID": "<image_uuid>",
"InstancesList": "<instances_list>",
"InstanceNumber": "<instance_number>",
"Modality": "CT",
"PatientAge": "<patient_age>",
"PatientBirthDate": "<patient_birth_date>",
"PatientID": "<patient_id>",
"PatientName": "<patient_name>",
"PatientSex": "<patient_sex>",
"SeriesInstanceUID": "<series_instance_uid>",
"SeriesList": "<series_list>",
"SeriesNumber": "<series_number>",
"SOPClassUID": "<sop_class_uid>",
"SOPInstanceUID": "<sop_instance_uid>",
"StudyDate": "<study_date>",
"StudyInstanceUID": "<study_instance_uid>",
"StudyTime": "<study_time>",
"TransferSyntaxUID": "<transfer_syntax_uid>"
}
}
},
},
},
"series_instance_uids": [
"<series_instance_uid>"
],
"detailed_info": [
{
"SeriesInstanceUID": "<series_instance_uid>",
"NumberOfSeriesRelatedInstances": "<number_of_series_related_instances_1>"
}
]
}
To learn more about the various keys and parameters in the JSON response, refer to the Upload DICOMs API Reference.
Other Responses
401 Unauthorized
This response occurs when the
Authorization
header has either no token or a wrong token.{ "message": "Invalid token header. No credentials provided.", "next": "/accounts/login/", "authenticated": false }
400 Bad Request
This response is returned when no DICOMs are uploaded.
{ "message": "No DICOM files were uploaded!" }
Last updated