Skip to content

feat: vista previa de informes medicos en la ficha del estudiante (RF09)

belen.varsi requested to merge feature/vista-previa-informes into dev

Qué se hizo

En la pestaña "Informes médicos" de la ficha del estudiante, ahora se puede ver un informe (vista previa) sin descargarlo, como pide el RF09 ("adjuntar archivos ... con tamaño máximo y vista previa cuando aplique").

Por qué

El link del informe abría una pestaña nueva, pero el backend respondía con attachment, así que el navegador descargaba el archivo en lugar de mostrarlo. No había vista previa.

Cambios (components/students/MedicalReportsPanel.tsx)

  • El nombre del informe abre la vista previa en una pestaña nueva, pidiendo el archivo con ?inline=true. El navegador lo muestra con su visor de PDF o de imágenes.
  • Botón "Descargar" al lado de cada informe, para bajarlo, agrupado a la derecha con el de eliminar.
  • ¿Por qué una pestaña y no un modal dentro de la página? La política de seguridad del frontend (CSP en next.config.ts) no permite embeber PDFs (object-src 'none', frame-src solo para Google). Abriéndolo en una pestaña aparte no hace falta aflojar esas reglas.

Dependencia

Necesita el MR de backend !96, que agrega ?inline=true al endpoint de descarga. Mientras ese no esté mergeado no se rompe nada: el link de vista previa sigue descargando el archivo, como hasta ahora.

Cómo probar (con el !96 mergeado)

  1. Abrir la ficha de un estudiante con informes → pestaña "Informes médicos".
  2. Hacer clic en el nombre de un PDF → se abre en una pestaña nueva, en el visor del navegador.
  3. Lo mismo con un JPG o PNG → se ve la imagen.
  4. Botón de descarga → se baja el archivo.
  5. Con permiso de eliminar, el botón de eliminar sigue al lado del de descarga y funciona igual que antes.

Verificación

Typecheck y lint pasan.

🗄️ Cambios en la base de datos

Ninguno.

Merge request reports

Loading