Sono disponibili altri esempi per SDK AWS nel repository GitHub della documentazione degli esempi per SDK AWS
Utilizzare UpdateImageSetMetadata con un SDK AWS o una CLI
Gli esempi di codice seguenti mostrano come utilizzare UpdateImageSetMetadata.
- CLI
-
- AWS CLI
-
Esempio 1: come inserire o aggiornare un attributo nei metadati del set di immagini.
L’esempio
update-image-set-metadataseguente inserisce o aggiorna un attributo nei metadati del set di immagini.aws 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.jsonContenuto di
metadata-updates.json{ "DICOMUpdates": { "updatableAttributes": "{\"SchemaVersion\":1.1,\"Patient\":{\"DICOM\":{\"PatientName\":\"MX^MX\"}}}" } }Output:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Esempio 2: come rimuovere un attributo dai metadati del set di immagini.
L’esempio
update-image-set-metadataseguente rimuove un attributo dai metadati del set di immagini.aws 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.jsonContenuto di
metadata-updates.json{ "DICOMUpdates": { "removableAttributes": "{\"SchemaVersion\":1.1,\"Study\":{\"DICOM\":{\"StudyDescription\":\"CHEST\"}}}" } }Output:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Esempio 3: come rimuovere un’istanza dai metadati del set di immagini.
L’esempio
update-image-set-metadataseguente rimuove un’istanza dai metadati del set di immagini.aws 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.jsonContenuto di
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\": {}}}}}}" } }Output:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Esempio 4: come ripristinare la versione precedente di un set di immagini.
L’esempio
update-image-set-metadataseguente ripristina la versione precedente di un set di immagini. Le azioni CopyImageSet e UpdateImageSetMetadata creano nuove versioni dei set di immagini.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"}'Output:
{ "datastoreId": "12345678901234567890123456789012", "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "latestVersionId": "4", "imageSetState": "LOCKED", "imageSetWorkflowStatus": "UPDATING", "createdAt": 1680027126.436, "updatedAt": 1680042257.908 }Esempio 5: come aggiungere un elemento di dati DICOM privato a un’istanza.
L’esempio
update-image-set-metadataseguente aggiunge un elemento privato a un’istanza specificata all’interno di un set di immagini. Lo standard DICOM consente di utilizzare elementi di dati privati nella comunicazione di informazioni che non possono essere contenute in elementi di dati standard. Puoi creare, aggiornare ed eliminare elementi di dati privati con l’azione 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.jsonContenuto di
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\"}}}}}}}" } }Output:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Esempio 6: come aggiornare un elemento di dati DICOM privato a un’istanza.
L’esempio
update-image-set-metadataseguente aggiorna il valore di un elemento dati privato appartenente a un’istanza all’interno di un set di immagini.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.jsonContenuto di
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\"}}}}}}}" } }Output:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Esempio 7: come aggiornare SOPInstanceUID con il parametro force.
L’esempio
update-image-set-metadataseguente aggiorna SOPInstanceUID, utilizzando il parametro force per sovrascrivere i vincoli dei metadati 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.jsonContenuto di
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\"}}}}}}}" } }Output:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }Per ulteriori informazioni, consulta Updating image set metadata nella Guida per gli sviluppatori di AWS HealthImaging.
-
Per informazioni dettagliate sull’API, consulta UpdateImageSetMetadata
in AWS CLI Command Reference.
-
- Java
-
- SDK per 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 d’uso 1: inserisce o aggiorna un attributo.
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 d’uso 2: rimuove un attributo.
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 d’uso 3: rimuove un’istanza.
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 d’uso 4: ripristina una versione precedente.
// 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);-
Per informazioni dettagliate sull’API, consulta UpdateImageSetMetadata nella documentazione di riferimento dell’API AWS SDK for Java 2.x.
Nota
Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS
. -
- JavaScript
-
- SDK per 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 d’uso 1: inserisce o aggiorna un attributo e forza l’aggiornamento.
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 d’uso 2: rimuove un attributo.
// 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 d’uso 3: rimuove un’istanza.
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 d’uso 4: ripristina una versione precedente.
const updateMetadata = { revertToVersionId: "1", }; await updateImageSetMetadata( datastoreID, imageSetID, versionID, updateMetadata, );-
Per informazioni dettagliate sull’API, consulta UpdateImageSetMetadata nella documentazione di riferimento dell’API AWS SDK per JavaScript.
Nota
Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS
. -
- Python
-
- SDK per 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_metadataIl codice seguente crea un’istanza dell’oggetto MedicalImagingWrapper.
client = boto3.client("medical-imaging") medical_imaging_wrapper = MedicalImagingWrapper(client)Caso d’uso 1: inserisce o aggiorna un attributo.
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 d’uso 2: rimuove un attributo.
# 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 d’uso 3: rimuove un’istanza.
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 d’uso 4: ripristina una versione precedente.
metadata = {"revertToVersionId": "1"} self.update_image_set_metadata( data_store_id, image_set_id, version_id, metadata, force )-
Per informazioni dettagliate sull’API, consulta UpdateImageSetMetadata nella documentazione di riferimento dell’API AWS SDK per Python (Boto3).
Nota
Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS
. -