

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 이미지 세트 메타데이터 가져오기


`GetImageSetMetadata` 작업을 사용하여 HealthImaging에서 지정된 [이미지 세트](getting-started-concepts.md#concept-image-set)의 [메타데이터](getting-started-concepts.md#concept-metadata)를 검색합니다. 다음 메뉴에서는 및 AWS SDKs의 AWS Management Console AWS CLI 및 코드 예제에 대한 절차를 제공합니다. 자세한 내용은 *AWS HealthImaging API Reference*에서 [https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_GetImageSetMetadata.html](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_GetImageSetMetadata.html) 섹션을 참조하세요.

**참고**  
기본적으로 HealthImaging은 최신 버전의 이미지 세트에 대한 메타데이터 속성을 반환합니다. 이전 버전의 이미지 세트에 대한 메타데이터를 보려면 요청과 함께 `versionId`를 제공하십시오.  
이미지 세트 메타데이터는 `gzip`으로 압축되어 JSON 객체로 반환됩니다. 따라서 정규화된 메타데이터를 보기 전에 JSON 객체의 압축을 풀어야 합니다. 자세한 내용은 [메타데이터 정규화](metadata-normalization.md) 단원을 참조하십시오.  
가져오기 후 대용량 이미지 세트 메타데이터가 여전히 처리 중인 경우 409가 반환될 `ConflictException` 수 있습니다. 처리가 완료되면 몇 초 후에 요청을 다시 시도합니다.  
`GetDICOMInstanceMetadata`HealthImaging의 DICOMweb 서비스 표현인를 사용하여 DICOM 인스턴스 메타데이터(`.json` 파일)를 반환합니다. 자세한 내용은 [HealthImaging에서 DICOM 인스턴스 메타데이터 가져오기](dicomweb-retrieve-instance-metadata.md) 단원을 참조하십시오.

**이미지 세트 메타데이터를 가져오려면**  
AWS HealthImaging에 대한 액세스 기본 설정에 따라 메뉴를 선택합니다.

## AWS 콘솔


1. HealthImaging 콘솔 [데이터 스토어 페이지](https://console.aws.amazon.com/medical-imaging/home#/dataStores)를 엽니다.

1. 데이터 스토어를 선택합니다.

   **데이터 스토어 세부 정보** 페이지가 열리고 기본적으로 **이미지 세트** 탭이 선택됩니다.

1. 이미지 세트를 선택합니다.

   **이미지 세트 세부 정보** 페이지가 열리고 이미지 세트 메타데이터가 **이미지 세트 메타데이터 뷰어** 섹션 아래에 표시됩니다.

## AWS CLI 및 SDKs


------
#### [ C\$1\$1 ]

**SDK for C\$1\$1**  
이미지 세트 메타데이터를 가져오는 유틸리티 함수입니다.  

```
//! 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 세부 정보는 *AWS SDK for C\$1\$1 API 참조*의 [GetImageSetMetadata](https://docs.aws.amazon.com/goto/SdkForCpp/medical-imaging-2023-07-19/GetImageSetMetadata)를 참조하세요.
 GitHub에 더 많은 내용이 있습니다. [AWS 코드 예 리포지토리](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/medical-imaging/#code-examples)에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

------
#### [ 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 개발자 안내서*의 [이미지 세트 메타데이터 가져오기](https://docs.aws.amazon.com/healthimaging/latest/devguide/get-image-set-metadata.html)를 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 참조*의 [GetImageSetMetadata](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/medical-imaging/get-image-set-metadata.html)를 참조하세요.

------
#### [ Java ]

**SDK for 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 세부 정보는 *AWS SDK for Java 2.x API 참조*의 [GetImageSetMetadata](https://docs.aws.amazon.com/goto/SdkForJavaV2/medical-imaging-2023-07-19/GetImageSetMetadata)를 참조하세요.
 GitHub에 더 많은 내용이 있습니다. [AWS 코드 예 리포지토리](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/medicalimaging#code-examples)에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

------
#### [ JavaScript ]

**SDK for 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 세부 정보는 *AWS SDK for JavaScript API 참조*의 [GetImageSetMetadata](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/medical-imaging/command/GetImageSetMetadataCommand)를 참조하세요.
 GitHub에 더 많은 내용이 있습니다. [AWS 코드 예 리포지토리](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/medical-imaging#code-examples)에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

------
#### [ 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 세부 정보는 *AWS SDK for Python (Boto3) API 참조*의 [GetImageSetMetadata](https://docs.aws.amazon.com/goto/boto3/medical-imaging-2023-07-19/GetImageSetMetadata)를 참조하세요.
 GitHub에 더 많은 내용이 있습니다. [AWS 코드 예 리포지토리](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/medical-imaging#code-examples)에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

------
#### [ SAP ABAP ]

**SDK for SAP ABAP API**  

```
    TRY.
        " iv_datastore_id = '1234567890123456789012345678901234567890'
        " iv_image_set_id = '1234567890123456789012345678901234567890'
        " iv_version_id = '1' (optional)
        IF iv_version_id IS NOT INITIAL.
          oo_result = lo_mig->getimagesetmetadata(
            iv_datastoreid = iv_datastore_id
            iv_imagesetid = iv_image_set_id
            iv_versionid = iv_version_id ).
        ELSE.
          oo_result = lo_mig->getimagesetmetadata(
            iv_datastoreid = iv_datastore_id
            iv_imagesetid = iv_image_set_id ).
        ENDIF.
        DATA(lv_metadata_blob) = oo_result->get_imagesetmetadatablob( ).
        MESSAGE 'Image set metadata retrieved.' TYPE 'I'.
      CATCH /aws1/cx_migaccessdeniedex.
        MESSAGE 'Access denied.' TYPE 'I'.
      CATCH /aws1/cx_migconflictexception.
        MESSAGE 'Conflict error.' TYPE 'I'.
      CATCH /aws1/cx_miginternalserverex.
        MESSAGE 'Internal server error.' TYPE 'I'.
      CATCH /aws1/cx_migresourcenotfoundex.
        MESSAGE 'Image set not found.' TYPE 'I'.
      CATCH /aws1/cx_migthrottlingex.
        MESSAGE 'Request throttled.' TYPE 'I'.
      CATCH /aws1/cx_migvalidationex.
        MESSAGE 'Validation error.' TYPE 'I'.
    ENDTRY.
```
+  API 세부 정보는 SDK for SAP ABAP API 참조의 [GetImageSetMetadata](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html)를 참조하세요. *AWS * 
 GitHub에 더 많은 내용이 있습니다. [AWS 코드 예 리포지토리](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/mig#code-examples)에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

------

**예제 가용성**  
필요한 예제를 찾을 수 없습니까? 이 페이지의 오른쪽 사이드바에 있는 **피드백 제공** 링크를 사용하여 코드 예제를 요청합니다.

**전송 구문 메타데이터**  
DICOM 데이터를 가져올 때 HealthImaging은 전송 구문 속성의 원래 값을 이미지 세트 메타데이터에 유지합니다. 가져온 원본 DICOM 데이터의 전송 구문은 로 저장됩니다`TransferSyntaxUID`. HealthImaging은 `StoredTransferSyntaxUID`를 사용하여 데이터 스토어에서 이미지 프레임 데이터를 인코딩하는 데 사용되는 형식을 나타냅니다. HTJ2K 지원 데이터 스토어(기본값)의 `1.2.840.10008.1.2.4.202` 경우 , JPEG 2000 무손실 지원 데이터 스토어`1.2.840.10008.1.2.4.90`의 경우 .