

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Stockage d'instances avec STOW-RS
<a name="dicomweb-storing"></a>

AWS HealthImaging propose une représentation de la [https://www.dicomstandard.org/using/dicomweb/store-stow-rs](https://www.dicomstandard.org/using/dicomweb/store-stow-rs) APIs pour l'importation de données. Utilisez-les APIs pour stocker des données DICOM de manière synchrone dans votre banque de HealthImaging données.

Le tableau suivant décrit les HealthImaging représentations de DICOMweb STOW-RS APIs disponibles pour l'importation de données.


**HealthImaging représentations de DICOMweb STOW-RS APIs**  

| Nom | Description | 
| --- | --- | 
| StoreDICOM | Stockez une ou plusieurs instances dans un magasin HealthImaging de données. | 
| StoreDICOMStudy | Stockez une ou plusieurs instances correspondant à un UID d'instance d'étude spécifié dans un magasin de HealthImaging données. | 

Les données importées avec les `StoreDICOMStudy` actions `StoreDICOM` et seront organisées sous la forme de nouveaux ensembles d'images principaux ou ajoutées aux ensembles d'images principaux existants, selon la même logique que les tâches [d'importation](https://docs.aws.amazon.com/healthimaging/latest/devguide/understanding-import-jobs.html) asynchrones. [Si les éléments de métadonnées des données DICOM P10 récemment importées entrent en conflit avec les [ensembles d'images](https://docs.aws.amazon.com/healthimaging/latest/devguide/getting-started-concepts.html#concept-image-set) principaux existants, les nouvelles données seront ajoutées aux ensembles d'images non principaux.](https://docs.aws.amazon.com/healthimaging/latest/devguide/getting-started-concepts.html#concept-image-set)

**Note**  
Ces actions prennent en charge le téléchargement d'un maximum de 1 Go de données DICOM par demande.
La réponse de l'API sera au format JSON, conformément à la norme DICOMweb STOW-RS.

**Pour lancer une demande StoreDICOM**  


1. Collectez votre région AWS et HealthImaging `datastoreId` le nom de fichier DICOM P10.

1. Construisez une URL pour la demande du formulaire : `https://dicom-medical-imaging.{{region}}.amazonaws.com/datastore/{{datastore-id}}/studies`

1. Déterminez la longueur du contenu du fichier DICOM P10 à l'aide de votre commande préférée, par exemple. `$(stat -f %z $FILENAME)`

1. Préparez et envoyez votre demande. `StoreDICOM`utilise une requête HTTP POST avec le protocole de [signature AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html).

 

**Example Exemple 1 : Pour stocker un fichier DICOM P10 à l'aide de l'action `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 Exemple 2 : Pour stocker un fichier DICOM P10 à l'aide de l'action `StoreDICOMStudy`**  
La seule différence entre StoreDICom et Store DICOMStudy est qu'un UID d'instance d'étude est transmis en tant que paramètre à Store DICOMStudy et que les instances téléchargées doivent être membres de l'étude spécifiée.  

```
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 Exemple 3 : pour stocker des fichiers DICOM P10 avec une charge utile HTTP en plusieurs parties**  
Plusieurs fichiers P10 peuvent être téléchargés en une seule action de téléchargement en plusieurs parties. Les commandes shell suivantes montrent comment assembler une charge utile en plusieurs parties contenant deux fichiers P10 et comment la télécharger avec l'action. `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
```