

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Almacenamiento de instancias con STOW-RS
<a name="dicomweb-storing"></a>

AWS HealthImaging ofrece una representación de los datos [https://www.dicomstandard.org/using/dicomweb/store-stow-rs](https://www.dicomstandard.org/using/dicomweb/store-stow-rs) APIs para importar. APIs Utilícelas para almacenar de forma sincrónica los datos DICOM en su almacén de HealthImaging datos.

En la siguiente tabla se describen las HealthImaging representaciones del DICOMweb STOW-RS APIs disponibles para importar datos.


**HealthImaging representaciones de STOW-RS DICOMweb APIs**  

| Name | Description (Descripción) | 
| --- | --- | 
| StoreDICOM | Almacene una o más instancias en un banco de HealthImaging datos. | 
| StoreDICOMStudy | Almacene una o más instancias correspondientes a un UID de instancia de estudio específico en un banco de HealthImaging datos. | 

[Los datos importados con las `StoreDICOMStudy` acciones `StoreDICOM` y se organizarán como nuevos conjuntos de imágenes principales o se agregarán a los conjuntos de imágenes principales existentes, utilizando la misma lógica que los trabajos de importación asíncrona.](https://docs.aws.amazon.com/healthimaging/latest/devguide/understanding-import-jobs.html) [Si los elementos de metadatos de los datos del DICOM P10 recién importados entran en conflicto con los conjuntos de [imágenes principales existentes, los nuevos datos se añadirán a los conjuntos](https://docs.aws.amazon.com/healthimaging/latest/devguide/getting-started-concepts.html#concept-image-set) de imágenes no principales.](https://docs.aws.amazon.com/healthimaging/latest/devguide/getting-started-concepts.html#concept-image-set)

**nota**  
Estas acciones permiten cargar hasta 1 GB de datos DICOM por solicitud.
La respuesta de la API estará en formato JSON, de conformidad con el estándar STOW-RS. DICOMweb 

**Para iniciar una solicitud StoredIcom**  


1. Recopile su región de AWS y el nombre del archivo DICOM P10. HealthImaging `datastoreId`

1. Cree una URL para la solicitud del formulario: `https://dicom-medical-imaging.region.amazonaws.com/datastore/datastore-id/studies`

1. Determine la longitud del contenido del archivo DICOM P10 mediante el comando que prefiera, por ejemplo. `$(stat -f %z $FILENAME)`

1. Prepare y envíe su solicitud. `StoreDICOM`utiliza una solicitud HTTP POST con el protocolo de [firma AWS Signature versión 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html).

 

**Example Ejemplo 1: Para almacenar un archivo DICOM P10 mediante la acción `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 Ejemplo 2: Para almacenar un archivo DICOM P10 mediante la acción `StoreDICOMStudy`**  
La única diferencia entre StoreDICOM y Store DICOMStudy es que se pasa un UID de instancia de estudio como parámetro a Store DICOMStudy y las instancias cargadas deben ser miembros del estudio especificado.  

```
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 Ejemplo 3: almacenar archivos DICOM P10 con una carga HTTP de varias partes**  
Se pueden cargar varios archivos P10 con una sola acción de carga de varias partes. Los siguientes comandos de shell muestran cómo ensamblar una carga útil de varias partes que contiene dos archivos P10 y cómo cargarla con la acción. `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
```