取得映像集中繼資料 - AWS HealthImaging

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

取得映像集中繼資料

使用 GetImageSetMetadata動作來擷取 中指定映像集中繼資料 HealthImaging。下列功能表提供 AWS Management Console 和 程式碼範例的程序 AWS CLI AWS SDKs。如需詳細資訊,請參閱 參考 GetImageSetMetadata中的 。 AWS HealthImaging API

注意

根據預設, 會 HealthImaging 傳回最新版本影像集的中繼資料屬性。若要檢視舊版映像集的中繼資料,請將您的請求versionId提供給 。

影像集中繼資料會以 JSON 物件壓縮gzip並傳回。因此,您必須先解壓縮JSON物件,才能檢視標準化中繼資料。如需詳細資訊,請參閱中繼資料標準化

使用 GetDICOMInstanceMetadata HealthImaging代表DICOMweb服務的 ,傳回DICOM執行個體中繼資料 (.json 檔案)。如需詳細資訊,請參閱從 取得DICOM執行個體中繼資料 HealthImaging

若要取得影像集中繼資料

根據您對 的存取偏好設定選擇選單AWS HealthImaging。

  1. 開啟 HealthImaging 主控台資料存放區頁面

  2. 選擇資料存放區。

    資料存放區詳細資訊頁面會開啟,且影像索引標籤預設為選取。

  3. 選擇影像集。

    影像集詳細資訊頁面會開啟,且影像集中繼資料會顯示在影像集中繼資料檢視器區段下方。

C++
SDK 適用於 C++

公用程式函數,以取得影像集中繼資料。

//! Routine which gets a HealthImaging image set's metadata. /*! \param dataStoreID: The HealthImaging data store ID. \param imageSetID: The HealthImaging image set ID. \param versionID: The HealthImaging image set version ID, ignored if empty. \param outputFilePath: The path where the metadata will be stored as gzipped json. \param clientConfig: Aws client configuration. \\return bool: Function succeeded. */ bool AwsDoc::Medical_Imaging::getImageSetMetadata(const Aws::String &dataStoreID, const Aws::String &imageSetID, const Aws::String &versionID, const Aws::String &outputFilePath, const Aws::Client::ClientConfiguration &clientConfig) { Aws::MedicalImaging::Model::GetImageSetMetadataRequest request; request.SetDatastoreId(dataStoreID); request.SetImageSetId(imageSetID); if (!versionID.empty()) { request.SetVersionId(versionID); } Aws::MedicalImaging::MedicalImagingClient client(clientConfig); Aws::MedicalImaging::Model::GetImageSetMetadataOutcome outcome = client.GetImageSetMetadata( request); if (outcome.IsSuccess()) { std::ofstream file(outputFilePath, std::ios::binary); auto &metadata = outcome.GetResult().GetImageSetMetadataBlob(); file << metadata.rdbuf(); } else { std::cerr << "Failed to get image set metadata: " << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); }

取得不含 版本的映像集中繼資料。

if (AwsDoc::Medical_Imaging::getImageSetMetadata(dataStoreID, imageSetID, "", outputFilePath, clientConfig)) { std::cout << "Successfully retrieved image set metadata." << std::endl; std::cout << "Metadata stored in: " << outputFilePath << std::endl; }

使用 版本取得映像集中繼資料。

if (AwsDoc::Medical_Imaging::getImageSetMetadata(dataStoreID, imageSetID, versionID, outputFilePath, clientConfig)) { std::cout << "Successfully retrieved image set metadata." << std::endl; std::cout << "Metadata stored in: " << outputFilePath << std::endl; }
注意

還有更多 。 GitHub尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

CLI
AWS CLI

範例 1:取得不含 版本的映像集中繼資料

下列get-image-set-metadata程式碼範例會取得映像集的中繼資料,而不需指定版本。

注意: outfile 是必要的參數

aws medical-imaging get-image-set-metadata \ --datastore-id 12345678901234567890123456789012 \ --image-set-id ea92b0d8838c72a3f25d00d13616f87e \ studymetadata.json.gz

傳回的中繼資料會以 gzip 壓縮,並存放在 studymetadata.json.gz 檔案中。若要檢視傳回JSON物件的內容,您必須先解壓縮物件。

輸出:

{ "contentType": "application/json", "contentEncoding": "gzip" }

範例 2:使用 版本取得映像集中繼資料

下列get-image-set-metadata程式碼範例會取得具有指定版本之映像集的中繼資料。

注意: outfile 是必要的參數

aws medical-imaging get-image-set-metadata \ --datastore-id 12345678901234567890123456789012 \ --image-set-id ea92b0d8838c72a3f25d00d13616f87e \ --version-id 1 \ studymetadata.json.gz

傳回的中繼資料會以 gzip 壓縮,並存放在 studymetadata.json.gz 檔案中。若要檢視傳回JSON物件的內容,您必須先解壓縮物件。

輸出:

{ "contentType": "application/json", "contentEncoding": "gzip" }

如需詳細資訊,請參閱 AWS HealthImaging 開發人員指南 中的取得映像集中繼資料

Java
SDK 適用於 Java 2.x
public static void getMedicalImageSetMetadata(MedicalImagingClient medicalImagingClient, String destinationPath, String datastoreId, String imagesetId, String versionId) { try { GetImageSetMetadataRequest.Builder getImageSetMetadataRequestBuilder = GetImageSetMetadataRequest.builder() .datastoreId(datastoreId) .imageSetId(imagesetId); if (versionId != null) { getImageSetMetadataRequestBuilder = getImageSetMetadataRequestBuilder.versionId(versionId); } medicalImagingClient.getImageSetMetadata(getImageSetMetadataRequestBuilder.build(), FileSystems.getDefault().getPath(destinationPath)); System.out.println("Metadata downloaded to " + destinationPath); } catch (MedicalImagingException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • 如需API詳細資訊,請參閱 參考 GetImageSetMetadata中的 。 AWS SDK for Java 2.x API

注意

還有更多 。 GitHub尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

JavaScript
SDK 適用於 JavaScript (v3)

公用程式函數,以取得影像集中繼資料。

import { GetImageSetMetadataCommand } from "@aws-sdk/client-medical-imaging"; import { medicalImagingClient } from "../libs/medicalImagingClient.js"; import { writeFileSync } from "node:fs"; /** * @param {string} metadataFileName - The name of the file for the gzipped metadata. * @param {string} datastoreId - The ID of the data store. * @param {string} imagesetId - The ID of the image set. * @param {string} versionID - The optional version ID of the image set. */ export const getImageSetMetadata = async ( metadataFileName = "metadata.json.gzip", datastoreId = "xxxxxxxxxxxxxx", imagesetId = "xxxxxxxxxxxxxx", versionID = "", ) => { const params = { datastoreId: datastoreId, imageSetId: imagesetId }; if (versionID) { params.versionID = versionID; } const response = await medicalImagingClient.send( new GetImageSetMetadataCommand(params), ); const buffer = await response.imageSetMetadataBlob.transformToByteArray(); writeFileSync(metadataFileName, buffer); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '5219b274-30ff-4986-8cab-48753de3a599', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // contentType: 'application/json', // contentEncoding: 'gzip', // imageSetMetadataBlob: <ref *1> IncomingMessage {} // } return response; };

取得不含 版本的映像集中繼資料。

try { await getImageSetMetadata( "metadata.json.gzip", "12345678901234567890123456789012", "12345678901234567890123456789012", ); } catch (err) { console.log("Error", err); }

使用 版本取得映像集中繼資料。

try { await getImageSetMetadata( "metadata2.json.gzip", "12345678901234567890123456789012", "12345678901234567890123456789012", "1", ); } catch (err) { console.log("Error", err); }
  • 如需API詳細資訊,請參閱 參考 GetImageSetMetadata中的 。 AWS SDK for JavaScript API

注意

還有更多 。 GitHub尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

Python
SDK for Python (Boto3)

公用程式函數,以取得影像集中繼資料。

class MedicalImagingWrapper: def __init__(self, health_imaging_client): self.health_imaging_client = health_imaging_client def get_image_set_metadata( self, metadata_file, datastore_id, image_set_id, version_id=None ): """ Get the metadata of an image set. :param metadata_file: The file to store the JSON gzipped metadata. :param datastore_id: The ID of the data store. :param image_set_id: The ID of the image set. :param version_id: The version of the image set. """ try: if version_id: image_set_metadata = self.health_imaging_client.get_image_set_metadata( imageSetId=image_set_id, datastoreId=datastore_id, versionId=version_id, ) else: image_set_metadata = self.health_imaging_client.get_image_set_metadata( imageSetId=image_set_id, datastoreId=datastore_id ) print(image_set_metadata) with open(metadata_file, "wb") as f: for chunk in image_set_metadata["imageSetMetadataBlob"].iter_chunks(): if chunk: f.write(chunk) except ClientError as err: logger.error( "Couldn't get image metadata. Here's why: %s: %s", err.response["Error"]["Code"], err.response["Error"]["Message"], ) raise

取得不含 版本的映像集中繼資料。

image_set_metadata = self.health_imaging_client.get_image_set_metadata( imageSetId=image_set_id, datastoreId=datastore_id )

使用 版本取得映像集中繼資料。

image_set_metadata = self.health_imaging_client.get_image_set_metadata( imageSetId=image_set_id, datastoreId=datastore_id, versionId=version_id, )

下列程式碼會實例化 MedicalImagingWrapper 物件。

client = boto3.client("medical-imaging") medical_imaging_wrapper = MedicalImagingWrapper(client)
  • 如需API詳細資訊,請參閱 GetImageSetMetadata 中的 AWS SDK for Python (Boto3) API參考

注意

還有更多 。 GitHub尋找完整範例,並了解如何在 AWS 程式碼範例儲存庫中設定和執行。

可用性範例

找不到所需的內容嗎? 使用此頁面底部的提供意見回饋連結來請求程式碼範例。