

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 從 HealthImaging 取得 DICOM 執行個體影格
<a name="dicomweb-retrieve-instance-frames"></a>

使用 `GetDICOMInstanceFrames`動作，透過指定與資源相關聯的系列 UID、研究 UID、執行個體 UID 和影格編號，從 HealthImaging [資料存放](getting-started-concepts.md#concept-data-store)區中的 DICOM 執行個體擷取單一或批次影像影格 (`multipart` 請求）。 UIDs 您可以透過提供[映像集](getting-started-concepts.md#concept-image-set) ID 做為查詢參數，來指定應從中擷取執行個體影格的映像集。除非提供選用的影像集參數，否則 API 只會從主要[影像集](getting-started-concepts.md#concept-image-set)傳回執行個體影格。您可以將 指定`imageSetId`為查詢參數，以擷取資料存放區中的任何執行個體影格 （從主要或非主要影像集）。

DICOM 資料可以以其儲存的傳輸語法或未壓縮 (ELE) 格式擷取。

**取得 DICOM 執行個體影格 (`multipart`)**  


1. 收集 HealthImaging `datastoreId`和`imageSetId`參數值。

1. 使用 [https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_GetImageSetMetadata.html](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_GetImageSetMetadata.html)動作搭配 `datastoreId`和 `imageSetId` 參數值，擷取 `studyInstanceUID`、 `seriesInstanceUID`和 的相關中繼資料值`sopInstanceUID`。如需詳細資訊，請參閱[取得映像集中繼資料](get-image-set-metadata.md)。

1. 決定要從相關聯中繼資料擷取的影像影格，以形成 `frameList` 參數。`frameList` 參數是一或多個非重複影格號碼的逗號分隔清單，依任何順序排列。例如，中繼資料中的第一個影像影格將是影格 1。
   + 單一影格請求： `/frames/1`
   + 多影格請求： `/frames/1,2,3,4`

1. 使用 `datastoreId`、`studyInstanceUID`、`seriesInstanceUID`、`imageSetId`、 `sopInstanceUID`和 的值來建構請求的 URL`frameList`。若要在下列範例中檢視整個 URL 路徑，請捲動至**複製**按鈕。URL 的格式如下：

   ```
   GET https://dicom-medical-imaging.region.amazonaws.com/datastore/datastore-id/studies/study-instance-uid/series/series-instance-uid/instances/sop-instance-uid/frames/1?imageSetId=image-set-id
   ```

1. 準備並傳送您的請求。 `GetDICOMInstanceFrames`使用 HTTP GET 請求搭配 [AWS Signature 第 4 版](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)簽署通訊協定。下列程式碼範例使用`curl`命令列工具，從 HealthImaging 取得`multipart`回應中的影像影格。

------
#### [ Shell ]

   ```
   curl --request GET \
     'https://dicom-medical-imaging.us-east-1.amazonaws.com/datastore/d9a2a515ab294163a2d2f4069eed584c/studies/1.3.6.1.4.1.5962.1.2.4.20040826285059.5457/series/1.3.6.1.4.1.5962.1.3.4.1.20040825185059.5457/instances/1.3.6.1.4.1.5962.1.1.4.1.1.20040826186059.5457/frames/1?imageSetId=459e50687f121185f747b67bb60d1bc8' \
     --aws-sigv4 'aws:amz:us-east-1:medical-imaging' \
     --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
     --header "x-amz-security-token:$AWS_SESSION_TOKEN" \
     --header 'Accept: multipart/related; type=application/octet-stream; transfer-syntax=1.2.840.10008.1.2.1'
   ```

------
**注意**  
`transfer-syntax` UID 是選用的，如果未包含，則預設為明確 VR Little Endian。如果無法轉碼至 ELE （因為匯入時出現警告），則會傳回像素而不轉碼。支援的傳輸語法包括：  
明確 VR Little Endian (ELE) - `1.2.840.10008.1.2.1`（無失真影像影格的預設值）
如果 `transfer-syntax=*` （影像影格） 將以儲存的傳輸語法傳回。
具有 RPCL 選項影像壓縮的高傳輸量 JPEG 2000 （僅限無損） `1.2.840.10008.1.2.4.202` - - 如果執行個體存放在 HealthImaging 中 `1.2.840.10008.1.2.4.202`
JPEG 2000 無失真 - `1.2.840.10008.1.2.4.90` - 如果執行個體存放在 HealthImaging 中為無失真。
JPEG 基準 （程序 1)：失真 JPEG 8 位元影像壓縮的預設傳輸語法 - `1.2.840.10008.1.2.4.50` - 如果執行個體存放在 HealthImaging 中 `1.2.840.10008.1.2.4.50`
JPEG 2000 Image Compression - `1.2.840.10008.1.2.4.91` - 如果執行個體存放在 HealthImaging 中 `1.2.840.10008.1.2.4.91`
高輸送量 JPEG 2000 影像壓縮 - `1.2.840.10008.1.2.4.203` - 如果執行個體存放在 HealthImaging 中 `1.2.840.10008.1.2.4.203`
JPEG XL Image Compression `1.2.840.10008.1.2.4.112` - - 如果執行個體存放在 HealthImaging 中 `1.2.840.10008.1.2.4.112`
以 MPEG 系列 [Transfer Syntaxes](supported-transfer-syntaxes.md) （包括 MPEG2, MPEG-4 AVC/H.264 和 HEVC/H.265) 編碼的一或多個影像影格存放在 HealthImaging 中的執行個體，可以使用對應的 Transfer-syntax UID 擷取。例如，`1.2.840.10008.1.2.4.100`如果執行個體儲存為 MPEG2 主要設定檔主要層級。
`NotAcceptableException` 如果無法根據儲存的傳輸語法傳回請求的傳輸語法，或執行個體有特定的處理警告，您可能會收到 406。如果發生這種情況，請使用 重試 呼叫`transfer-syntax=*`。

   如需詳細資訊，請參閱[支援的傳輸語法](supported-transfer-syntaxes.md)及[AWS HealthImaging 的影像影格解碼程式庫](reference-libraries.md)。