Fotografía del Paciente

Creada por Wenderson Cotta Sansão, Modificado el Jue., 11 Jun. a las 5:04 P. M. por Wenderson Cotta Sansão

Antes del envío es necesario que exista un paciente registrado en el sistema. Para ello, puede utilizar el ID de un paciente existente o crear uno nuevo mediante la API.


El envío de la fotografía del paciente se realiza directamente al storage y luego debe vincularse al paciente.


La solicitud debe realizarse a la URL:

https://max.cfaz.net/api/v1/patient_data/signed_url

El cuerpo de la solicitud debe contener los siguientes parámetros:


patient_id → ID del paciente

file_name → Nombre del archivo

file_size  Tamaño del archivo en bytes

checksum  Suma de verificación del archivo (MD5 codificado en Base64).

width_px  Ancho de la imagen, en píxeles.

height_px  Alto de la imagen, en píxeles.

content_type  Tipo del archivo (ej.: image/jpeg).


Cálculo del checksum:

El cálculo del checksum debe realizarse de la siguiente manera:

  1. Leer el contenido binario del archivo (no en texto, sino los bytes)
  2. Calcular el hash MD5 de ese contenido.
  3. Codificar el resultado en Base64 (no en hexadecimal).
  4. Enviar ese valor como checksum.


Límites y formatos:

La foto debe cumplir los siguientes requisitos para ser asignada al paciente:

  • Tamaño máximo: 5 MB
  • Tipo de archivo: bmp, jpg, jpeg, png y gif


Ejemplo con CURL:


curl -X POST 'https://max.cfaz.net/api/v1/patient_data/signed_url' \
    -H "Authorization: Bearer 62ed05b2bd52b20e5a1eff01a0b862e6" \
    -d 'patient_id="473804"' \
    -d'file_name="arquivo_exemplo.jpg"' \
    -d 'file_size="128981"' \
    -d 'checksum="5CYlBkMef+iuCXvmrcYaLg=="' \
    -d 'width_px="870"' \
    -d 'height_px="956"' \
    -d 'content_type="image/jpeg"'

El retorno esperado es:

{
  "id": 473804,
  "headers": {
    "Content-MD5": "5CYlBkMef+iuCXvmrcYaLg==",
    "Content-Disposition": "inline; filename=\"arquivo_exemplo.jpg\"; filename*=UTF-8''arquivo_exemplo.jpg",
    "Cache-Control": "public, max-age=31536000, immutable"
  },
  "signed_id": "eyJfcmFpbHMiOnsiZGF0YSI6MTI4MjE4NSwicHVyIjoiYmxvYl9pZCJ9fQ==--fa7c81fd8e35a9cee73a68d614379e9bc910b3d9",
  "signed_url": "https://storage.googleapis.com/....",
  "download_url": "https://storage.googleapis.com/..."
}

Cada campo contiene la siguiente información:

  • ID → Identificador único del paciente en el sistema.
  • headers → Encabezados HTTP a utilizar al enviar la imagen al storage.
  • signed_id → Identificador criptográficamente firmado para un ActiveStorage::Blob o ActiveStorage::Attachment, referente a la imagen.
  • signed_url → URL para el envío de la imagen.
  • download_url → URL para la descarga de la imagen con validez de 1 hora


Con esta información es necesario enviar la fotografía al Storage:


Ejemplo con CURL:


curl -X PUT "https://storage.googleapis.com/..." \
  -H "Content-MD5: 5CYlBkMef+iuCXvmrcYaLg==" \
  -H "Content-Disposition: inline; filename=\"arquivo_exemplo.jpg\"; filename*=UTF-8''arquivo_exemplo.jpg" \
  -H "Cache-Control: public, max-age=31536000, immutable" \
  --upload-file "arquivo_exemplo.jpg"

Tras completar el envío, es necesario actualizar el sistema asociando el signed_id al paciente correspondiente, para permitir que el sistema encuentre la imagen correctamente.


Para actualizar la foto del paciente es necesario realizar un update en el paciente correspondiente e informar el signed_id en el campo patient_datum[picture].


Ejemplo con CURL:


curl -X PUT 'https://max.cfaz.net/api/v1/patient_data/<id_do_paciente>' \
  -H "Authorization: Bearer 62ed05b2bd52b20e5a1eff01a0b862e6" \
  -d 'patient_datum[picture]="eyJfcmFpbHMiOnsiZGF0YSI6MTI4MjE4NSwicHVyIjoiYmxvYl9pZCJ9fQ==--fa7c81fd8e35a9cee73a68d614379e9bc910b3d9"'






¿Le fue útil este artículo?

¡Qué bueno!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Díganos cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
La verificación de CAPTCHA es obligatoria.

Comentarios enviados

Agradecemos su iniciativa, e intentaremos corregir el artículo