

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 画像セットメタデータの更新
<a name="update-image-set-metadata"></a>

`UpdateImageSetMetadata` アクションを使用して、AWS HealthImaging のイメージセット[メタデータ](getting-started-concepts.md#concept-metadata)を更新します。この非同期プロセスを使用して、インポート中に作成される [DICOM 正規化要素](metadata-normalization.md)の兆候である画像セットメタデータ属性を追加、更新、削除できます。`UpdateImageSetMetadata`アクションを使用して、シリーズインスタンスとSOPインスタンスを削除し、画像セットを外部システムと同期させたり、画像セットのメタデータを匿名化したりすることもできます。詳細については、「AWS HealthImaging API リファレンス」の「[https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html)」を参照してください。

**注記**  
実際の DICOM インポートでは、画像セットメタデータの属性を更新、追加、削除する必要があります。イメージセットメタデータを更新するときは、次の点に注意してください。  
画像セットのメタデータを更新すると、画像セット履歴に新しいバージョンが作成されます。詳細については、「[画像セットのバージョンを一覧表示する](list-image-set-versions.md)」を参照してください。以前のイメージセットバージョン ID に戻すには、オプションの [https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#healthimaging-UpdateImageSetMetadata-request-revertToVersionId](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#healthimaging-UpdateImageSetMetadata-request-revertToVersionId)パラメータを使用します。
画像セットのメタデータの更新は非同期プロセスです。したがって、 [https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#healthimaging-UpdateImageSetMetadata-response-imageSetState](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#healthimaging-UpdateImageSetMetadata-response-imageSetState)および [https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#healthimaging-UpdateImageSetMetadata-response-imageSetWorkflowStatus](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#healthimaging-UpdateImageSetMetadata-response-imageSetWorkflowStatus)レスポンス要素は、更新中のイメージセットのそれぞれの状態とステータスを提供するために使用できます。`LOCKED` イメージセットに対して他の書き込みオペレーションを実行することはできません。
`UpdateImageSetMetadata` アクションが成功しない場合は、 を呼び出して[https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#healthimaging-UpdateImageSetMetadata-response-message](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#healthimaging-UpdateImageSetMetadata-response-message)レスポンス要素を確認し、 を確認します[`common errors`。](https://docs.aws.amazon.com/healthimaging/latest/APIReference/CommonErrors.html)
DICOM 要素の制約はメタデータの更新に適用されます。[https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#API_UpdateImageSetMetadata_RequestParameters](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#API_UpdateImageSetMetadata_RequestParameters) リクエストパラメータを使用すると、 を上書きする場合に、プライマリ以外の[イメージセット](getting-started-concepts.md#concept-image-set)の要素を更新できます[DICOM メタデータの制約](dicom-metadata-constraints.md)。
患者レベルとシリーズレベルのメタデータ要素は、プライマリ[イメージセット](getting-started-concepts.md#concept-image-set)では更新できません。UpdateImageSet は、プライマリ[イメージセット](getting-started-concepts.md#concept-image-set)の StudyInstanceUID、SeriesInstanceUID、SOPInstanceUID を更新する --`force` をサポートしていません。
[https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#API_UpdateImageSetMetadata_RequestParameters](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html#API_UpdateImageSetMetadata_RequestParameters) リクエストパラメータを設定して、プライマリ以外の[イメージセット](getting-started-concepts.md#concept-image-set)で`UpdateImageSetMetadata`アクションを強制的に完了します。このパラメータを設定すると、イメージセットに次の更新が許可されます。  
`Tag.StudyInstanceUID`、`Tag.SeriesInstanceUID`、、`Tag.SOPInstanceUID`および `Tag.StudyID` 属性の更新
インスタンスレベルのプライベート DICOM データ要素の追加、削除、または更新
イメージセットをプライマリに昇格させるアクションにより、イメージセット ID が変更されます。

以下の図は、HealthImaging で更新される画像セットメタデータを表しています。

![\[HealthImaging での画像セットメタデータの更新を示す図。\]](http://docs.aws.amazon.com/ja_jp/healthimaging/latest/devguide/images/image-set-example-update-metadata.png)


**画像セットのメタデータを更新するには**  
AWS HealthImaging のアクセス設定に基づいてタブを選択します。

## AWS CLI および SDKs
<a name="code-example-cli-sdk-image-set-metadata"></a>

------
#### [ CLI ]

**AWS CLI**  
**例 1: 画像セットメタデータに属性を挿入または更新するには**  
次の `update-image-set-metadata` の例では、画像セットメタデータに属性を挿入または更新します。  

```
aws medical-imaging update-image-set-metadata \
    --datastore-id 12345678901234567890123456789012 \
    --image-set-id ea92b0d8838c72a3f25d00d13616f87e \
    --latest-version-id 1 \
    --cli-binary-format raw-in-base64-out \
    --update-image-set-metadata-updates file://metadata-updates.json
```
`metadata-updates.json` の内容  

```
{
    "DICOMUpdates": {
        "updatableAttributes": "{\"SchemaVersion\":1.1,\"Patient\":{\"DICOM\":{\"PatientName\":\"MX^MX\"}}}"
    }
}
```
出力:  

```
{
    "latestVersionId": "2",
    "imageSetWorkflowStatus": "UPDATING",
    "updatedAt": 1680042257.908,
    "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e",
    "imageSetState": "LOCKED",
    "createdAt": 1680027126.436,
    "datastoreId": "12345678901234567890123456789012"
}
```
**例 2: 画像セットメタデータから属性を削除するには**  
次の `update-image-set-metadata` の例では、画像セットメタデータから属性を削除します。  

```
aws medical-imaging update-image-set-metadata \
    --datastore-id 12345678901234567890123456789012 \
    --image-set-id ea92b0d8838c72a3f25d00d13616f87e \
    --latest-version-id 1 \
    --cli-binary-format raw-in-base64-out \
    --update-image-set-metadata-updates file://metadata-updates.json
```
`metadata-updates.json` の内容  

```
{
    "DICOMUpdates": {
        "removableAttributes": "{\"SchemaVersion\":1.1,\"Study\":{\"DICOM\":{\"StudyDescription\":\"CHEST\"}}}"
    }
}
```
出力:  

```
{
    "latestVersionId": "2",
    "imageSetWorkflowStatus": "UPDATING",
    "updatedAt": 1680042257.908,
    "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e",
    "imageSetState": "LOCKED",
    "createdAt": 1680027126.436,
    "datastoreId": "12345678901234567890123456789012"
}
```
**例 3: 画像セットメタデータからインスタンスを削除するには**  
次の `update-image-set-metadata` の例では、画像セットメタデータからインスタンスを削除します。  

```
aws medical-imaging update-image-set-metadata \
    --datastore-id 12345678901234567890123456789012 \
    --image-set-id ea92b0d8838c72a3f25d00d13616f87e \
    --latest-version-id 1 \
    --cli-binary-format raw-in-base64-out \
    --update-image-set-metadata-updates file://metadata-updates.json \
    --force
```
`metadata-updates.json` の内容  

```
{
    "DICOMUpdates": {
        "removableAttributes": "{\"SchemaVersion\": 1.1,\"Study\": {\"Series\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {\"Instances\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {}}}}}}"
    }
}
```
出力:  

```
{
    "latestVersionId": "2",
    "imageSetWorkflowStatus": "UPDATING",
    "updatedAt": 1680042257.908,
    "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e",
    "imageSetState": "LOCKED",
    "createdAt": 1680027126.436,
    "datastoreId": "12345678901234567890123456789012"
}
```
**例 4: 画像セットを以前のバージョンに戻すには**  
次の `update-image-set-metadata` の例は、画像セットを以前のバージョンに戻す方法を示しています。CopyImageSet および UpdateImageSetMetadata アクションは、新しいバージョンの画像セットを作成します。  

```
aws medical-imaging update-image-set-metadata \
    --datastore-id 12345678901234567890123456789012 \
    --image-set-id 53d5fdb05ca4d46ac7ca64b06545c66e \
    --latest-version-id 3 \
    --cli-binary-format raw-in-base64-out \
    --update-image-set-metadata-updates '{"revertToVersionId": "1"}'
```
出力:  

```
{
    "datastoreId": "12345678901234567890123456789012",
    "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e",
    "latestVersionId": "4",
    "imageSetState": "LOCKED",
    "imageSetWorkflowStatus": "UPDATING",
    "createdAt": 1680027126.436,
    "updatedAt": 1680042257.908
}
```
**例 5: インスタンスにプライベート DICOM データ要素を追加するには**  
次の `update-image-set-metadata` の例は、画像セット内で指定されたインスタンスにプライベート要素を追加する方法を示しています。DICOM 標準では、標準データ要素に含めることができない情報の通信に、プライベートデータ要素が許可されます。UpdateImageSetMetadata アクションを使用して、プライベートデータ要素を作成、更新、削除できます。  

```
aws medical-imaging update-image-set-metadata \
    --datastore-id 12345678901234567890123456789012 \
    --image-set-id 53d5fdb05ca4d46ac7ca64b06545c66e \
    --latest-version-id 1 \
    --cli-binary-format raw-in-base64-out \
    --force \
    --update-image-set-metadata-updates file://metadata-updates.json
```
`metadata-updates.json` の内容  

```
{
    "DICOMUpdates": {
        "updatableAttributes": "{\"SchemaVersion\": 1.1,\"Study\": {\"Series\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {\"Instances\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {\"DICOM\": {\"001910F9\": \"97\"},\"DICOMVRs\": {\"001910F9\": \"DS\"}}}}}}}"
    }
}
```
出力:  

```
{
    "latestVersionId": "2",
    "imageSetWorkflowStatus": "UPDATING",
    "updatedAt": 1680042257.908,
    "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e",
    "imageSetState": "LOCKED",
    "createdAt": 1680027126.436,
    "datastoreId": "12345678901234567890123456789012"
}
```
**例 6: プライベート DICOM データ要素をインスタンスに対して更新するには**  
次の `update-image-set-metadata` の例は、画像セット内のインスタンスに属するプライベートデータ要素の値を更新する方法を示しています。  

```
aws medical-imaging update-image-set-metadata \
    --datastore-id 12345678901234567890123456789012 \
    --image-set-id 53d5fdb05ca4d46ac7ca64b06545c66e \
    --latest-version-id 1 \
    --cli-binary-format raw-in-base64-out \
    --force \
    --update-image-set-metadata-updates file://metadata-updates.json
```
`metadata-updates.json` の内容  

```
{
    "DICOMUpdates": {
        "updatableAttributes": "{\"SchemaVersion\": 1.1,\"Study\": {\"Series\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {\"Instances\": {\"1.1.1.1.1.1.12345.123456789012.123.12345678901234.1\": {\"DICOM\": {\"00091001\": \"GE_GENESIS_DD\"}}}}}}}"
    }
}
```
出力:  

```
{
    "latestVersionId": "2",
    "imageSetWorkflowStatus": "UPDATING",
    "updatedAt": 1680042257.908,
    "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e",
    "imageSetState": "LOCKED",
    "createdAt": 1680027126.436,
    "datastoreId": "12345678901234567890123456789012"
}
```
**例 7: force パラメータを使用して SOPInstanceUID を更新するには**  
次の `update-image-set-metadata` の例は、force パラメータを使用して SOPInstanceUID を更新し、DICOM メタデータの制約をオーバーライドする方法を示しています。  

```
aws medical-imaging update-image-set-metadata \
        --datastore-id 12345678901234567890123456789012 \
        --image-set-id 53d5fdb05ca4d46ac7ca64b06545c66e \
        --latest-version-id 1 \
        --cli-binary-format raw-in-base64-out \
        --force \
        --update-image-set-metadata-updates file://metadata-updates.json
```
`metadata-updates.json` の内容  

```
{
    "DICOMUpdates": {
        "updatableAttributes": "{\"SchemaVersion\":1.1,\"Study\":{\"Series\":{\"1.3.6.1.4.1.5962.99.1.3633258862.2104868982.1369432891697.3656.0\":{\"Instances\":{\"1.3.6.1.4.1.5962.99.1.3633258862.2104868982.1369432891697.3659.0\":{\"DICOM\":{\"SOPInstanceUID\":\"1.3.6.1.4.1.5962.99.1.3633258862.2104868982.1369432891697.3659.9\"}}}}}}}"
    }
}
```
出力:  

```
{
    "latestVersionId": "2",
    "imageSetWorkflowStatus": "UPDATING",
    "updatedAt": 1680042257.908,
    "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e",
    "imageSetState": "LOCKED",
    "createdAt": 1680027126.436,
    "datastoreId": "12345678901234567890123456789012"
}
```
詳細については、「*AWS HealthImaging Developer Guide*」の「[Updating image set metadata](https://docs.aws.amazon.com/healthimaging/latest/devguide/update-image-set-metadata.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[UpdateImageSetMetadata](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/medical-imaging/update-image-set-metadata.html)」を参照してください。

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

**SDK for Java 2.x**  

```
    /**
     * Update the metadata of an AWS HealthImaging image set.
     *
     * @param medicalImagingClient - The AWS HealthImaging client object.
     * @param datastoreId          - The datastore ID.
     * @param imageSetId           - The image set ID.
     * @param versionId            - The version ID.
     * @param metadataUpdates      - A MetadataUpdates object containing the updates.
     * @param force                - The force flag.
     * @throws MedicalImagingException - Base exception for all service exceptions thrown by AWS HealthImaging.
     */
    public static void updateMedicalImageSetMetadata(MedicalImagingClient medicalImagingClient,
                                                     String datastoreId,
                                                     String imageSetId,
                                                     String versionId,
                                                     MetadataUpdates metadataUpdates,
                                                     boolean force) {
        try {
            UpdateImageSetMetadataRequest updateImageSetMetadataRequest = UpdateImageSetMetadataRequest
                    .builder()
                    .datastoreId(datastoreId)
                    .imageSetId(imageSetId)
                    .latestVersionId(versionId)
                    .updateImageSetMetadataUpdates(metadataUpdates)
                    .force(force)
                    .build();

            UpdateImageSetMetadataResponse response = medicalImagingClient.updateImageSetMetadata(updateImageSetMetadataRequest);

            System.out.println("The image set metadata was updated" + response);
        } catch (MedicalImagingException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            throw e;
        }
    }
```
ユースケース 1: 属性を挿入または更新します。  

```
                final String insertAttributes = """
                        {
                          "SchemaVersion": 1.1,
                          "Study": {
                            "DICOM": {
                              "StudyDescription": "CT CHEST"
                            }
                          }
                        }
                        """;
                MetadataUpdates metadataInsertUpdates = MetadataUpdates.builder()
                        .dicomUpdates(DICOMUpdates.builder()
                                .updatableAttributes(SdkBytes.fromByteBuffer(
                                        ByteBuffer.wrap(insertAttributes
                                                .getBytes(StandardCharsets.UTF_8))))
                                .build())
                        .build();

                updateMedicalImageSetMetadata(medicalImagingClient, datastoreId, imagesetId,
                        versionid, metadataInsertUpdates, force);
```
ユースケース 2: 属性を削除します。  

```
                final String removeAttributes = """
                        {
                          "SchemaVersion": 1.1,
                          "Study": {
                            "DICOM": {
                              "StudyDescription": "CT CHEST"
                            }
                          }
                        }
                        """;
                MetadataUpdates metadataRemoveUpdates = MetadataUpdates.builder()
                        .dicomUpdates(DICOMUpdates.builder()
                                .removableAttributes(SdkBytes.fromByteBuffer(
                                        ByteBuffer.wrap(removeAttributes
                                                .getBytes(StandardCharsets.UTF_8))))
                                .build())
                        .build();

                updateMedicalImageSetMetadata(medicalImagingClient, datastoreId, imagesetId,
                        versionid, metadataRemoveUpdates, force);
```
ユースケース 3: インスタンスを削除します。  

```
                final String removeInstance = """
                        {
                          "SchemaVersion": 1.1,
                          "Study": {
                            "Series": {
                              "1.1.1.1.1.1.12345.123456789012.123.12345678901234.1": {
                                "Instances": {
                                  "1.1.1.1.1.1.12345.123456789012.123.12345678901234.1": {}
                                }
                              }
                            }
                          }
                        }      
                        """;
                MetadataUpdates metadataRemoveUpdates = MetadataUpdates.builder()
                        .dicomUpdates(DICOMUpdates.builder()
                                .removableAttributes(SdkBytes.fromByteBuffer(
                                        ByteBuffer.wrap(removeInstance
                                                .getBytes(StandardCharsets.UTF_8))))
                                .build())
                        .build();

                updateMedicalImageSetMetadata(medicalImagingClient, datastoreId, imagesetId,
                        versionid, metadataRemoveUpdates, force);
```
ユースケース 4: 以前のバージョンに戻します。  

```
                // In this case, revert to previous version.
                String revertVersionId = Integer.toString(Integer.parseInt(versionid) - 1);
                MetadataUpdates metadataRemoveUpdates = MetadataUpdates.builder()
                        .revertToVersionId(revertVersionId)
                        .build();
                updateMedicalImageSetMetadata(medicalImagingClient, datastoreId, imagesetId,
                        versionid, metadataRemoveUpdates, force);
```
+  API の詳細については、「*AWS SDK for Java 2.x API リファレンス*」の「[UpdateImageSetMetadata](https://docs.aws.amazon.com/goto/SdkForJavaV2/medical-imaging-2023-07-19/UpdateImageSetMetadata)」を参照してください。
 GitHub には、その他のリソースもあります。用例一覧を検索し、[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/medicalimaging#code-examples)での設定と実行の方法を確認してください。

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

**SDK for JavaScript (v3)**  

```
import { UpdateImageSetMetadataCommand } from "@aws-sdk/client-medical-imaging";
import { medicalImagingClient } from "../libs/medicalImagingClient.js";

/**
 * @param {string} datastoreId - The ID of the HealthImaging data store.
 * @param {string} imageSetId - The ID of the HealthImaging image set.
 * @param {string} latestVersionId - The ID of the HealthImaging image set version.
 * @param {{}} updateMetadata - The metadata to update.
 * @param {boolean} force - Force the update.
 */
export const updateImageSetMetadata = async (
  datastoreId = "xxxxxxxxxx",
  imageSetId = "xxxxxxxxxx",
  latestVersionId = "1",
  updateMetadata = "{}",
  force = false,
) => {
  try {
    const response = await medicalImagingClient.send(
      new UpdateImageSetMetadataCommand({
        datastoreId: datastoreId,
        imageSetId: imageSetId,
        latestVersionId: latestVersionId,
        updateImageSetMetadataUpdates: updateMetadata,
        force: force,
      }),
    );
    console.log(response);
    // {
    //     '$metadata': {
    //     httpStatusCode: 200,
    //         requestId: '7966e869-e311-4bff-92ec-56a61d3003ea',
    //         extendedRequestId: undefined,
    //         cfId: undefined,
    //         attempts: 1,
    //         totalRetryDelay: 0
    // },
    //     createdAt: 2023-09-22T14:49:26.427Z,
    //     datastoreId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    //     imageSetId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    //     imageSetState: 'LOCKED',
    //     imageSetWorkflowStatus: 'UPDATING',
    //     latestVersionId: '4',
    //     updatedAt: 2023-09-27T19:41:43.494Z
    // }
    return response;
  } catch (err) {
    console.error(err);
  }
};
```
ユースケース 1: 属性を挿入または更新し、強制的に更新します。  

```
    const insertAttributes = JSON.stringify({
      SchemaVersion: 1.1,
      Study: {
        DICOM: {
          StudyDescription: "CT CHEST",
        },
      },
    });

    const updateMetadata = {
      DICOMUpdates: {
        updatableAttributes: new TextEncoder().encode(insertAttributes),
      },
    };

    await updateImageSetMetadata(
      datastoreID,
      imageSetID,
      versionID,
      updateMetadata,
      true,
    );
```
ユースケース 2: 属性を削除します。  

```
    // Attribute key and value must match the existing attribute.
    const remove_attribute = JSON.stringify({
      SchemaVersion: 1.1,
      Study: {
        DICOM: {
          StudyDescription: "CT CHEST",
        },
      },
    });

    const updateMetadata = {
      DICOMUpdates: {
        removableAttributes: new TextEncoder().encode(remove_attribute),
      },
    };

    await updateImageSetMetadata(
      datastoreID,
      imageSetID,
      versionID,
      updateMetadata,
    );
```
ユースケース 3: インスタンスを削除します。  

```
    const remove_instance = JSON.stringify({
      SchemaVersion: 1.1,
      Study: {
        Series: {
          "1.1.1.1.1.1.12345.123456789012.123.12345678901234.1": {
            Instances: {
              "1.1.1.1.1.1.12345.123456789012.123.12345678901234.1": {},
            },
          },
        },
      },
    });

    const updateMetadata = {
      DICOMUpdates: {
        removableAttributes: new TextEncoder().encode(remove_instance),
      },
    };

    await updateImageSetMetadata(
      datastoreID,
      imageSetID,
      versionID,
      updateMetadata,
    );
```
ユースケース 4: 以前のバージョンに戻します。  

```
    const updateMetadata = {
      revertToVersionId: "1",
    };

    await updateImageSetMetadata(
      datastoreID,
      imageSetID,
      versionID,
      updateMetadata,
    );
```
+  API の詳細については、「*AWS SDK for JavaScript API リファレンス*」の「[UpdateImageSetMetadata](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/medical-imaging/command/UpdateImageSetMetadataCommand)」を参照してください。
 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 update_image_set_metadata(
        self, datastore_id, image_set_id, version_id, metadata, force=False
    ):
        """
        Update the metadata of an image set.

        :param datastore_id: The ID of the data store.
        :param image_set_id: The ID of the image set.
        :param version_id: The ID of the image set version.
        :param metadata: The image set metadata as a dictionary.
            For example {"DICOMUpdates": {"updatableAttributes":
            "{\"SchemaVersion\":1.1,\"Patient\":{\"DICOM\":{\"PatientName\":\"Garcia^Gloria\"}}}"}}
        :param: force: Force the update.
        :return: The updated image set metadata.
        """
        try:
            updated_metadata = self.health_imaging_client.update_image_set_metadata(
                imageSetId=image_set_id,
                datastoreId=datastore_id,
                latestVersionId=version_id,
                updateImageSetMetadataUpdates=metadata,
                force=force,
            )
        except ClientError as err:
            logger.error(
                "Couldn't update image set metadata. Here's why: %s: %s",
                err.response["Error"]["Code"],
                err.response["Error"]["Message"],
            )
            raise
        else:
            return updated_metadata
```
次のコードは MedicalImagingWrapper オブジェクトをインスタンス化します。  

```
    client = boto3.client("medical-imaging")
    medical_imaging_wrapper = MedicalImagingWrapper(client)
```
ユースケース 1: 属性を挿入または更新します。  

```
            attributes = """{
                    "SchemaVersion": 1.1,
                    "Study": {
                        "DICOM": {
                            "StudyDescription": "CT CHEST"
                        }
                    }
                }"""
            metadata = {"DICOMUpdates": {"updatableAttributes": attributes}}

            self.update_image_set_metadata(
                data_store_id, image_set_id, version_id, metadata, force
            )
```
ユースケース 2: 属性を削除します。  

```
            # Attribute key and value must match the existing attribute.
            attributes = """{
                    "SchemaVersion": 1.1,
                    "Study": {
                        "DICOM": {
                            "StudyDescription": "CT CHEST"
                        }
                    }
                }"""
            metadata = {"DICOMUpdates": {"removableAttributes": attributes}}

            self.update_image_set_metadata(
                data_store_id, image_set_id, version_id, metadata, force
            )
```
ユースケース 3: インスタンスを削除します。  

```
            attributes = """{
                    "SchemaVersion": 1.1,
                    "Study": {
                        "Series": {
                            "1.1.1.1.1.1.12345.123456789012.123.12345678901234.1": {
                                "Instances": {
                                    "1.1.1.1.1.1.12345.123456789012.123.12345678901234.1": {}
                                }
                            }
                        }
                    }
                }"""
            metadata = {"DICOMUpdates": {"removableAttributes": attributes}}

            self.update_image_set_metadata(
                data_store_id, image_set_id, version_id, metadata, force
            )
```
ユースケース 4: 以前のバージョンに戻します。  

```
            metadata = {"revertToVersionId": "1"}

            self.update_image_set_metadata(
                data_store_id, image_set_id, version_id, metadata, force
            )
```
+  API の詳細については、*AWS SDK for Python (Boto3) API リファレンス*の「[UpdateImageSetMetadata](https://docs.aws.amazon.com/goto/boto3/medical-imaging-2023-07-19/UpdateImageSetMetadata)」を参照してください。
 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**  

```
    TRY.
        " iv_datastore_id = '1234567890123456789012345678901234567890'
        " iv_image_set_id = '1234567890123456789012345678901234567890'
        " iv_latest_version_id = '1'
        " iv_force = abap_false
        oo_result = lo_mig->updateimagesetmetadata(
          iv_datastoreid = iv_datastore_id
          iv_imagesetid = iv_image_set_id
          iv_latestversionid = iv_latest_version_id
          io_updateimagesetmetupdates = io_metadata_updates
          iv_force = iv_force ).
        DATA(lv_new_version) = oo_result->get_latestversionid( ).
        MESSAGE |Image set metadata updated to version: { lv_new_version }.| 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_migservicequotaexcdex.
        MESSAGE 'Service quota exceeded.' TYPE 'I'.
      CATCH /aws1/cx_migthrottlingex.
        MESSAGE 'Request throttled.' TYPE 'I'.
      CATCH /aws1/cx_migvalidationex.
        MESSAGE 'Validation error.' TYPE 'I'.
    ENDTRY.
```
+  API の詳細については、 *AWS SDK for SAP ABAP API リファレンス*の[UpdateImageSetMetadata](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html)」を参照してください。
 GitHub には、その他のリソースもあります。用例一覧を検索し、[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/mig#code-examples)での設定と実行の方法を確認してください。

------

**可用性の例**  
必要なものが見つからなかった場合。このページの右側サイドバーにある**フィードバックを提供する**リンクを使用して、コード例をリクエストします。

、、および `DeleteImageSet` APIs を使用して、イメージセット間で SOP インスタンスを移動したり、メタデータ要素の競合を解決したり`CopyImageSet``UpdateImageSetMetadata`、プライマリイメージセットからインスタンスを追加または削除したりできます。

`DeleteImageSet` アクションを使用して、プライマリコレクションからイメージセットを削除できます。

## プライマリイメージセットのメタデータを更新するには
<a name="w2aac31c19c17b5"></a>

1. CopyImageSet アクションを使用して、変更するプライマリイメージセットのコピーである非プライマリイメージセットを作成します。これを非プライマリイメージセット ID `103785414bc2c89330f7ce51bbd13f7a`として返すとします。

   ```
             aws medical-imaging copy-image-set --datastore-id 
             a8d19e7875e1532d9b5652f6b25e12c9 --source-image-set-id 
             0778b83b36eced0b76752bfe32192fb7 --copy-image-set-information 
             '{"sourceImageSet": {"latestVersionId": "1" }}' --region us-west-2
   ```

1. UpdateImageSetMetadata アクションを使用して、非プライマリイメージセット を変更します`(103785414bc2c89330f7ce51bbd13f7a)`。例えば、 PatientID の変更などです。

   ```
   aws medical-imaging update-image-set-metadata \
       --region us-west-2 \
       --datastore-id a8d19e7875e1532d9b5652f6b25e12c9 \
       --image-set-id 103785414bc2c89330f7ce51bbd13f7a \
       --latest-version-id 1 \
       --cli-binary-format raw-in-base64-out \
       --update-image-set-metadata-updates '{
       "DICOMUpdates": {
         "updatableAttributes": "{\"SchemaVersion\":1.1,\"Patient\":
         {\"DICOM\":{\"PatientID\":\"1234\"}}}"
       }
     }'
   ```

1. 変更するプライマリイメージセットを削除します。

   ```
   aws medical-imaging delete-image-set --datastore-
             id a8d19e7875e1532d9b5652f6b25e12c9 --image-set-
             id 0778b83b36eced0b76752bfe32192fb7
   ```

1. 引数で CopyImageSet アクション`--promoteToPrimary`を使用して、更新されたイメージセットをプライマリコレクションに追加します。

   ```
   aws medical-imaging copy-image-set --datastore-
             id a8d19e7875e1532d9b5652f6b25e12c9 --source-image-set-
             id 103785414bc2c89330f7ce51bbd13f7a --copy-image-set-information 
             '{"sourceImageSet": {"latestVersionId": "2" }}' --region us-west-2 --
             promote-to-primary
   ```

1. プライマリ以外のイメージセットを削除します。

   ```
   aws medical-imaging delete-image-set --datastore-
             id a8d19e7875e1532d9b5652f6b25e12c9 --image-set-
             id 103785414bc2c89330f7ce51bbd13f7a
   ```

## プライマリ以外のイメージセットをプライマリにするには
<a name="w2aac31c19c17b7"></a>

1. UpdateImageSetMetadata アクションを使用して、既存のプライマリイメージセットとの競合を解決します。

   ```
   aws medical-imaging update-image-set-metadata \
       --region us-west-2 \
       --datastore-id a8d19e7875e1532d9b5652f6b25e12c9 \
       --image-set-id 103785414bc2c89330f7ce51bbd13f7a \
       --latest-version-id 1 \
       --cli-binary-format raw-in-base64-out \
       --update-image-set-metadata-updates '{
       "DICOMUpdates": {
         "updatableAttributes": "{\"SchemaVersion\":1.1,\"Patient\":{\"DICOM\":
         {\"PatientID\":\"1234\"}}}"
       }
     }'
   ```

1. 競合が解決したら、CopyImageSet アクションを 引数とともに使用`--promoteToPrimary`して、イメージセットをプライマリイメージセットコレクションに追加します。

   ```
   aws medical-imaging copy-image-set --datastore-
             id a8d19e7875e1532d9b5652f6b25e12c9 --source-image-set-
             id 103785414bc2c89330f7ce51bbd13f7a --copy-image-set-information 
             '{"sourceImageSet": {"latestVersionId": "2" }}' --region us-west-2 --
             promote-to-primary
   ```

1. CopyImageSet アクションが成功したことを確認したら、ソースの非プライマリイメージセットを削除します。

   ```
   aws medical-imaging delete-image-set --datastore-
             id a8d19e7875e1532d9b5652f6b25e12c9 --image-set-
             id 103785414bc2c89330f7ce51bbd13f7a
   ```