Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Metadaten von Bilddatensätzen aktualisieren
Verwenden Sie die UpdateImageSetMetadata
Aktion zum Aktualisieren von Bildsatz-Metadaten in AWS HealthImaging. Sie können diesen asynchronen Prozess verwenden, um Metadatenattribute von Bilddatensätzen hinzuzufügen, zu aktualisieren und zu entfernen. Dabei handelt es sich um Manifestationen von DICOMNormalisierungselementen, die während des Imports erstellt werden. Mithilfe der UpdateImageSetMetadata
Aktion können Sie auch Serien und SOP Instanzen entfernen, um Bilddatensätze mit externen Systemen synchron zu halten und Bilddatensatz-Metadaten zu anonymisieren. Weitere Informationen finden Sie UpdateImageSetMetadata
in der AWS HealthImaging APIReferenz.
Anmerkung
DICOMImporte aus der realen Welt erfordern das Aktualisieren, Hinzufügen und Entfernen von Attributen aus den Metadaten des Bildsatzes. Beachten Sie bei der Aktualisierung von Bilddatensatz-Metadaten die folgenden Punkte:
-
Durch das Aktualisieren von Bilddatensatz-Metadaten wird eine neue Version im Verlauf des Bilddatensatzes erstellt. Weitere Informationen finden Sie unter Versionen von Bildsätzen auflisten. Verwenden Sie den optionalen
revertToVersionId
Parameter, um zu einer früheren Versions-ID des Bildsatzes zurückzukehren. -
Das Aktualisieren von Bilddatensatz-Metadaten ist ein asynchroner Prozess. Daher
imageSetState
stehenimageSetWorkflowStatus
Antwortelemente zur Verfügung, die den jeweiligen Status und Status eines Bilddatensatzes angeben, der gerade aktualisiert wird. Sie können keine anderen Schreibvorgänge an einemLOCKED
Bilddatensatz ausführen. -
Wenn die
UpdateImageSetMetadata
Aktion nicht erfolgreich ist, rufen Sie dasmessage
Antwortelement auf und überprüfen Sie escommon errors
. -
DICOMElementeinschränkungen werden auf Metadaten-Aktualisierungen angewendet. Der
force
Anforderungsparameter ermöglicht es Ihnen, Elemente in Fällen zu aktualisieren, in denen Sie sie überschreiben möchtenDICOMEinschränkungen bei Metadaten. Stellen Sie den
force
Anforderungsparameter ein, um den Abschluss derUpdateImageSetMetadata
Aktion zu erzwingen. Die Einstellung dieses Parameters ermöglicht die folgenden Aktualisierungen eines Bilddatensatzes:-
Aktualisierung der
Tag.StudyID
AttributeTag.StudyInstanceUID
Tag.SeriesInstanceUID
Tag.SOPInstanceUID
,, und -
Private DICOM Datenelemente auf Instanzebene hinzufügen, entfernen oder aktualisieren
-
Das folgende Diagramm zeigt Bilddatensatz-Metadaten, in denen sie aktualisiert werden HealthImaging.
Um Bildsatz-Metadaten zu aktualisieren
Wählen Sie je nach Ihren Zugriffspräferenzen eine Registerkarte für AWS HealthImaging.
- CLI
-
- AWS CLI
-
Beispiel 1: Um ein Attribut in Bildsatz-Metadaten einzufügen oder zu aktualisieren
Im folgenden
update-image-set-metadata
Beispiel wird ein Attribut in Bildsatz-Metadaten eingefügt oder aktualisiert.aws medical-imaging update-image-set-metadata \ --datastore-id
12345678901234567890123456789012
\ --image-set-idea92b0d8838c72a3f25d00d13616f87e
\ --latest-version-id1
\ --cli-binary-formatraw-in-base64-out
\ --update-image-set-metadata-updatesfile://metadata-updates.json
Inhalt von
metadata-updates.json
{ "DICOMUpdates": { "updatableAttributes": "{\"SchemaVersion\":1.1,\"Patient\":{\"DICOM\":{\"PatientName\":\"MX^MX\"}}}" } }
Ausgabe:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }
Beispiel 2: Um ein Attribut aus den Metadaten eines Bildsatzes zu entfernen
Im folgenden
update-image-set-metadata
Beispiel wird ein Attribut aus den Metadaten eines Bildsatzes entfernt.aws medical-imaging update-image-set-metadata \ --datastore-id
12345678901234567890123456789012
\ --image-set-idea92b0d8838c72a3f25d00d13616f87e
\ --latest-version-id1
\ --cli-binary-formatraw-in-base64-out
\ --update-image-set-metadata-updatesfile://metadata-updates.json
Inhalt von
metadata-updates.json
{ "DICOMUpdates": { "removableAttributes": "{\"SchemaVersion\":1.1,\"Study\":{\"DICOM\":{\"StudyDescription\":\"CHEST\"}}}" } }
Ausgabe:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }
Beispiel 3: Um eine Instanz aus den Metadaten eines Bildsatzes zu entfernen
Im folgenden
update-image-set-metadata
Beispiel wird eine Instanz aus den Metadaten des Bildsatzes entfernt.aws medical-imaging update-image-set-metadata \ --datastore-id
12345678901234567890123456789012
\ --image-set-idea92b0d8838c72a3f25d00d13616f87e
\ --latest-version-id1
\ --cli-binary-formatraw-in-base64-out
\ --update-image-set-metadata-updatesfile://metadata-updates.json
Inhalt von
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\": {}}}}}}" } }
Ausgabe:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "ea92b0d8838c72a3f25d00d13616f87e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }
Beispiel 4: Um einen Bildsatz auf eine frühere Version zurückzusetzen
Das folgende
update-image-set-metadata
Beispiel zeigt, wie ein Bildsatz auf eine frühere Version zurückgesetzt wird. CopyImageSet und UpdateImageSetMetadata Aktionen erstellen neue Versionen von Bilddatensätzen.aws medical-imaging update-image-set-metadata \ --datastore-id
12345678901234567890123456789012
\ --image-set-id53d5fdb05ca4d46ac7ca64b06545c66e
\ --latest-version-id3
\ --cli-binary-formatraw-in-base64-out
\ --update-image-set-metadata-updates '{"revertToVersionId": "1"}
'Ausgabe:
{ "datastoreId": "12345678901234567890123456789012", "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "latestVersionId": "4", "imageSetState": "LOCKED", "imageSetWorkflowStatus": "UPDATING", "createdAt": 1680027126.436, "updatedAt": 1680042257.908 }
Beispiel 5: Um einer Instanz ein privates DICOM Datenelement hinzuzufügen
Das folgende
update-image-set-metadata
Beispiel zeigt, wie ein privates Element zu einer angegebenen Instanz innerhalb eines Bilddatensatzes hinzugefügt wird. Der DICOM Standard erlaubt private Datenelemente für die Übertragung von Informationen, die nicht in Standarddatenelementen enthalten sein können. Mit der UpdateImageSetMetadata Aktion können Sie private Datenelemente erstellen, aktualisieren und löschen.aws medical-imaging update-image-set-metadata \ --datastore-id
12345678901234567890123456789012
\ --image-set-id53d5fdb05ca4d46ac7ca64b06545c66e
\ --latest-version-id1
\ --cli-binary-formatraw-in-base64-out
\ --force \ --update-image-set-metadata-updatesfile://metadata-updates.json
Inhalt von
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\"}}}}}}}" } }
Ausgabe:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }
Beispiel 6: Um ein privates DICOM Datenelement auf eine Instanz zu aktualisieren
Das folgende
update-image-set-metadata
Beispiel zeigt, wie der Wert eines privaten Datenelements aktualisiert wird, das zu einer Instanz innerhalb eines Bilddatensatzes gehört.aws medical-imaging update-image-set-metadata \ --datastore-id
12345678901234567890123456789012
\ --image-set-id53d5fdb05ca4d46ac7ca64b06545c66e
\ --latest-version-id1
\ --cli-binary-formatraw-in-base64-out
\ --force \ --update-image-set-metadata-updatesfile://metadata-updates.json
Inhalt von
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\"}}}}}}}" } }
Ausgabe:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }
Beispiel 7: Um a SOPInstanceUID mit dem Force-Parameter zu aktualisieren
Das folgende
update-image-set-metadata
Beispiel zeigt, wie eine aktualisiert wirdSOPInstanceUID, indem der Force-Parameter verwendet wird, um die DICOM Metadatenbeschränkungen zu überschreiben.aws medical-imaging update-image-set-metadata \ --datastore-id
12345678901234567890123456789012
\ --image-set-id53d5fdb05ca4d46ac7ca64b06545c66e
\ --latest-version-id1
\ --cli-binary-formatraw-in-base64-out
\ --force \ --update-image-set-metadata-updatesfile://metadata-updates.json
Inhalt von
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\"}}}}}}}" } }
Ausgabe:
{ "latestVersionId": "2", "imageSetWorkflowStatus": "UPDATING", "updatedAt": 1680042257.908, "imageSetId": "53d5fdb05ca4d46ac7ca64b06545c66e", "imageSetState": "LOCKED", "createdAt": 1680027126.436, "datastoreId": "12345678901234567890123456789012" }
Weitere Informationen finden Sie im AWS HealthImaging Entwicklerhandbuch unter Aktualisieren von Bilddatensatz-Metadaten.
-
APIEinzelheiten finden Sie UpdateImageSetMetadata
in der AWS CLI Befehlsreferenz.
-
- Java
-
- SDKfür 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; } }
Anwendungsfall #1: Fügen Sie ein Attribut ein oder aktualisieren Sie es.
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);
Anwendungsfall #2: Entfernen Sie ein Attribut.
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);
Anwendungsfall #3: Eine Instanz entfernen.
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);
Anwendungsfall #4: Kehren Sie zu einer früheren Version zurück.
// 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);
-
APIEinzelheiten finden Sie unter UpdateImageSetMetadata AWS SDK for Java 2.xAPIReferenz.
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. -
- JavaScript
-
- SDKfür 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); } };
Anwendungsfall #1: Fügen Sie ein Attribut ein oder aktualisieren Sie es und erzwingen Sie die Aktualisierung.
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, );
Anwendungsfall #2: Entfernen Sie ein Attribut.
// 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, );
Anwendungsfall #3: Eine Instanz entfernen.
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, );
Anwendungsfall #4: Kehren Sie zu einer früheren Version zurück.
const updateMetadata = { revertToVersionId: "1", }; await updateImageSetMetadata( datastoreID, imageSetID, versionID, updateMetadata, );
-
APIEinzelheiten finden Sie unter UpdateImageSetMetadata AWS SDK for JavaScriptAPIReferenz.
Anmerkung
Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. -
- Python
-
- SDKfür 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
Der folgende Code instanziiert das Objekt. MedicalImagingWrapper
client = boto3.client("medical-imaging") medical_imaging_wrapper = MedicalImagingWrapper(client)
Anwendungsfall #1: Fügen Sie ein Attribut ein oder aktualisieren Sie es.
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 )
Anwendungsfall #2: Entfernen Sie ein Attribut.
# 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 )
Anwendungsfall #3: Eine Instanz entfernen.
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 )
Anwendungsfall #4: Kehren Sie zu einer früheren Version zurück.
metadata = {"revertToVersionId": "1"} self.update_image_set_metadata( data_store_id, image_set_id, version_id, metadata, force )
-
APIEinzelheiten finden Sie unter UpdateImageSetMetadataPython (Boto3) API -Referenz.AWS SDK
Anmerkung
Es gibt noch mehr dazu. GitHub Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository
einrichten und ausführen. -
Beispiel für die Verfügbarkeit
Sie können nicht finden, was Sie brauchen? Fordern Sie über den Link Feedback geben unten auf dieser Seite ein Codebeispiel an.