Importing data
Importing Instances
AWS HealthImaging offers a representation of the DICOMweb STOW-RS
APIs for importing data. Use these APIs to synchronously store DICOM data to your HealthImaging data store.
The following table describes the HealthImaging representations of DICOMweb STOW-RS APIs available for importing data.
HealthImaging representations of DICOMweb STOW-RS APIs
Name |
Description |
StoreDICOM |
Store one or more instances to a HealthImaging data store. |
StoreDICOMStudy |
Store one or more instances corresponding to a specified Study Instance UID to a HealthImaging data store. |
Data imported with the StoreDICOM
and StoreDICOMStudy
actions will be organized as new primary image sets, or added to existing primary image sets, using the same logic as asynchronous import jobs. If the metadata elements of newly imported DICOM P10 data conflict with existing primary image sets, the new data will be added to non-primary image sets.
-
These actions support upload of up to 1GB of DICOM data per request.
-
The API response will be in the JSON format, conformant to the DICOMweb STOW-RS standard.
To initiate a StoreDICOM request
-
Collect your AWS region, HealthImaging datastoreId
, and DICOM P10 file name.
-
Construct a URL for the request of the form: https://dicom-medical-imaging.region
.amazonaws.com/datastore/datastore-id
/studies
-
Determine the content length of the DICOM P10 file using your preferred command, for example $(stat -f %z $FILENAME)
.
-
Prepare and send your request. StoreDICOM
uses a HTTP POST request with AWS Signature Version 4 signing protocol.
Example 1: To store a DICOM P10 file using the StoreDICOM
action
- Shell
-
curl -X POST -v \
'https://dicom-medical-imaging.us-east-1.amazonaws.com/datastore/d9a2a515ab294163a2d2f4069eed584c/studies' \
--aws-sigv4 "aws:amz:$AWS_REGION:medical-imaging" \
--user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
--header "x-amz-security-token:$AWS_SESSION_TOKEN" \
--header "x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD" \
--header "x-amz-decoded-content-length: $CONTENT_LENGTH" \
--header 'Accept: application/dicom+json' \
--header "Content-Type: application/dicom" \
--upload-file $FILENAME
Example 2: To store a DICOM P10 file using the StoreDICOMStudy action
The only difference between StoreDICOM and StoreDICOMStudy is that a Study Instance UID is passed as a parameter to StoreDICOMStudy, and the uploaded instances must be members of the specified study.
- Shell
-
curl -X POST -v \
'https://dicom-medical-imaging.us-east-1.amazonaws.com/datastore/d9a2a515ab294163a2d2f4069eed584c/studies/1.3.6.1.4.1.5962.1.2.4.20040826285059.5457' \
--aws-sigv4 "aws:amz:$AWS_REGION:medical-imaging" \
--user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
--header "x-amz-security-token:$AWS_SESSION_TOKEN" \
--header "x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD" \
--header "x-amz-decoded-content-length: $CONTENT_LENGTH" \
--header 'Accept: application/dicom+json' \
--header "Content-Type: application/dicom" \
--upload-file $FILENAME
Example 3: To store DICOM P10 files with a multi-part HTTP payload
- Shell
-
curl -X POST -v \
'https://dicom-medical-imaging.us-east-1.amazonaws.com/datastore/d9a2a515ab294163a2d2f4069eed584c/studies' \
--aws-sigv4 "aws:amz:$AWS_REGION:medical-imaging" \
--user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
--header "x-amz-security-token:$AWS_SESSION_TOKEN" \
--header "x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD" \
--header "x-amz-decoded-content-length: $CONTENT_LENGTH" \
--header 'Accept: application/dicom+json' \
--header "Content-Type: multipart/related; type=application/dicom; boundary={boundary}" \
--upload-file $FILENAME