Menyimpan instans dengan STOW-RS - AWS HealthImaging

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyimpan instans dengan STOW-RS

AWS HealthImaging menawarkan representasi DICOMweb STOW-RS APIs untuk mengimpor data. Gunakan ini APIs untuk menyimpan data DICOM secara sinkron ke penyimpanan HealthImaging data Anda.

Tabel berikut menjelaskan HealthImaging representasi DICOMweb STOW-RS yang APIs tersedia untuk mengimpor data.

HealthImaging representasi dari STOW-RS DICOMweb APIs
Nama Penjelasan
StoreDICOM Menyimpan satu atau lebih instance ke penyimpanan HealthImaging data.
StoreDICOMStudy Simpan satu atau beberapa instance yang sesuai dengan UID Instans Studi tertentu ke penyimpanan HealthImaging data.

Data yang diimpor dengan StoreDICOMStudy tindakan StoreDICOM dan akan diatur sebagai kumpulan gambar utama baru, atau ditambahkan ke kumpulan gambar utama yang ada, menggunakan logika yang sama dengan pekerjaan impor asinkron. Jika elemen metadata data DICOM P10 yang baru diimpor bertentangan dengan kumpulan gambar primer yang ada, data baru akan ditambahkan ke kumpulan gambar non-primer.

catatan
  • Tindakan ini mendukung pengunggahan hingga 1GB data DICOM per permintaan.

  • Respons API akan dalam format JSON, sesuai dengan standar STOW-RS. DICOMweb

Untuk memulai permintaan StoreDicom

  1. Kumpulkan wilayah AWS Anda, HealthImaging datastoreId, dan nama file DICOM P10.

  2. Membangun URL untuk permintaan formulir: https://dicom-medical-imaging.region.amazonaws.com/datastore/datastore-id/studies

  3. Tentukan panjang konten file DICOM P10 menggunakan perintah pilihan Anda, misalnya. $(stat -f %z $FILENAME)

  4. Siapkan dan kirim permintaan Anda. StoreDICOMmenggunakan permintaan HTTP POST dengan protokol penandatanganan AWS Signature Version 4.

contoh Contoh 1: Untuk menyimpan file DICOM P10 menggunakan tindakan StoreDICOM
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
contoh Contoh 2: Untuk menyimpan file DICOM P10 menggunakan tindakan StoreDICOMStudy

Satu-satunya perbedaan antara StoreDicom dan Store DICOMStudy adalah bahwa Study Instance UID diteruskan sebagai parameter ke StoreDICOMStudy, dan instance yang diunggah harus menjadi anggota studi yang ditentukan.

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
contoh Contoh 3: Untuk menyimpan file DICOM P10 dengan muatan HTTP multi-bagian

Beberapa file P10 dapat diunggah dengan satu tindakan unggahan multi-bagian. Perintah shell berikut menunjukkan cara merakit muatan multi-bagian yang berisi dua file P10, dan mengunggahnya dengan tindakan. StoreDICOM

Shell
#!/bin/sh FILENAME=multipart.payload BOUNDARY=2a8a02b9-0ed3-c8a7-7ebd-232427531940 boundary_str="--$BOUNDARY\r\n" mp_header="${boundary_str}Content-Type: application/dicom\r\n\r\n" ##Encapsulate the binary DICOM file 1. printf '%b' "$mp_header" > $FILENAME cat file1.dcm >> $FILENAME ##Encapsulate the binary DICOM file 2 (note the additional CRLF before the part header). printf '%b' "\r\n$mp_header" >> $FILENAME cat file2.dcm >> $FILENAME ## Add the closing boundary. printf '%b' "\r\n--$BOUNDARY--" >> $FILENAME ## Obain the payload size in bytes. multipart_payload_size=$(stat -f%z "$FILENAME") # Execute CURL POST request with AWS SIGv4 curl -X POST -v \ 'https://iad-dicom.external-healthlake-imaging.ai.aws.dev/datastore/b5f34e91ca734b39a54ac11ea42416cf/studies' \ --aws-sigv4 "aws:amz:us-east-1:medical-imaging" \ --user "AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ --header "x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD" \ --header "x-amz-decoded-content-length: ${multipart_payload_size}" \ --header 'Accept: application/dicom+json' \ --header "Content-Type: multipart/related; type=\"application/dicom\"; boundary=\"${BOUNDARY}\"" \ --data-binary "@$FILENAME" # Delete the payload file rm $FILENAME