获取影像集元数据 - AWS HealthImaging

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

获取影像集元数据

使用GetImageSetMetadata操作检索中给定图像集元数据 HealthImaging。以下菜单提供了操作步骤 AWS Management Console 和 AWS CLI 和的代码示例 AWS SDKs。有关更多信息,请参阅 AWS HealthImaging API 参考GetImageSetMetadata中的。

注意

默认情况下, HealthImaging 返回最新版本影像集的元数据属性。要查看旧版本影像集的元数据,请在请求中提供 versionId

影像集元数据使用 gzip 压缩并以 JSON 对象的形式返回。因此,在查看标准化元数据之前,必须先解压缩 JSON 对象。有关更多信息,请参阅 元数据标准化

使用GetDICOMInstanceMetadata DICOMweb服务的表示形式返回 DICOM 实例元数据(.json文件)。 HealthImaging有关更多信息,请参阅 从中获取 DICOM 实例元数据 HealthImaging

如要获取影像集元数据

根据您对 AWS 的访问偏好选择菜单 HealthImaging。

  1. 打开 HealthImaging 控制台数据存储页面

  2. 选择数据存储。

    数据存储详细信息页面将会打开,默认情况下,影像集选项卡处于选中状态。

  3. 选择一个影像集。

    影像集详细信息页面打开,影像集元数据查看器一节下方显示影像集元数据。

C++
SDK for 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; }
  • 有关 API 的详细信息,请参阅 适用于 C++ 的 AWS SDK API 参考GetImageSetMetadata中的。

注意

还有更多相关信息 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
适用于 Java 的 SDK 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 的详细信息,请参阅 AWS SDK for Java 2.x API 参考GetImageSetMetadata中的。

注意

还有更多相关信息 GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。

JavaScript
适用于 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 的详细信息,请参阅 适用于 JavaScript 的 AWS SDK API 参考GetImageSetMetadata中的。

注意

还有更多相关信息 GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。

Python
适用于 Python 的 SDK(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 的详细信息,请参阅适用GetImageSetMetadataPython 的AWS SDK (Boto3) API 参考

注意

还有更多相关信息 GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。

示例可用性

找不到所需的内容? 使用本页右侧边栏上的 “提供反馈” 链接请求代码示例。