Hay más ejemplos de AWS SDK disponibles en el repositorio de GitHub de ejemplos de AWS SDK de documentos
Uso de UpdateImageSetMetadata con un SDK de AWS o la CLI
Los siguientes ejemplos de código muestran cómo utilizar UpdateImageSetMetadata.
- CLI
-
- AWS CLI
-
Ejemplo 1: insertar o actualizar un atributo en los metadatos del conjunto de imágenes
El siguiente ejemplo de
update-image-set-metadatainserta o actualiza un atributo en los metadatos del conjunto de imágenesaws medical-imaging update-image-set-metadata \ --datastore-id12345678901234567890123456789012\ --image-set-idea92b0d8838c72a3f25d00d13616f87e\ --latest-version-id1\ --cli-binary-formatraw-in-base64-out\ --update-image-set-metadata-updatesfile://metadata-updates.jsonContenido de
metadata-updates.json{ "DICOMUpdates": { "updatableAttributes": "{\"SchemaVersion\":1.1,\"Patient\":{\"DICOM\":{\"PatientName\":\"MX^MX\"}}}" } }Salida:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Ejemplo 2: eliminar un atributo de los metadatos del conjunto de imágenes
El siguiente ejemplo de
update-image-set-metadataelimina un atributo de los metadatos del conjunto de imágenesaws medical-imaging update-image-set-metadata \ --datastore-id12345678901234567890123456789012\ --image-set-idea92b0d8838c72a3f25d00d13616f87e\ --latest-version-id1\ --cli-binary-formatraw-in-base64-out\ --update-image-set-metadata-updatesfile://metadata-updates.jsonContenido de
metadata-updates.json{ "DICOMUpdates": { "removableAttributes": "{\"SchemaVersion\":1.1,\"Study\":{\"DICOM\":{\"StudyDescription\":\"CHEST\"}}}" } }Salida:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Ejemplo 3: eliminar una instancia de los metadatos del conjunto de imágenes
El siguiente ejemplo de
update-image-set-metadataelimina una instancia de los metadatos del conjunto de imágenesaws medical-imaging update-image-set-metadata \ --datastore-id12345678901234567890123456789012\ --image-set-idea92b0d8838c72a3f25d00d13616f87e\ --latest-version-id1\ --cli-binary-formatraw-in-base64-out\ --update-image-set-metadata-updatesfile://metadata-updates.jsonContenido de
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\": {}}}}}}" } }Salida:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Ejemplo 4: revertir un conjunto de imágenes a una versión anterior
El siguiente ejemplo de
update-image-set-metadatamuestra cómo revertir un conjunto de imágenes a una versión anterior. Las acciones CopyImageSet y UpdateImageSetMetadata crean nuevas versiones de los conjuntos de imágenes.aws medical-imaging update-image-set-metadata \ --datastore-id12345678901234567890123456789012\ --image-set-id53d5fdb05ca4d46ac7ca64b06545c66e\ --latest-version-id3\ --cli-binary-formatraw-in-base64-out\ --update-image-set-metadata-updates '{"revertToVersionId": "1"}'Salida:
{ "datastoreId": "12345678901234567890123456789012", "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "latestVersionId": "4", "imageSetState": "LOCKED", "imageSetWorkflowStatus": "UPDATING", "createdAt": 1680027126.436, "updatedAt": 1680042257.908 }Ejemplo 5: añadir un elemento de datos DICOM privado a una instancia
El siguiente ejemplo de
update-image-set-metadatamuestra cómo añadir un elemento privado a una instancia específica en un conjunto de imágenes. El estándar DICOM permite que los elementos de datos privados comuniquen información que no puede estar contenida en elementos de datos estándar. Puede crear, actualizar y eliminar elementos de datos privados con la acción UpdateImageSetMetadata.aws medical-imaging update-image-set-metadata \ --datastore-id12345678901234567890123456789012\ --image-set-id53d5fdb05ca4d46ac7ca64b06545c66e\ --latest-version-id1\ --cli-binary-formatraw-in-base64-out\ --force \ --update-image-set-metadata-updatesfile://metadata-updates.jsonContenido de
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\"}}}}}}}" } }Salida:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Ejemplo 6: actualizar un elemento de datos DICOM privado a una instancia
El siguiente ejemplo de
update-image-set-metadatamuestra cómo actualizar el valor de un elemento de datos privado que pertenece a una instancia en un conjunto de imágenes.aws medical-imaging update-image-set-metadata \ --datastore-id12345678901234567890123456789012\ --image-set-id53d5fdb05ca4d46ac7ca64b06545c66e\ --latest-version-id1\ --cli-binary-formatraw-in-base64-out\ --force \ --update-image-set-metadata-updatesfile://metadata-updates.jsonContenido de
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\"}}}}}}}" } }Salida:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Ejemplo 7: actualizar un SOPInstanceUID con el parámetro force
En el siguiente ejemplo de
update-image-set-metadata, se muestra cómo actualizar un SOPInstanceUID mediante el parámetro force para anular las restricciones de metadatos de DICOM.aws medical-imaging update-image-set-metadata \ --datastore-id12345678901234567890123456789012\ --image-set-id53d5fdb05ca4d46ac7ca64b06545c66e\ --latest-version-id1\ --cli-binary-formatraw-in-base64-out\ --force \ --update-image-set-metadata-updatesfile://metadata-updates.jsonContenido de
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\"}}}}}}}" } }Salida:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Para obtener más información, consulte Updating image set metadata en la Guía para desarrolladores de AWS HealthImaging.
-
Para obtener información sobre la API, consulte UpdateImageSetMetadata
en la Referencia de comandos de la AWS CLI.
-
- Java
-
- SDK para 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; } }Caso de uso 1: Insertar o actualizar un atributo.
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);Caso de uso 2: Eliminar un atributo.
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);Caso de uso 3: Eliminar una instancia.
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);Caso de uso 4: Revertir a una versión anterior.
// 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);-
Para obtener información sobre la API, consulte UpdateImageSetMetadata en la Referencia de la API de AWS SDK for Java 2.x.
nota
Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. -
- JavaScript
-
- SDK para 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); } };Caso de uso 1: Insertar o actualizar un atributo y forzar la actualización.
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, );Caso de uso 2: Eliminar un atributo.
// 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, );Caso de uso 3: Eliminar una instancia.
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, );Caso de uso 4: Revertir a una versión anterior.
const updateMetadata = { revertToVersionId: "1", }; await updateImageSetMetadata( datastoreID, imageSetID, versionID, updateMetadata, );-
Para obtener información sobre la API, consulte UpdateImageSetMetadata en la Referencia de la API de AWS SDK para JavaScript.
nota
Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. -
- Python
-
- SDK para 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_metadataEl código siguiente crea una instancia del objeto MedicalImagingWrapper.
client = boto3.client("medical-imaging") medical_imaging_wrapper = MedicalImagingWrapper(client)Caso de uso 1: Insertar o actualizar un atributo.
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 )Caso de uso 2: Eliminar un atributo.
# 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 )Caso de uso 3: Eliminar una instancia.
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 )Caso de uso 4: Revertir a una versión anterior.
metadata = {"revertToVersionId": "1"} self.update_image_set_metadata( data_store_id, image_set_id, version_id, metadata, force )-
Para obtener información sobre la API, consulte UpdateImageSetMetadata en la Referencia de la API de AWS SDK para Python (Boto3).
nota
Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. -