

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Archiviazione delle istanze con STOW-RS
<a name="dicomweb-storing"></a>

AWS HealthImaging offre una rappresentazione dei dati [https://www.dicomstandard.org/using/dicomweb/store-stow-rs](https://www.dicomstandard.org/using/dicomweb/store-stow-rs) APIs per l'importazione. Usali APIs per archiviare in modo sincrono i dati DICOM nel tuo HealthImaging data store.

La tabella seguente descrive le HealthImaging rappresentazioni di DICOMweb STOW-RS disponibili per l'importazione APIs di dati.


**HealthImaging rappresentazioni di STOW-RS DICOMweb APIs**  

| Nome | Description | 
| --- | --- | 
| StoreDICOM | Memorizza una o più istanze in un archivio dati. HealthImaging  | 
| StoreDICOMStudy | Memorizza una o più istanze corrispondenti a uno Study Instance UID specificato in un HealthImaging data store. | 

[I dati importati con le `StoreDICOMStudy` azioni `StoreDICOM` and verranno organizzati come nuovi set di immagini primarie o aggiunti ai set di immagini primarie esistenti, utilizzando la stessa logica dei lavori di importazione asincroni.](https://docs.aws.amazon.com/healthimaging/latest/devguide/understanding-import-jobs.html) [Se gli elementi di metadati dei dati DICOM P10 appena importati sono in conflitto con i set di [immagini primarie esistenti, i nuovi dati verranno aggiunti ai set](https://docs.aws.amazon.com/healthimaging/latest/devguide/getting-started-concepts.html#concept-image-set) di immagini non primari.](https://docs.aws.amazon.com/healthimaging/latest/devguide/getting-started-concepts.html#concept-image-set)

**Nota**  
Queste azioni supportano il caricamento di un massimo di 1 GB di dati DICOM per richiesta.
La risposta dell'API sarà in formato JSON, conforme allo standard STOW-RS. DICOMweb 

**Per avviare una richiesta StorediCom**  


1. Raccogli la tua regione AWS e il nome del file DICOM P10. HealthImaging `datastoreId`

1. Crea un URL per la richiesta del modulo: `https://dicom-medical-imaging.{{region}}.amazonaws.com/datastore/{{datastore-id}}/studies`

1. Determina la lunghezza del contenuto del file DICOM P10 usando il tuo comando preferito, ad esempio. `$(stat -f %z $FILENAME)`

1. Prepara e invia la tua richiesta. `StoreDICOM`utilizza una richiesta HTTP POST con il protocollo di [firma AWS Signature versione 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html).

 

**Example Esempio 1: per memorizzare un file DICOM P10 utilizzando l'azione `StoreDICOM`**  

```
curl -X POST -v \
  'https://dicom-medical-imaging.us-east-1.amazonaws.com/datastore/d9a2a515ab294163a2d2f4069eed584c/studies' \
  --aws-sigv4 "aws:amz:$AWS_REGION:medical-imaging" \
  --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
  --header "x-amz-security-token:$AWS_SESSION_TOKEN" \
  --header "x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD" \
  --header "x-amz-decoded-content-length: $CONTENT_LENGTH" \
  --header 'Accept: application/dicom+json' \
  --header "Content-Type: application/dicom" \
  --upload-file $FILENAME
```

**Example Esempio 2: Per memorizzare un file DICOM P10 utilizzando l'azione `StoreDICOMStudy`**  
L'unica differenza tra StorediCom e Store DICOMStudy è che un UID dell'istanza di studio viene passato come parametro a Store DICOMStudy e le istanze caricate devono essere membri dello studio specificato.  

```
curl -X POST -v \
  'https://dicom-medical-imaging.us-east-1.amazonaws.com/datastore/d9a2a515ab294163a2d2f4069eed584c/studies/1.3.6.1.4.1.5962.1.2.4.20040826285059.5457' \
  --aws-sigv4 "aws:amz:$AWS_REGION:medical-imaging" \
  --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
  --header "x-amz-security-token:$AWS_SESSION_TOKEN" \
  --header "x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD" \
  --header "x-amz-decoded-content-length: $CONTENT_LENGTH" \
  --header 'Accept: application/dicom+json' \
  --header "Content-Type: application/dicom" \
  --upload-file $FILENAME
```

**Example Esempio 3: per archiviare file DICOM P10 con un payload HTTP composto da più parti**  
È possibile caricare più file P10 con un'unica azione di caricamento in più parti. I seguenti comandi di shell mostrano come assemblare un payload composto da più parti contenente due file P10 e caricarlo con l'azione. `StoreDICOM`  

```
#!/bin/sh
FILENAME=multipart.payload
BOUNDARY=2a8a02b9-0ed3-c8a7-7ebd-232427531940
boundary_str="--$BOUNDARY\r\n"
mp_header="${boundary_str}Content-Type: application/dicom\r\n\r\n"

##Encapsulate the binary DICOM file 1.
printf '%b' "$mp_header" > $FILENAME
cat file1.dcm >> $FILENAME

##Encapsulate the binary DICOM file 2 (note the additional CRLF before the part header).
printf '%b' "\r\n$mp_header" >> $FILENAME
cat file2.dcm >> $FILENAME

## Add the closing boundary.
printf '%b' "\r\n--$BOUNDARY--" >> $FILENAME

## Obain the payload size in bytes.
multipart_payload_size=$(stat -f%z "$FILENAME")

# Execute CURL POST request with AWS SIGv4
curl -X POST -v \
  'https://iad-dicom.external-healthlake-imaging.ai.aws.dev/datastore/b5f34e91ca734b39a54ac11ea42416cf/studies' \
  --aws-sigv4 "aws:amz:us-east-1:medical-imaging" \
  --user "AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
  --header "x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD" \
  --header "x-amz-decoded-content-length: ${multipart_payload_size}" \
  --header 'Accept: application/dicom+json' \
  --header "Content-Type: multipart/related; type=\"application/dicom\"; boundary=\"${BOUNDARY}\"" \
  --data-binary "@$FILENAME"

# Delete the payload file
rm $FILENAME
```