Propósito
Documentar la decisión arquitectural fundamental de cómo BrandaCare maneja datos sensibles (PHI/HIPAA) vs. datos no-sensibles, separando responsabilidades en 2 capas claras. Esta separación nos permite escalar sin comprometer compliance.
Audiencia:
Yami, Pablo, Quasar, Santi, Manuel. Todo el team técnico y de liderazgo debería entender esto.
La regla de oro
Toda data con PHI vive dentro del ecosistema Google Workspace (Apps Script, Sheets, Drive, Forms). Toda UX / branding / training vive en Netlify (HTML estático). La capa visible es Netlify; la capa que toca PHI es Google Apps Script embebido.
Las 2 capas
| Capa | Contenido | Vendor | HIPAA | Costo |
|---|---|---|---|---|
| UX Layer (no-PHI) |
Manual / training Dashboard general Forms internos sin PHI Navegación + branding Acrónimos, glosarios |
Netlify | No requerido | $0/mes |
| HIPAA Layer (PHI) |
Patient data Insurance verifications Claims data Forms con PHI EOBs procesados Productivity tracker con paciente |
Google Workspace + Apps Script |
Sí — vía BAA con Google | Incluido en Workspace |
Cómo se conectan
Apps Script web apps se embeben dentro del frontend de Netlify usando iframes. El usuario ve UNA sola experiencia BrandaCare, pero técnicamente:
- El HTML "host" en Netlify trae la UX, el branding, la navegación
- Cuando el usuario necesita interactuar con PHI (ej: ver una verificación, completar un form de paciente), ese widget es un iframe a un Apps Script web app
- El iframe corre dentro del browser pero su contenido y la data viven en Google
- BrandaCare nunca tiene PHI en Netlify ni en servidores propios
Ejemplo concreto:
Cuando un Junior Insurance Verification abre "Insurance Verification Form" en el dashboard, el shell
del dashboard (branding, navegación) viene de Netlify, pero el form mismo es un Apps Script app
embebido. El form lee/escribe en Google Sheet — donde vive HIPAA-compliant.
Reglas críticas para el team técnico
| REGLA | Por qué |
|---|---|
| NUNCA poner PHI en HTML estático de Netlify | Netlify no tiene BAA = no es HIPAA compliant |
| NUNCA hardcodear PatNum + nombre + DOB en docs públicos | Combinación = PHI según HIPAA |
| NUNCA permitir queries a OD desde JavaScript de Netlify | Las credentials de OD darían acceso a PHI desde un entorno no-HIPAA |
| SIEMPRE poner workflows con PHI dentro de Apps Script | Workspace es el único lugar con BAA |
| SIEMPRE embeber Apps Script via iframe | Aísla el sandbox de PHI del shell público |
| SIEMPRE auditar logs en Apps Script para acciones con PHI | HIPAA requiere audit trail |
Decisiones de qué va dónde
| Componente | Vive en | Razón |
|---|---|---|
| Manual interno (este sitio) | Netlify | Solo training/SOPs sin PHI |
| Auth gate del manual | Netlify + Google OAuth | Solo restringe acceso, no toca data |
| Insurance Verification Form | Apps Script | Tiene PHI (paciente, DOB, ID) |
| OPS Dashboard (futuro) | Híbrido | Shell en Netlify, widgets PHI en Apps Script embebido |
| Productivity Tracker (futuro) | Apps Script | Referencia PHI por PatNum |
| Carrier Coverage Notes | Netlify | Solo reglas genéricas de carriers, sin pacientes |
| BC Breakdown (futuro) | Apps Script | Contiene paciente + plan + coverage real |
| Timesheets internos | Apps Script o Netlify | Apps Script preferido (auth Workspace) — sin PHI |
| IT tickets internos | Netlify | Sin PHI |
Beneficios de este modelo
- Cero infra HIPAA nueva que mantener — Google ya hace el trabajo pesado de compliance
- Sin vendor lock-in extra — solo dependemos de Google y Netlify (free)
- Brand consistency — la UX que ve el team es 100% BrandaCare en TODA la stack
- Costo casi cero — Netlify free + Workspace ya pagado
- Reemplaza Jotform ($130/mes) → ahorro de $1,560/año cuando migremos
- Escalable — agregar 50 docs al manual ≠ agregar features con PHI; cada capa escala independiente
- Team familiarizado — Yami ya domina Apps Script, no aprendemos stack nuevo
Roadmap de migración
| Fase | Acción | Status |
|---|---|---|
| F1 | Manual estático en Netlify + auth gate Google OAuth | En curso |
| F2 | Embeber primer Apps Script form en el manual (proof of concept) | Pendiente |
| F3 | Migrar 1 form de Jotform a Apps Script | Pendiente |
| F4 | Migrar resto de forms PHI a Apps Script → cancelar Jotform | Pendiente |
| F5 | Construir OPS Dashboard como shell Netlify + widgets Apps Script | Q3-Q4 2026 |
| F6 | Migrar Productivity Tracker + Task assignment al nuevo dashboard | Q4 2026 |
