Caso de éxito · SHCA Health Providers

Construcción de un SaaS multiinstalación de gestión de pacientes alineado con HIPAA para un grupo estadounidense de cuidado de personas mayores — Next.js + Django + PostgreSQL en AWS

Cómo UnlockLive reemplazó un conjunto de hojas de cálculo, notas en papel y herramientas de historia clínica electrónica desconectadas en 5 centros de atención a mayores por una única plataforma multiempresa alineada con HIPAA en Next.js + Django + PostgreSQL sobre AWS — reduciendo el tiempo de notas clínicas en un 70%, triplicando la velocidad de admisión y ofreciendo al operador una única fuente de verdad lista para auditoría desde el primer día.

  • SectorSaaS de salud / cuidado de personas mayores
  • Año2024
  • PaísEE. UU.
  • Duración6 meses
Building a HIPAA-Aligned Multi-Facility Patient Management SaaS for a US Senior-Care Group — Next.js + Django + PostgreSQL on AWS hero screenshot

Resultados de un vistazo

  • 70%Reducción del tiempo medio de las notas clínicas (de más de 18 min a menos de 5)
  • 3xAdmisión de pacientes más rápida en las 5 instalaciones
  • 100%Listo para auditoría: cada lectura, escritura y exportación queda registrada en un log de solo anexado
  • 5Centros de cuidado de personas mayores operativos desde el primer día del lanzamiento en producción

El reto

SHCA gestionaba decenas de centros de atención a mayores con un conjunto de hojas de Excel, notas de turno en papel y tres herramientas tipo historia clínica electrónica desconectadas — sin una fuente única de verdad para ningún paciente. Las enfermeras volvían a introducir las actualizaciones en distintos sistemas en cada turno, las familias no tenían visibilidad, los administradores no podían demostrar quién vio qué, y dar de alta un nuevo centro significaba recrear una vez más la misma frágil plantilla de Excel.

El encargo no admitía concesiones: entregar un SaaS de gestión de pacientes multicentro alineado con HIPAA en el que cualquier enfermera, médico, administrador o familiar pudiera iniciar sesión con seguridad desde el primer día — con notas clínicas basadas en plantillas, acceso a registros por roles, rastros de auditoría completos y la capacidad de incorporar un centro totalmente nuevo en minutos en lugar de semanas. Cualquier cosa menos que 'un registro, un historial, una fuente de verdad' habría entregado el mismo problema de fragmentación con mejor apariencia.

Nuestra solución

Construimos un SaaS multiempresa con Next.js + Django + PostgreSQL alojado en AWS, donde cada paciente vive en exactamente un registro y cada acción es observable, auditable y está limitada por roles.

El backend de Django expone una API de Django REST Framework con un límite estricto entre inquilinos: cada consulta se filtra por `facility_id` en la capa del ORM, de modo que una enfermera del Centro A literalmente no puede ejecutar un SELECT sobre un paciente del Centro B, ni siquiera con una URL falsificada. La autenticación basada en JWT conecta cuatro roles (médico, enfermera, administrador, familiar) con permisos por endpoint y por campo, y un único registro de solo anexado 'audit_event' captura cada lectura, escritura y exportación con `(user_id, role, facility_id, patient_id, action, timestamp, ip)`, de modo que se puede generar una auditoría alineada con HIPAA para cualquier paciente y cualquier período en segundos.

Las notas clínicas, el flujo de trabajo de mayor valor del producto, se basan en plantillas. En lugar de escribir libremente una nota SOAP de 20 minutos, la enfermera elige una plantilla, completa solo las diferencias y el sistema serializa una nota estructurada junto con un resumen legible. Entradas de texto aptas para voz, guardado automático cada 5 segundos e instantáneas adjuntables de medicación y constantes vitales reducen el tiempo medio por nota de más de 18 minutos a menos de 5.

El front-end en Next.js ofrece una experiencia de tipo SPA única para todos los roles, con navegación adaptada a cada rol, actualizaciones optimistas de pacientes y un selector interno de centros para administradores que gestionan varias sedes. Los familiares acceden a un portal de alcance muy limitado: solo ven al paciente al que están vinculados y únicamente los campos que el médico aprobó compartir.

En el lado de la infraestructura: PostgreSQL en RDS con recuperación a un punto en el tiempo automatizada, S3 con archivos adjuntos cifrados con KMS y URL firmadas con vigencia limitada (sin URL de S3 sin protección a la vista), CloudWatch + Sentry en cada endpoint, verificación automatizada de copias de seguridad nocturnas e infraestructura como código para poder levantar una segunda región sin abrir tickets al equipo de nube.

  • Registros de pacientes multiinquilino con un límite estricto de `facility_id` aplicado en la capa del ORM de Django (el acceso entre centros es imposible, no solo improbable)
  • Acceso por rol para médico, enfermera, administrador y familiar, controlado tanto a nivel de endpoint como de campo
  • Notas clínicas basadas en plantillas con guardado automático, constantes vitales y medicación adjuntables, y un resumen legible almacenado junto al JSON estructurado
  • Registro `audit_event` de solo anexado en cada lectura, escritura y exportación, consultable por paciente en cualquier período, alineado con HIPAA desde el primer momento
  • Portal familiar con uso compartido por campos aprobado por el médico, archivos adjuntos con URL firmadas de vigencia limitada y acceso limitado por paciente
  • Consola de administración multicentro: incorpore un nuevo centro, aprovisione roles y reasigne pacientes sin cambios de código
  • Infraestructura reforzada en AWS: recuperación a un punto en el tiempo de RDS, cifrado S3 + KMS, CloudWatch + Sentry, verificación de copias de seguridad nocturnas, infraestructura como código

Cómo lo construimos

  1. 01

    Descubrimiento, modelo de amenazas y diseño de datos multiinstalación

    Comenzamos acompañando a enfermeras durante un turno real y mapeando cada lugar por donde fluían los datos de los pacientes: papel, Excel, EMR, chats grupales y fax. A partir de ahí realizamos un modelado de amenazas centrado en HIPAA sobre los cuatro modos de fallo de mayor riesgo: fuga entre centros, exportaciones sin trazabilidad, exceso de información compartida con familiares y URL de archivos adjuntos sin firmar. De ahí surgieron los tres pilares arquitectónicos sobre los que se apoya el resto del desarrollo: consultas por tenant aplicadas en la capa ORM, un registro audit_event de solo adición en cada acción y URL firmadas de S3 sin acceso directo a los objetos.

  2. 02

    API REST con Django + modelo de datos multiinquilino en PostgreSQL

    Modelamos centros, pacientes, roles y notas clínicas en un único esquema de PostgreSQL con un límite estricto `facility_id` integrado en cada QuerySet mediante un manager con alcance por tenant. Los roles (médico, enfermera, administrador, familiar) controlan tanto los endpoints como los campos: un usuario familiar ni siquiera puede ver que existe un campo 'medications' en la respuesta, a menos que el médico active un permiso para compartirlo. Las notas clínicas se basan en plantillas y se almacenan como JSON estructurado junto con un resumen legible generado, de modo que los informes y las exportaciones se mantienen limpios.

  3. 03

    UX de SPA en Next.js, navegación según roles y portal para familias

    Entregamos una única SPA en Next.js que cambia su apariencia según el rol al iniciar sesión: una enfermera ve la cola de turnos y el flujo de notas rápidas; un administrador ve el selector de instalaciones y la búsqueda de auditoría; un familiar ve únicamente a su paciente vinculado con el subconjunto de campos aprobado por el médico. Las actualizaciones optimistas, el guardado automático de borradores de notas y un selector de plantillas sin fricción redujeron el flujo de alta frecuencia 'añadir una nota' de más de 18 minutos a menos de 5.

  4. 04

    Refuerzo de seguridad en AWS, auditoría, observabilidad y traspaso

    Implementamos la plataforma en AWS (EC2 + RDS PostgreSQL + S3 + KMS), con CloudWatch + Sentry en cada endpoint, verificación nocturna de copias de seguridad e infraestructura como código. Cada lectura, escritura y exportación queda en un registro audit_event de solo anexado, de modo que un auditor puede recibir un informe de actividad por paciente en segundos. Entregamos al operador un runbook para la incorporación de instalaciones, el aprovisionamiento de roles y la respuesta a incidentes, y seguimos con un contrato de soporte para mejoras mensuales.

Stack tecnológico

  • Next.js (React)
  • Django
  • Django REST Framework
  • PostgreSQL
  • Celery + Redis (background jobs)
  • AWS (EC2, RDS, S3, CloudWatch)
  • AWS KMS (cifrado en reposo)
  • Acceso basado en roles con Auth0 / JWT
  • Sentry + CloudWatch (observabilidad)
  • Docker
  • Desarrollo de software a medida
  • Ingeniería SaaS para el sector salud
  • Diseño UI/UX
  • Arquitectura en la nube
  • DevOps y observabilidad
  • Ciberseguridad
“Teníamos un proyecto grande y complejo con varias bases de datos que debían comunicarse entre sí. El equipo de UnlockLive hizo las preguntas de seguimiento correctas, mantuvo el cronograma realista y entregó algo que nuestro personal clínico realmente usa todos los días.”
Sofia Abdelkafi · Consultor de salud y bienestar

Preguntas frecuentes

¿Cómo se construye un SaaS de salud multi-tenant sin filtrar datos de pacientes entre centros?

Aplicamos el límite entre inquilinos en la capa ORM de Django, no en los manejadores de rutas. Cada modelo que toca PHI está respaldado por un administrador de QuerySet con alcance por inquilino que filtra por `facility_id` del JWT antes de aplicar cualquier otro filtro. El resultado: una URL falsificada, un `if` omitido en una vista o un error en un serializador no pueden devolver registros de otras instalaciones, porque el SQL que ve la base de datos ya está filtrado. Además lo combinamos con permisos a nivel de campo, de modo que un familiar literalmente no puede ver que un campo sensible existe en la respuesta.

¿Cumple la plataforma SHCA con HIPAA?

Diseñamos la aplicación con controles alineados con HIPAA: acceso limitado por rol, cifrado en reposo (RDS + S3 + KMS) y en tránsito (TLS 1.2+), un registro `audit_event` de solo anexado en cada lectura/escritura/exportación de PHI, URL firmadas y con tiempo limitado para cada archivo adjunto, y verificación nocturna de copias de seguridad. El cumplimiento de HIPAA es, en última instancia, un Business Associate Agreement y un programa organizativo —lo gestiona el operador—, pero la plataforma se construyó para que una auditoría HIPAA pueda responderse con una consulta, no con una rearquitectura.

¿Cuánto tiempo llevó construir SHCA y cómo se estructuró el cronograma?

Seis meses de principio a fin. Aproximadamente: 3 semanas de descubrimiento, modelo de amenazas y diseño de datos; 14 semanas de desarrollo de API REST de Django + SPA de Next.js con sprints de dos semanas, pruebas automatizadas en cada PR y revisión de seguridad antes de pasar a producción; 4 semanas de refuerzo de AWS, observabilidad, registros de auditoría y capacitación de clínicos; 4 semanas de piloto con una instalación, seguidas de un despliegue en la misma semana en las 4 instalaciones restantes.

¿Qué stack tecnológico impulsa la plataforma de gestión de pacientes SHCA?

Un front-end SPA en Next.js (React), una API Django + Django REST Framework, PostgreSQL en Amazon RDS, S3 + KMS para adjuntos cifrados, Celery + Redis para tareas en segundo plano, autenticación basada en JWT con permisos de rol por endpoint y por campo, y CloudWatch + Sentry para la observabilidad, todo contenerizado con Docker y desplegado mediante infraestructura como código en AWS.

¿Puede la plataforma escalar a decenas de instalaciones o cambiar su apariencia para otro operador de atención a mayores?

Sí: el modelo de datos y el sistema de permisos son agnósticos a la instalación por diseño. Añadir una nueva instalación es una acción de administrador, no un cambio de código; un nuevo operador puede cambiar la marca del front-end y reutilizar el mismo backend multiinquilino. La misma arquitectura (límite `facility_id` + registro audit_event + adjuntos con URL firmadas) es reutilizable para cualquier SaaS multiinquilino cercano a HIPAA: clínicas, grupos de salud conductual, agencias de atención domiciliaria y similares.

¿Quiere un resultado como este?

Hable con el mismo equipo que construyó Construcción de un SaaS multiinstalación de gestión de pacientes alineado con HIPAA para un grupo estadounidense de cuidado de personas mayores — Next.js + Django + PostgreSQL en AWS. Definiremos el alcance de su proyecto, le daremos una propuesta a precio fijo y le mostraremos el caso más parecido de nuestro portafolio.

Reservar una llamada estratégica