Saltar al contenido

MyHealth — Lista de Subencargados y Registro de las Actividades de Tratamiento (ROPA)

Responsable del tratamiento (LGPD Art. 5, VI / RGPD "controller"): BAS AI — BAS ARTIFICIAL INTELLIGENCE LTDA CNPJ (identificación de empresa de Brasil): 64.106.409/0001-70 Sitio web: www.bas-ai.com Delegado de Protección de Datos (DPD/DPO) (LGPD Art. 5, VIII): Guilherme Bastian — dpo@bas-ai.com Producto: MyHealth — app iOS de historial personal de salud con lectura educativa por IA (pt/en/es). Versión de este documento: 2.10 — 2026-07-19

Naturaleza del producto. MyHealth organiza tu historial de salud y ofrece una lectura educativa y prudente. No es un producto sanitario, no diagnostica y no prescribe. Toda observación de la IA se marca como "(a confirmar)" y debe validarse con tu médico. La IA no verifica interacciones medicamentosas, no verifica contraindicaciones y no cruza alergias con medicamentos.
Distribución. MyHealth se distribuye en la App Store a escala mundial, excepto en la Unión Europea/EEE y el Reino Unido en el lanzamiento. Aun así, las protecciones de nivel RGPD/RU se adoptan como base global aplicada a todos los titulares (denominador común más estricto).
Vigencia. Este registro está en vigor a partir del 2026-06-23. Los contratos de tratamiento (DPA/SCC) referidos más adelante están firmados y en vigor (ver Sección 3). La versión pública de esta lista está en https://www.bas-ai.com/myhealth/legal/subprocessadores; el historial de versiones se publica en https://www.bas-ai.com/myhealth/legal/versoes, y cada versión aceptada permanece archivada.

1. Cómo leer este documento

Este documento tiene dos partes complementarias:

BAS AI actúa como responsable de los datos personales tratados en MyHealth. Los terceros listados en la Parte A actúan como encargados/subencargados (LGPD Art. 5, VII / RGPD Art. 28), tratando datos exclusivamente bajo las instrucciones de BAS AI. Son solo tres: Supabase, Anthropic y Resend. Las plataformas y fuentes que actúan como responsables independientes (Apple, Oura, WHOOP) no son subencargados y se describen en la Sección 3.5.

1.1 Principios que rigen la cadena de subencargados


2. Categorías de datos tratados (glosario)

Para uso en las tablas siguientes:

SiglaCategoríaEjemplos
PIIIdentificación directa (cifrada AEAD/AES-256 en identity_vault)Nombre/apodo, correo de contacto, teléfono, documento nacional
PHIDatos de salud / sensiblesExámenes y marcadores; condiciones/sistemas; medicaciones; alergias; vacunas; consultas; signos vitales y composición corporal (peso, grasa, glucemia, presión, FC — glucosa de monitor continuo/CGM: solo agregados diarios — media/mín/máx/CV/% del día dentro del rango 70–180 del estándar de visualización AGP; las lecturas continuas brutas nunca se almacenan); síntomas y quejas; actividad física (incl. entrenos de wearable); sueño (sesiones y fases — sleep_sessions); métricas continuas de wearable (FC en reposo, HRV, VO2max, pasos, energía, temperatura cutánea); scores propietarios de proveedores de wearable (Oura readiness/sleep/stress/resilience; WHOOP recovery/strain — daily_scores); eventos de dispositivo (ECG — solo clasificación y metadatos, nunca el trazado/forma de onda en bruto; ritmo irregular; FC alta/baja; carga de fibrilación auricular; caída detectada — health_events); registro de toma de medicación (med_intakes); check-in diario de bienestar; ciclo menstrual y salud reproductiva (flujo, sangrado intermenstrual, test de ovulación, moco cervical — importados de HealthKit a cycle_entries; la actividad sexual no se importa); hábitos de vida autodeclarados (tabaquismo — incl. años de tabaquismo —, alcohol, actividad, percepción del sueño y estado de menopausia — autodeclarado opt-in, no importado de HealthKit — lifestyle_facts); conversaciones con el asistente de IA (preguntas y respuestas persistidas — chat_messages/conversations); documentos/informes; antecedentes familiares; equipo de cuidados; anotaciones de wearable (solo el código de categoría) (Oura enhanced tagswearable_annotations, migración 0330: el texto libre — nombre personalizado y comentario — es descartado en la importación y nunca llega a guardarse; guardamos solo el código de categoría estandarizado — el "tipo": café, alcohol, etc. —, lectura solo-titular, fuera del intercambio familiar, eliminado al desconectar el proveedor; ese código, agregado por semana, va a la IA solo cuando el Diario de salud daily_journal está activo — nunca texto libre)
SUPComunicaciones de soporteMensajes de texto libre que envías al soporte en la app + respuestas del agente (support_tickets/support_ticket_messages); pueden contener datos de salud; guardados en Supabase
DEMOPerfil clínico-demográfico seudónimoSexo biológico; edad; año de nacimiento (sin día/mes) (en profiles, sin PII)
LOCLocalidad opcional e idiomaPaís (country_code — enviado a la IA, ver 3.2, para regionalizar la orientación educativa)/estado/ciudad; idioma (locale)
CUENTACuenta, autenticación y consentimientoIdentificador de cuenta, número de cuenta público (account_ref) — identificador seudónimo generado por nosotros, 8 dígitos, no secuencial, correo/identificador de Sign in with Apple, tokens de sesión, factor MFA (TOTP), eventos de consentimiento versionados
TÉCMetadatos técnicos y de usoRegistros de acceso (metadato, sin contenido clínico), datos de uso desidentificados, telemetría de fallos/rendimiento
PAGOFacturación de suscripciónEstado de la suscripción, recibo/transacción (el procesamiento del pago lo hace Apple; BAS AI no recibe datos de tarjeta)
CONEXDatos de conexión de wearablesConexiones OAuth (wearable_connections: estado, scopes, tokens de acceso/refresh cifrados AES-256-GCM en servidor, cursores de sincronización) y estados anti-CSRF (oauth_states). No son datos de salud — son datos de conexión, eliminados al desconectar la fuente

3. Parte A — Lista de Subencargados

3.1 Supabase — infraestructura, base de datos, almacenamiento y autenticación

CampoDetalle
SubencargadoSupabase, Inc.
RolEncargado/subencargado (hosting de backend)
FinalidadAlojar la infraestructura de MyHealth: base de datos (PostgreSQL), almacenamiento de documentos/informes, autenticación de cuenta y funciones edge. Da soporte a la finalidad clinical_processing y, en el enrutamiento de la IA, ai_processing.
Datos tratadosPHI estructurado y documentos/informes (referenciados por profile_id seudónimo); PII cifrada campo a campo (AEAD determinista vía pgsodium, AES-256) en el identity_vault; DEMO; LOC; CUENTA (incl. factor MFA/TOTP y consent_events); SUP (comunicaciones de soporte — support_tickets/support_ticket_messages —, que pueden contener datos de salud); TÉC (registros de acceso access_log). Supabase opera la infraestructura, pero no accede en claro a la PII del identity_vault en el curso normal de operación (descifrado solo vía función segura, bajo la identidad del propio usuario).
Ubicación / transferencia internacionalRegión sa-east-1 (São Paulo, Brasil) — residencia de datos en Brasil. Tratamientos administrativos auxiliares (p. ej. soporte) pueden implicar acceso desde otras jurisdicciones por el personal del subencargado, bajo las salvaguardas siguientes. Por seguridad, no se exponen públicamente el ref del proyecto ni la clave anon/JWT en esta página ni en materiales externos.
SalvaguardasDPA firmado el 2026-06-18, con cláusulas contractuales tipo (SCC) de la UE y salvaguardas equivalentes para eventuales transferencias, y mecanismo equivalente bajo la LGPD; cifrado en tránsito (TLS 1.3, con certificate pinning en la app) y en reposo; cifrado adicional de campo (pgsodium AEAD/AES-256) bajo nuestra gestión de claves; aislamiento por Row-Level Security (RLS) por verbo; traza de auditoría (access_log append-only / pgaudit best-effort); cláusula de NO ENTRENAMIENTO.

3.2 Anthropic — modelo de lenguaje (Claude) para lectura educativa y extracción de exámenes

CampoDetalle
SubencargadoAnthropic, PBC
RolEncargado/subencargado (procesamiento por IA)
FinalidadProcesar, vía la API de Claude, el contenido del propio usuario para: (a) extraer/estructurar documentos y exámenes; (b) generar lectura educativa, NO diagnóstica (análisis longitudinal del historial); (c) responder al chat asistente educativo; y (d) generar la biblioteca educativa genérica/poblacional (marker_education) — en esa generación Anthropic recibe solo la coordenada abstracta del tema (nombre del marcador/medición/condición del catálogo + categorías genéricas de dirección/rango/grupo poblacional), nunca un valor, resultado, fecha ni identificador del titular. Se mapea a la finalidad ai_processing y, al salir de Brasil hacia EE. UU., intl_transfer. La búsqueda web existe solo en el chat asistente: el modelo está instruido para usar solo términos clínicos genéricos, sin valores, fechas, edad, nombres ni identificadores del usuario — protección por instrucción al modelo, no por filtro técnico infalible; la búsqueda la ejecuta la infraestructura de Anthropic. Las funciones de análisis del historial y de extracción de documentos no hacen búsqueda web.
Datos tratadosContenido clínico (PHI) del propio usuario, enviado previo consentimiento de procesamiento por IA. Anthropic recibe: la copia OCULTADA de la imagen/PDF del documento (no la PII directa — ver 1.1); sexo + edad + país (country_code) y el año de nacimiento (sin día/mes); y el contenido clínico del historial en el análisis longitudinal (marcadores y tendencias de exámenes, medidas y composición corporal, medicaciones, vacunas, alergias, síntomas, consultas y anotaciones, antecedentes familiares, el equipo de cuidado (nombre del profesional + especialidad y, si se indican, institución y motivo — nunca teléfono/correo/dirección ni el número de registro profesional), actividad física, sueño y scores de wearable, eventos de dispositivo — clasificación de ECG, ritmo irregular, caída, nunca el trazado en bruto —, ciclo menstrual y datos reproductivos, hábitos de vida autodeclarados — tabaquismo (incl. años de tabaquismo)/alcohol/actividad/sueño/estado de menopausia — y grupo sanguíneo). Las conversaciones del chat (preguntas y respuestas) también transitan. Anthropic NO recibe: los identificadores directos (nombre, documento, correo, teléfono — cifrados en el identity_vault), los contactos de la tarjeta de emergencia, datos de cuenta ni tokens de conexión (CONEX). Salvedad de la ocultación: la ocultación es best-effort; cuando se ejecuta y nada coincide, o la bóveda está vacía, el documento original puede seguir, y un informe puede contener otros identificadores impresos. Cuando hay una fuente de wearable conectada (Sección 3.5), los datos entran como agregados en el contexto del análisis longitudinal (tendencias de sueño, FC en reposo, HRV siempre con el método SDNN/rMSSD, pasos, energía y scores del proveedor etiquetados por marca, sin recálculo); no se envían series brutas continuas (agregación en servidor, límite de 90 puntos por métrica). En la glucosa de monitor continuo (CGM), la propia base de datos guarda solo agregados diarios (media/mín/máx/CV/% dentro del rango 70–180) — no existen lecturas continuas brutas que enviar. De las anotaciones de wearable (wearable_annotations), el texto libre se descarta en la importación y nunca se guarda; solo el código de categoría estandarizadoagregado por semana y nunca como texto librepuede enviarse cuando el titular mantiene el Diario de salud (daily_journal) activo (ver la nota abajo). Soporte asistido por IA (borrador + traducción): cuando un operador activa la IA para redactar o traducir la respuesta de soporte, Anthropic recibe, de forma transitoria, el TEXTO de la conversación de soporte (que puede contener datos de salud), minimizado por eliminación best-effort de identificadores (no es anonimización) — NUNCA el historial clínico —, constituyendo una transferencia internacional (EE. UU.), siempre con revisión humana. Para el titular con sesión iniciada, condicionada a su consentimiento PROPIO y desagrupado support_ai_share + intl_transfer (Perfil › Privacidad, desactivado por defecto); para un remitente externo sin cuenta (correo), al consentimiento-primero del propio remitente (procesar + transferir a Anthropic/EE. UU.), capturado antes de cualquier IA. Tratamiento transitorio; conservación limitada por el subencargado (ver Salvaguardas). Estado de embarazo autodeclarado (enum de trimestre): cuando la titular ADULTA mantiene la función activa y ella misma dispara un análisis o el chat, Anthropic recibe, de forma transitoria, solo el trimestre (nunca FUM/FPP), bajo el consentimiento PROPIO y desagrupado pregnancy-state-1.0 (que cubre la transferencia internacional) — on-device (Keychain), nunca almacenado por nosotros, nunca en lifestyle_facts ni sincronizado, y ausente de los análisis automáticos/proactivos y de la vía batch de historial grande (ver Política §6.10 y §9). Adherencia de medicamentos observada (Apple Salud, iOS 26+): Anthropic recibe solo el agregado factual de días con una dosis registrada en una ventana de 30 días (nunca un porcentaje, nunca un juicio, nunca una relación de causa) — el mismo tratamiento del dato de rutina de medicación ya enviado, ahora también alimentado por la importación de Apple Salud (ver Política §3.2/§8; DPIA DPIA_MED_ADESAO.md). Registros Clínicos (solo Estados Unidos, capability-gated): cuando exista la autorización de Apple y el titular conecte la fuente, los registros importados (análisis, vacunas, medicamentos, condiciones, procedimientos, alergias) integran el contexto del análisis exactamente como cualquier otro dato del mismo tipo ya enviado hoy — sin campo nuevo, sin finalidad nueva (ver Política §3.2/§8; DPIA DPIA_CLINICAL_RECORDS_US.md).
Ubicación / transferencia internacionalProcesamiento vía la API de Anthropic, con infraestructura en los Estados Unidos. Transferencia internacional de datos personales sensibles desde Brasil, realizada solo con el consentimiento específico del titular, bajo las salvaguardas contractuales siguientes.
SalvaguardasTratamiento regido por los Commercial Terms de Anthropic (en vigor desde el 2026-06-17), con cláusulas contractuales tipo (SCC) para la transferencia internacional y mecanismo equivalente bajo la LGPD; cláusula de NO ENTRENAMIENTO (entradas y salidas no se usan para entrenar ni mejorar modelos — compromiso contractual); conservación limitada por el subencargado (por regla, supresión en hasta ~30 días, salvo conservación exigida por ley o para prevención de abuso); transmisión bajo TLS 1.3 con certificate pinning de api.anthropic.com; validación estricta del payload; salvaguardas anti-inyección (cerco de instrucción); sin cuerpo clínico en los logs de nuestras Edge Functions.
Diario de salud sensible — NO va a Anthropic. Los registros diarios de hábitos sensibles (dosis de alcohol, contexto de estrés/alcohol de la noche — finalidad opt-in daily_journal) NO se comparten con Anthropic. Permanecen almacenados en la base de datos (Supabase, cifrados en reposo) y fuera del contexto de análisis (allow-list de kinds en analysis_core/wearable_context). Un eventual envío a la IA exigiría un consentimiento de IA separado y explícito del titular, inexistente en esta versión.
**Anotaciones de wearable (Oura enhanced tags) — texto libre descartado; solo el código de categoría va a Anthropic bajo el Diario de salud. El texto libre que el titular registra en la app de Oura (nombre personalizado y comentario — wearable_annotations, migración 0330) es descartado en la importación y nunca llega a guardarse (no llega al historial, a nuestros registros ni a los logs). Guardamos solo el código de categoría estandarizado (el "tipo": café, alcohol, etc.), de lectura solo-titular (RLS; fuera del intercambio familiar de solo lectura) y eliminado al desconectar el proveedor. Ese código estandarizado — agregado por semana y nunca como texto librepuede integrar el contexto enviado a Anthropic cuando, y solo cuando, el titular mantiene el Diario de salud sensible (daily_journal) activo; sin ese consentimiento, no se envía a la IA. El "consentimiento separado y explícito" que la versión anterior describía como inexistente ahora existe**: es justamente daily_journal.

3.3 Resend — envío de correos transaccionales

CampoDetalle
SubencargadoResend
RolEncargado/subencargado (proveedor de correo transaccional)
FinalidadEntregar los correos transaccionales de la cuenta: código de acceso/OTP de autenticación y avisos operativos de la cuenta. No participa en ningún flujo clínico o de IA.
Datos tratadosSolo el correo del destinatario y el contenido del correo (código/aviso). Sin contenido de salud (PHI), sin datos de cuenta sensibles más allá de lo necesario para el envío, sin PII clínica. Apple Private Email Relay: quien oculta su correo en Sign in with Apple recibe los mensajes vía una dirección @privaterelay.appleid.com; Resend recibe únicamente esa dirección-relay + el contenido del correo — ningún dato nuevo.
Ubicación / transferencia internacionalEE. UU. / global. Transferencia internacional.
SalvaguardasDPA en vigor (2026-06-17), con base de transferencia por el Marco de Privacidad de Datos UE-EE. UU. (DPF) + cláusulas contractuales tipo (SCC) y mecanismo equivalente bajo la LGPD; cláusula de no entrenamiento/no uso secundario; minimización (no se comparte ningún dato de salud); TLS en tránsito.
RevenueCat NO se utiliza. La monetización de MyHealth funciona por In-App Purchase nativo (StoreKit) — suscripción y paquetes adicionales (páginas/prompts) —, con Apple como responsable de la transacción (merchant of record; ver 3.5). No hay intermediario de suscripciones de terceros.

3.4 Lo que NO es subencargado

3.5 Plataforma y fuentes de datos — Apple, Oura y WHOOP (responsables independientes; NO son subencargados)

Estas entidades no tratan datos por cuenta de BAS AI: cada una es responsable independiente de su propia plataforma. Apple es la plataforma de distribución, autenticación opcional, push y pago; Oura y WHOOP son fuentes de datos/originadores conectadas por el propio titular. El flujo de wearable es solo de entrada (del proveedor al historial del usuario), mediante conexión OAuth autorizada por el titular y consentimiento específico por fuente (wearable_sync_oura / wearable_sync_whoop, base doble LGPD Art. 11, I + RGPD Art. 9(2)(a), revocable). El proveedor no recibe datos del historial.

Apple Inc. — plataforma de distribución y servicios de SO, responsable de la transacción (merchant of record) de las compras de suscripción y paquetes adicionales vía In-App Purchase nativo (StoreKit), proveedor de Sign in with Apple (cuando se elige) y de notificaciones push. El acceso de lectura a Apple Health (HealthKit) es opcional y ocurre localmente, en el dispositivo (consentimiento wearable_sync_apple_health) — Apple no participa en el tránsito de esos datos a nuestro backend y no recibe la base clínica de MyHealth. En el pago, BAS AI no recibe ni almacena datos de tarjeta. Cumplimiento de la Apple Guideline 5.1.3 (datos de salud nunca usados para marketing, compartición con terceros o entrenamiento de IA) y de las Directrices 3.1.1/3.1.2 (compras digitales). Ubicación: EE. UU. / infraestructura global de Apple, bajo el Apple Developer Program License Agreement.

CampoOuraWHOOP
EntidadOura Health Oy (Finlandia / EEE) — responsable independiente; integración bajo los términos de API de OuraWHOOP, Inc. (EE. UU.) — responsable independiente; integración bajo los Developer Terms de WHOOP
RolFuente de datos conectada por el titularFuente de datos conectada por el titular
Datos recopilados (según scopes autorizados)Sueño (sesiones/fases), scores diarios (readiness, sleep, activity, stress, resilience), métricas (FC en reposo, HRV rMSSD, temperatura, SpO2, VO2max), actividad diaria, entrenos, anotaciones del usuario (enhanced tags: tipo, nombre personalizado y comentario en texto libre — el texto libre se descarta en la importación, solo se guarda el código de categoría, ver §3.2; requiere el alcance OAuth tag; las conexiones antiguas exigen reconexión)Sueño (sesiones/fases), scores diarios (recovery, strain), métricas (FC en reposo, HRV rMSSD, SpO2, temperatura cutánea), entrenos
Datos de conexión (CONEX)Tokens OAuth cifrados (AES-256-GCM) solo en el servidor; la app nunca ve tokens; eliminados al desconectarÍdem
Ubicación / transferencia internacionalRecopilación desde la API de Oura (Finlandia/EEE) → almacenamiento en Brasil (sa-east-1)Recopilación desde la API de WHOOP (EE. UU.) → almacenamiento en Brasil (sa-east-1)
Desconexión / purgaRevocación del token en el proveedor + consent_events granted=false; el titular elige conservar o borrar los datos ya importados; excepción: las anotaciones del wearable (wearable_annotations) se eliminan SIEMPRE al desconectar (el texto libre ya se descarta en la importación; solo se guarda el código de categoría)Revocación (DELETE /v2/user/access) + consent_events granted=false + purga obligatoria de todos los datos originados de WHOOP (exigencia contractual del proveedor — sin opción de conservar)
Salvaguardas / contratosTérminos de API de Oura (caché de 60 días y base de transferencia evaluados); atribución de marca obligatoria; scores nunca recalculados/combinadosWHOOP Developer Terms (exigen Privacy Policy URL y cumplimiento de brand guidelines); atribución de marca; prohibición de derivar scores
Apple Health (HealthKit) no figura en la tabla de wearables con tráfico de red porque la lectura es local, en el dispositivo — no hay tráfico de datos entre Apple y el backend de BAS AI.
Recepción de webhooks de wearable (Oura/WHOOP). Para recibir avisos de actualización/eliminación en tiempo real, guardamos un identificador seudónimo del perfil del titular en WHOOP (el user_id numérico que los registros ya traen — nunca nombre ni correo) para enrutar el webhook a la conexión correcta. El webhook solo señaliza una nueva sincronización (ningún dato clínico transita en él), la firma HMAC se valida, y el evento de eliminación del proveedor borra la fila correspondiente en el historial (paridad de eliminación). Las subscriptions de Oura nunca suscriben daily_stress (minimización). El identificador vive en la Supabase ya declarada — sin nuevo subencargado y sin nueva transferencia internacional.

4. Parte B — Registro de las Actividades de Tratamiento (ROPA)

Inventario de las actividades de tratamiento (RGPD Art. 30 / LGPD Art. 37). Los consentimientos por finalidad se guardan en un registro append-only (consent_events), versionados por policy_version, y las Edge Functions verifican el consentimiento en tiempo de ejecución (gate has_active_consent).

#ActividadCategorías de datosCategorías de titularesDestinatarios / subencargadosTransferencia internacional
1Registro, autenticación y seguridad de la cuenta (MFA TOTP)CUENTA, PII (cifrada)Usuarios adultos; tutores legalesSupabase; Resend (correo/OTP); Apple (Sign in with Apple — responsable independiente)No (BR), salvo Resend y Sign in with Apple (EE. UU./global)
2Organización del historial (extracción, línea de tiempo, tendencias; rutina diaria — toma de medicación med_intakes y check-in de bienestar; hábitos de vida lifestyle_facts)PHI, DEMO, documentos/informesTitulares y dependientes (menores)SupabaseNo (BR)
3Lectura educativa y extracción de documentos por IA (incl. agregados de wearable, ciclo, hábitos y eventos de dispositivo en el contexto del análisis longitudinal — ver 3.2)PHI (contenido del propio usuario, con sexo+edad+país+año de nacimiento); copia ocultada del documento/imagen en la extracciónTitulares y dependientesAnthropic (Claude)Sí — EE. UU.
4Chat asistente educativo por IA (preguntas/respuestas persistidas en chat_messages/conversations; búsqueda web solo con términos genéricos — ver 3.2)PHI (contenido del propio usuario); conversacionesTitulares y dependientesAnthropic (Claude); Supabase (persistencia)Sí — EE. UU. (Anthropic); persistencia BR
5Compartición familiar (opt-in, solo lectura)PHI, DEMOTitular y familiar vinculadoSupabaseNo (BR)
6Sincronización Apple Health (HealthKit) — opcional, lectura local en el dispositivo, continua (background delivery); incluye adherencia de medicamentos observada (iOS 26+, dosis registradas como tomadas — memoria de adherencia, nunca fiscalización) y, cuando esté disponible, Registros Clínicos vía FHIR (solo EE. UU., capability-gated por la autorización de Apple — análisis/vacunas/medicamentos/condiciones/procedimientos/alergias, solo lectura)PHI (medidas, métricas continuas, sueño, entrenos, eventos de dispositivo, ciclo/reproductivo, adherencia de medicamentos, registros clínicos estructurados)TitularesLectura local (iPhone); almacenamiento SupabaseNo (lectura local; almacenamiento BR)
7Portabilidad / exportación (FHIR R4, PDF) — incluye datos de wearables, hábitos, conversaciones de IA y registros de rutinaPHI, DEMO, PIITitulares y dependientesGenerado en la app/backend; entregado al titularNo
8Cuenta, suscripción y paquetes adicionales (In-App Purchase nativo / StoreKit); telemetría de uso y facturación de IA (ai_usage, credit_ledger)CUENTA, PAGO, TÉC (sin PHI en el flujo de pago)Suscriptores; tutores (facturación de menor)Apple (merchant of record — responsable independiente); SupabaseSí — Apple (EE. UU./global); persistencia BR
9A la espera de cuota/uso disponible — guarda de un documento ya ocultado sin análisis hasta que haya cuota o paquete disponible, con análisis automático cuando el uso disponible lo permitaPHI (copia ocultada del documento, en reposo)Titulares y dependientesSupabaseNo (BR) — el análisis por IA (actividad 3) solo ocurre cuando se dispara
10Seguridad, auditoría y prevención de abusoTÉC (metadato de acceso, sin PHI)Todos los usuariosSupabaseNo (BR)
11Telemetría de estabilidad / diagnósticoTÉC (sin PHI)Todos los usuariosBAS AI — hoy sin tercero de observabilidad; si se adopta, se listará en esta página antes de la activaciónNo (BR) — hoy sin tercero
12Gestión de consentimientos versionados (registro desvinculado/seudonimizado — ver 6.7)CUENTA (consent_events)Todos los usuariosSupabaseNo (BR)
13Atestación de edad (age_attestation) — declaración de 18+; bloqueo de registro de menor; registro inmutable con fecha/hora del servidorCUENTATodos los usuariosSupabaseNo (BR)
14Sincronización Oura — conexión OAuth, recopilación vía API y webhook (sueño sleep_sessions, scores daily_scores, métricas, entrenos, anotaciones del usuario wearable_annotations — texto libre descartado en la importación (no guardado); solo el código de categoría, solo-titular, eliminado al desconectar, que agregado por semana va a la IA solo bajo daily_journal)PHI (wearable), CONEXTitularesOura Health Oy (fuente/responsable independiente — ver 3.5); SupabaseSí — recopilación desde Finlandia/EEE → BR
15Sincronización WHOOP — conexión OAuth, recopilación vía API y webhook (sueño, recovery/strain, métricas, entrenos)PHI (wearable), CONEXTitularesWHOOP, Inc. (fuente/responsable independiente — ver 3.5); SupabaseSí — recopilación desde EE. UU. → BR
16Gestión de conexiones de wearables (tokens cifrados, estado OAuth, revocación y purga al desconectar)CONEXTitularesSupabase (acceso restringido a service_role; la app nunca lee tokens)No (BR)
17Atención al usuario (canal de soporte en la app) — apertura e intercambio de mensajes de soporte; borrador/traducción de respuesta asistidos por IA bajo consentimientoSUP (pueden contener PHI), CUENTATitulares y dependientesSupabase (almacenamiento); en el borrador asistido por IA, Anthropic (Claude)No (BR) en el almacenamiento; Sí — EE. UU. en el borrador asistido por IA (titular: consentimiento support_ai_share/intl_transfer; remitente externo: consentimiento-primero propio)
18Diario de salud sensible — recopilación de registros diarios (alcohol/estrés), fechados en body_measurements; opt-in daily_journal (default OFF, bloqueo server-side por trigger, indisponible para menores)PHI sensible autodeclarado (sustancia / salud mental)Titulares (no menores)Supabase (persistencia)No — no transmitido a la IA en esta versión
19Índice forense post-eliminación (account_forensic_hold, migración 0308, aplicada 2026-07-17) — en el acto de la eliminación, retención minimizada que sobrevive al borrado, para prevención de fraude, ejercicio/defensa de derechos y respuesta a autoridad competente ("qué cuentas ligadas a este correo/Apple ID/IP")Como máximo: (a)+(b) identificadores de búsqueda en HMAC (correo, Apple sub, teléfono, documento nacional) + IPs recientes en texto; (c) el identificador seudónimo de la cuenta (account_ref) y metadatos mínimos de guarda (account_id, fechas de creación/eliminación, jurisdicción, plazo). SIN PHI, sin nombre/correo legible (dato SEUDONIMIZADO — LGPD Art. 12/13)Todos los usuarios (incl. menores — gate DPD; para el menor, plazo REDUCIDO y proporcional)Supabase (tabla blindada: RLS sin políticas, sin grant a admin_ops; acceso solo vía RPCs owner-gated auditadas)No (BR); entrega puntual a autoridad competente cuando se exija
20Recordatorios educativos de cribado poblacional — tarjetas dentro de la app (nunca una notificación) que sugieren conversar con el médico sobre cribados que las guías poblacionales suelen indicar para la franja de edad; disparados exclusivamente por edad + sexo al nacer del perfil (datos ya recopilados); supresión por calendario sin leer el contenido de informes; motor determinístico, 100% en el dispositivo; solo-titular adulto; descartable y desactivableDEMO (fecha de nacimiento + sexo al nacer, ya recopilados)Titulares adultos (solo-titular; nunca dependientes/perfiles gestionados)Ninguno — procesamiento en el dispositivo (nada nuevo va a un servidor ni a la IA)No

5. Matriz Finalidad → Base Jurídica → Conservación

FinalidadBase jurídica LGPDBase jurídica RGPDConservación
Procesamiento clínico (clinical_processing) — organizar el historialArt. 7, I y Art. 11, I (consentimiento específico y destacado para dato sensible)Art. 6(1)(a) + Art. 9(2)(a) (consentimiento explícito)Mientras exista la cuenta; suprimido a petición (Sección 7)
Diario de salud sensible (daily_journal) — recopilación de registros diarios sensibles (alcohol/estrés); opt-in, default OFF, bloqueo server-side, indisponible para menores; no va a la IAArt. 7, I y Art. 11, I (consentimiento específico y destacado para dato sensible)Art. 6(1)(a) + Art. 9(2)(a) (consentimiento explícito)Guardado en el historial mientras existan el consentimiento y la cuenta; suprimido en la revocación; eliminado con la supresión de la cuenta (Sección 7)
Procesamiento por IA (ai_processing) — extracción de documentos, lectura educativa y chat asistenteArt. 7, I y Art. 11, I (consentimiento específico)Art. 6(1)(a) + Art. 9(2)(a)Procesamiento transitorio en Anthropic, con conservación limitada por el subencargado (por regla, supresión en hasta ~30 días); resultado guardado en el historial mientras exista la cuenta; conversaciones del chat persistidas hasta su supresión por el titular
Transferencia internacional (intl_transfer) — salida hacia Anthropic/EE. UU. en el procesamiento por IAArt. 7, I; Art. 11, I; Art. 33Art. 6(1)(a) + Art. 9(2)(a); Arts. 44–49Transitorio; conservación limitada en destino (~30 días), según los términos de Anthropic; transferencia bajo SCC
Compartición familiar (family_sharing) — opt-in, solo lecturaArt. 7, I y Art. 11, I (consentimiento)Art. 6(1)(a) + Art. 9(2)(a)Vínculo activo hasta su revocación; la invitación caduca en 7 días
Sincronización de wearables (wearable_sync_apple_health / wearable_sync_oura / wearable_sync_whoop) — consentimiento específico por fuente, registrado antes de cualquier lectura/pullArt. 7, I y Art. 11, I (consentimiento específico y destacado; revocable)Art. 6(1)(a) + Art. 9(2)(a) (consentimiento explícito; revocable)Datos importados: regla general (mientras exista la cuenta); las series diarias brutas de métricas de wearable pueden ser condensadas después de 13 meses en resúmenes semanales (mín/media/máx/conteo) y, después de 36 meses, en mensuales — minimización (LGPD art. 6, III; RGPD art. 5(1)(c)/(e)); las mediciones manuales y clínicas nunca se condensan. Al desconectar: tokens/conexión (CONEX) siempre eliminados; WHOOP — purga obligatoria de los datos importados (exigencia contractual del proveedor); Oura/HealthKit — el titular elige conservar (bajo consentimiento activo) o borrar; anotaciones (Oura): texto libre descartado en la importación; código de categoría eliminado SIEMPRE al desconectar
Recordatorios educativos de cribado poblacional — tarjetas in-app por edad/sexo (motor determinístico en el dispositivo; nunca push; solo-titular adulto; descartable/desactivable)Art. 7, V (ejecución del contrato) + Art. 11, I (uso del dato sensible ya recopilado — sexo al nacer — bajo el consentimiento clínico)Art. 6(1)(b) + Art. 9(2)(a)No se recopila ni se retiene ningún dato nuevo — reglas fijas aplicadas en el dispositivo sobre datos del perfil ya existentes; el tratamiento cesa al desactivar la superficie de recordatorios
Datos de menores bajo tutelaArt. 14 (mejor interés; consentimiento del tutor)Art. 6(1)(a)/Art. 8 + Art. 9(2)(a), ejercido por el tutorMientras exista la cuenta del tutor; suprimido a petición. La identidad del menor se SUPRIME en el acto de la supresión (no hay vía fiscal de identidad para menores)
Atestación de edad (age_attestation) — declaración de 18+ en el registroArt. 14 + Ley 15.211/2025 (ECA Digital)Art. 8Registro inmutable mientras exista la cuenta (prueba de cumplimiento)
Cuenta, suscripción y paquetes adicionales (In-App Purchase) — mantener la cuenta y procesar la suscripción y los paquetes adicionales de uso de IA (por regla, 1 página de cuota por página de documento); el consumo de IA de un menor se factura al tutorArt. 7, V (ejecución de contrato); Art. 7, II y Art. 16, I (guarda fiscal obligatoria de los comprobantes)Art. 6(1)(b); Art. 6(1)(c) (guarda fiscal)Cuenta: mientras exista. Los comprobantes fiscales/de facturación y la identidad mínima de quien transaccionó se conservan por el plazo fiscal de la jurisdicción incluso tras la supresión de la cuenta — 5 años (Brasil, EE. UU. y demás), 6 años (Reino Unido, Canadá), 10 años (UE) — ver Sección 6 (doble vía)
Atención / Soporte (support) — atender solicitudes del usuario en el canal de soporte de la app; borrador de respuesta asistido por IA bajo consentimientoArt. 7, V (ejecución de contrato) + Art. 11, I (consentimiento específico, cuando el mensaje incluye datos de salud)Art. 6(1)(b) + Art. 9(2)(a) (cuando incluye datos de salud)Mientras exista la cuenta; suprimido al borrar la cuenta (support_tickets/support_ticket_messages)
Seguridad, auditoría y prevención de abusoArt. 7, II (obligación legal) y Art. 10 (interés legítimo) — no Art. 11, II "f" (tutela de la salud)Art. 6(1)(c) (obligación legal) y Art. 6(1)(f) (interés legítimo) — no Art. 9(2)(h)Registros de acceso (fecha/hora + IP + user-agent en los accesos síncronos, metadato sin contenido clínico): 6 meses (Marco Civil de Internet, Ley 12.965/2014, art. 15 — piso legal de guarda). Ese piso se refiere a registros de acceso, que no son datos de salud y no justifican conservar contenido del historial
Índice forense post-eliminación (account_forensic_hold) — prevención de fraude + ejercicio/defensa de derechos + respuesta a autoridad competente tras la eliminación (identificadores de búsqueda en HMAC + IPs; sin PHI)Art. 16, I (obligación legal — atender a la autoridad) + Art. 7, VI (defensa de derechos en proceso) + Art. 7, IX (interés legítimo — prevención de fraude, uso secundario bajo LIA)Art. 6(1)(f) (interés legítimo) + Art. 17(3)(e) (excepción al borrado — defensa de derechos)Plazo prescriptivo aplicable (ejercicio/defensa de derechos + respuesta a autoridad), fijado por defecto en la misma duración que el plazo de guarda fiscal por proporcionalidad — 5 años Brasil/EE. UU./demás; 6 años Reino Unido/Canadá; 10 años UE —, con purga automática (purge_legal_retention). Menores: plazo REDUCIDO y proporcional a la prevención de fraude (nunca el fiscal), sujeto a evaluación de proporcionalidad + sign-off del DPD. Acceso break-glass owner, motivo obligatorio, auditoría inmutable (admin_audit)
Telemetría técnica / estabilidadArt. 7, IX (interés legítimo)Art. 6(1)(f)Hasta ~12 meses, por autolimitación de minimización (LGPD art. 6, III) — política interna del Responsable, no plazo impuesto por ley; sin PHI
Base jurídica del núcleo clínico (decidida). La base primaria de todo el núcleo clínico (organización del historial, lectura/extracción por IA, chat asistente, transferencia internacional, compartición familiar y sincronización de wearables) es el consentimiento específico y destacado para dato sensible — LGPD Art. 11, I/II "a" / RGPD Art. 9(2)(a) — coherente con el posicionamiento de "historial soberano" y revocable en cualquier momento. Como base subsidiaria — limitada a la seguridad e integridad del tratamiento, al cumplimiento de una obligación legal y a la ejecución de la propia supresión de datos — se aplican LGPD Art. 7, II y Art. 10 / RGPD Art. 6(1)(c) y (f). NO se invoca la base de tutela de la salud (LGPD Art. 11, II "f" / RGPD Art. 9(2)(h)): el RGPD Art. 9(3) condiciona esa base a un tratamiento por un profesional sujeto a secreto en el flujo, y no hay médico en el bucle de MyHealth — el asistente nunca comunica diagnóstico, pronóstico ni decisión terapéutica.
HIPAA no aplica. MyHealth es un producto B2C bajo el control del propio titular; BAS AI no es covered entity ni business associate de HIPAA. Por ello no publicamos "BAA" ni "HIPAA compliant".

6. Política de Conservación y Supresión (doble vía)

  1. Regla general (vía clínica). Los datos del historial (PHI/DEMO, documentos, conversaciones de IA, wearables, rutina) se conservan mientras exista la cuenta y el titular quiera mantener el historial organizado; se suprimen al borrar la cuenta (Sección 7).

1-A. Condensación de series de wearable (minimización). Las series diarias brutas de métricas continuas de wearable (p. ej., SpO2, pasos, FC media al caminar — nunca mediciones manuales ni mediciones clínicas como peso, glucosa o presión) pueden ser condensadas después de 13 meses en rollups semanales (mínimo/media/máximo/conteo) y, después de 36 meses, en mensuales (migración 0231; parámetros en wearable_condense_config). El DELETE del dato bruto solo ocurre en la misma transacción del rollup persistido; la condensación nunca dispara un análisis de pago; la supresión de la cuenta borra también los rollups (cascada). Base: minimización/limitación de almacenamiento — LGPD art. 6, III; RGPD art. 5(1)(c)/(e).

  1. Doble vía de identidad. La identidad directa (nombre/correo, cifrada en el identity_vault) se conserva solo para quien TRANSACCIONÓ (se suscribió o compró paquetes adicionales), por el plazo fiscal de la jurisdicción: 5 años (Brasil, EE. UU. y demás), 6 años (Reino Unido, Canadá), 10 años (UE). Para menores y para no pagadores, la identidad se SUPRIME en el acto de la supresión — no hay vía fiscal de identidad.
  2. Comprobantes fiscales. Los comprobantes de facturación/fiscales (compra de suscripción y paquetes adicionales) siguen el mismo plazo fiscal de la jurisdicción anterior (Brasil: CTN, arts. 173 y 174), aunque la cuenta se borre antes.
  3. Registros de acceso. El access_log (metadato de auditoría/seguridad — quién, cuándo, qué tabla, acción, IP de origen y el user-agent de la petición en los accesos síncronos orientados al usuario — edges analyze-exam/ai-assistant/access-ping, migración 0309; en los inserts asíncronos/cron el user-agent queda nulo por diseño) se guarda por 6 meses (Marco Civil de Internet, art. 15). Es metadato sin contenido clínico; ese plazo no justifica conservar contenido del historial.

4-A. Índice forense post-eliminación (account_forensic_hold, migración 0308, aplicada 2026-07-17). En el acto de la eliminación, y para toda cuenta (incl. menores — gate DPD), se guarda un índice minimizado que sobrevive al borrado, con como máximo: identificadores de búsqueda (correo, Apple sub, teléfono, documento nacional) en HMAC-SHA256 con pepper dedicado guardado en una bóveda (Vault), cifrado por una clave-raíz gestionada fuera de la base de datos, nunca expuesto (nunca texto legible) + IPs recientes en texto; y el identificador seudónimo de la cuenta (account_ref) con metadatos mínimos de guarda (account_id, fechas de creación/eliminación, jurisdicción, plazo). Sin PHI, sin nombre/correo legible. Los identificadores en HMAC son dato SEUDONIMIZADO — siguen siendo dato personal (LGPD Art. 12/13), retenidos bajo el Art. 16, I; no se invoca la anonimización (Art. 16, IV). Finalidad: prevención de fraude, ejercicio/defensa de derechos y respuesta a autoridad competente dentro del plazo de guarda. Plazo: plazo prescriptivo aplicable, fijado por defecto en la misma duración que el plazo de guarda fiscal (ítem 2) por proporcionalidad — no "plazo fiscal" —, con purga automática (purge_legal_retention); para menores, plazo REDUCIDO y proporcional a la prevención de fraude (nunca el fiscal, que no se aplica a un menor que no transacciona), sujeto a evaluación de proporcionalidad + sign-off del DPD. Tabla blindada (RLS sin políticas, sin grant a admin_ops); acceso solo vía RPCs SECURITY DEFINER owner-gated que auditan antes de resolver. Base (por finalidad): LGPD Art. 16, I (autoridad) + Art. 7, VI (defensa de derechos) + Art. 7, IX (fraude, bajo LIA); GDPR Art. 6(1)(f) + Art. 17(3)(e). (La guarda fiscal — GDPR Art. 6(1)(c)/Art. 17(3)(b) — es del account_legal_hold; el Marco Civil Art. 15 rige el access_log de 6 meses, no este índice.) Las cuentas eliminadas antes de la vigencia no tienen hold.

  1. Procesamiento por IA. El contenido enviado a Anthropic es transitorio; el subencargado lo conserva por un período limitado y luego lo suprime (por regla, en hasta ~30 días), salvo conservación exigida por ley o para prevención de abuso. El resultado incorporado al historial sigue la regla general; las conversaciones del chat asistente se guardan hasta que el titular las borre.
  2. Telemetría técnica. La telemetría de estabilidad/diagnóstico (sin PHI) se conserva por hasta ~12 meses, por autolimitación de minimización (LGPD art. 6, III) — política interna del Responsable, no plazo impuesto por ley.
  3. Inmutabilidad y desvinculación de los registros. El access_log es append-only (UPDATE/DELETE bloqueados por trigger). Los consent_events están desvinculados/seudonimizados (clave HMAC mantenida fuera de la base de datos) — no "anónimos": preservan la prueba de cuándo se concedió/revocó el consentimiento sin reidentificar directamente al titular. Revocar el consentimiento es insertar un nuevo evento granted=false; la revocación no borra retroactivamente el tratamiento ya realizado lícitamente, pero interrumpe el tratamiento futuro de esa finalidad.
  4. Supresión a petición. La supresión se ejecuta a petición del titular (o del tutor legal, en el caso de menores), según el procedimiento de la Sección 7, en hasta 30 días.

7. Procedimiento de Supresión de Cuenta y de Datos

La supresión de cuenta está disponible en la propia app (exigencia de Apple) y también puede solicitarse al DPD (dpo@bas-ai.com).

  1. Solicitud. El titular (o tutor legal, en el caso de un dependiente menor) inicia la supresión en la app o por contacto con el DPD.
  2. Alcance. La supresión borra toda la PHI, los documentos/informes en el Storage, los vínculos de compartición familiar, los datos de wearables y rutina (sleep_sessions, daily_scores, health_events, med_intakes, medidas con provider/external_id), los hábitos de vida (lifestyle_facts), las conversaciones con el asistente de IA (chat_messages/conversations), las comunicaciones de soporte (support_tickets/support_ticket_messages), los registros de uso del Servicio de IA (ai_usage, credit_ledger y correlatos, salvo la conservación fiscal de comprobantes de compra), los datos de conexión de wearables (wearable_connections, oauth_states — tokens cifrados) y los datos de cuenta. Las tablas clínicas se borran en cascada desde profile_id (claves foráneas on delete cascade).
  3. Dependientes gestionados. La supresión de la cuenta también borra los datos de los dependientes gestionados (perfiles de menores) bajo esa cuenta. Antes de borrar a un menor, la app ofrece MIGRAR la tutela del menor a un co-tutor existente — en cuyo caso el perfil del menor sobrevive bajo el nuevo tutor, en lugar de ser borrado.
  4. Identidad (doble vía). Si el titular transaccionó, su identidad mínima (nombre/correo) se conserva cifrada solo por el plazo fiscal de la jurisdicción (Sección 6). Si no transaccionó — y siempre para menores — la identidad se SUPRIME en el acto de la supresión.
  5. Supresión efectiva. Eliminación permanente, en cascada, de los registros y de los documentos; limpieza de los datos en caché del dispositivo al cerrar sesión/borrar. La supresión es permanente, pero no se alega destrucción de claves de cifrado (crypto-shredding) ni irreversibilidad absoluta en copias de seguridad — eventuales copias expiran según los ciclos de conservación de la infraestructura.
  6. Conservación mínima legal. Incluso tras la supresión, se mantienen: (a) el mínimo de metadato que la ley exige (registro de que la supresión ocurrió); (b) los registros de acceso por el piso de 6 meses (art. 15) — metadato, sin contenido clínico; (c) la vía fiscal (comprobantes + identidad mínima de quien transaccionó) por el plazo fiscal de la jurisdicción (Sección 6); y (d) el índice forense mínimo (account_forensic_hold — ítem 4-A: identificadores de búsqueda en HMAC + IPs + account_ref/metadatos de guarda, sin PHI), por el plazo prescriptivo aplicable (misma duración que el plazo de guarda fiscal, por proporcionalidad; para menores, plazo REDUCIDO), para prevención de fraude, ejercicio/defensa de derechos y respuesta a autoridad competente, bajo acceso break-glass owner auditado. Nada de esto recompone el historial, que es suprimido.
  7. Plazo y confirmación. La supresión es una operación inmediata en la base de datos. No hay emisión de recibo automático; el titular puede solicitar la confirmación de la conclusión al DPDdpo@bas-ai.com — que responde con base en el registro mínimo de supresión (LGPD art. 6, X).
  8. Subencargados. La supresión se propaga a la infraestructura (Supabase). El contenido enviado a Anthropic es transitorio y conservado por un período limitado (~30 días) y luego suprimido por el subencargado, según sus términos. Para Apple (incl. datos de compra/suscripción vía In-App Purchase, como responsable independiente) y Resend (correo), se aplican los mecanismos de supresión de la respectiva plataforma respecto a los datos que cada una trata. RevenueCat no se utiliza.
  9. Desconexión de wearable (purga selectiva por proveedor, sin borrar la cuenta). Disponible en la pantalla de Integraciones. La desconexión: (a) revoca los tokens ante el proveedor (Oura: oauth/revoke; WHOOP: DELETE /v2/user/access); (b) elimina los datos de conexión (CONEX); (c) graba consent_events granted=false para la finalidad de la fuente; (d) aplica la política de datos importados — WHOOP: purga obligatoria de todos los datos con source='whoop' (exigencia contractual, verificable por conteo cero); Oura/HealthKit: el titular elige conservar o borrar. Los eventos de connect/disconnect/purge se registran en auditoría.

8. Edad mínima y datos de menores

La protección de niños y adolescentes observa el Estatuto del Niño y del Adolescente de Brasil (Ley 8.069/1990), la Ley 15.211/2025 (ECA Digital), el Art. 14 de la LGPD, el Art. 8 del RGPD (estándar de referencia) y la COPPA (EE. UU.).

Verificación de edad (Ley 15.211/2025 — ECA Digital, en vigor desde el 2026-03-17). La verificación de edad se hace por autodeclaración en el registro, con la atestación registrada en la aceptación (age_attestation, inmutable, con fecha/hora del servidor).

9. Notificación de nuevos subencargados y derecho de objeción

  1. Diligencia previa y DPA con obligaciones equivalentes (mínimo: no entrenamiento; salvaguardas de transferencia internacional — cláusulas contractuales tipo / SCC y mecanismo equivalente bajo la LGPD; límites contractuales de conservación cuando aplique).
  2. Aviso previo con una ventana de objeción de 30 días antes de que el nuevo subencargado trate datos, salvo urgencia de seguridad/continuidad.
  3. Derecho de objeción ante el DPD (dpo@bas-ai.com); cuando la finalidad depende de consentimiento (ai_processing, intl_transfer, family_sharing, wearable_sync_*), el nuevo tratamiento no ocurre sin el consentimiento registrado.

10. Derechos del titular (multijurisdicción)

Independientemente de la jurisdicción, el titular puede, vía la app o el DPD (dpo@bas-ai.com): acceder y exportar sus datos (portabilidad FHIR R4/PDF), rectificar, suprimir (Sección 7), revocar el consentimiento en cualquier momento y oponerse a tratamientos basados en interés legítimo.


11. Historial de versiones

VersiónFechaCambio
2.102026-07-19Adherencia observada de medicamentos (Onda 13, LIVE) + Registros Clínicos/FHIR (Onda 12, solo EE. UU., capability-gated). (a) Adherencia de medicamentos: la app pasa a importar de Apple Salud (iOS 26+) los eventos de dosis registrados como tomados (HKMedicationDoseEvent) a la tabla ya existente de tomas por horario, emparejados con un medicamento ya registrado por el usuario (nunca crea un ítem nuevo); es memoria de adherencia, nunca fiscalizacióncero notificaciones de dosis perdida, y Anthropic recibe solo el agregado factual de días (nunca porcentaje/juicio/causalidad). Misma categoría de dato ya declarada (rutina de medicación); nueva FUENTE de importación. Actividad ROPA #6 (fila ampliada) y celda de Anthropic (§3.2). DPIA dedicada DPIA_MED_ADESAO.md. (b) Registros Clínicos: construimos, y dejaremos disponible solo cuando Apple conceda la autorización necesaria (com.apple.developer.healthkit.access=health-records — proceso externo, semanas de plazo) y solo para cuentas en Estados Unidos, la importación de solo lectura de los registros clínicos estructurados del titular vía FHIR (análisis vía LOINC, vacunas, medicamentos, condiciones, procedimientos y alergias) a las vías ya existentes del historial; las notas clínicas de texto libre y los datos de cobertura/seguro nunca se importan. Hasta la concesión, la función permanece invisible. DPIA dedicada DPIA_CLINICAL_RECORDS_US.md. Recuento de subencargados mantenido en TRES (Supabase, Anthropic, Resend); sin nueva transferencia internacional (misma Anthropic ya declarada). Bump menor de transparencia — dispara la reaceptación (mismo mecanismo de todo bump). policy_version (app) 3.11.
2.92026-07-19Webhooks de wearable (Oura/WHOOP) + identificador seudónimo del perfil WHOOP + reconciliación de las anotaciones Oura. (a) Para recibir avisos de actualización/eliminación en tiempo real, pasamos a guardar un identificador seudónimo del perfil del titular en WHOOP (el user_id numérico que los propios registros ya traen — nunca nombre ni correo), usado solo para enrutar el webhook a la conexión correcta; el webhook solo señaliza una nueva sincronización (ningún dato clínico transita en él), tiene firma HMAC validada, y el evento de eliminación del proveedor borra la fila correspondiente en el historial (paridad de eliminación); las subscriptions de Oura nunca suscriben daily_stress. Nueva nota en el área de fuentes de wearable (§3.5). (b) Anotaciones del wearable (Oura enhanced tags) — reconciliadas a la Política de Privacidad 3.9: el texto libre (nombre personalizado y comentario) pasa a ser descartado en la importación y nunca llega a guardarse (minimización más fuerte que la descrita en la 2.8); guardamos solo el código de categoría estandarizado (el "tipo": café, alcohol, etc.), lectura solo-titular, eliminado al desconectar — y ese código, agregado por semana y nunca como texto libre, puede integrar el contexto enviado a Anthropic cuando (y solo cuando) el titular mantiene el Diario de salud (daily_journal) activo; el "consentimiento separado y explícito" antes descrito como inexistente ahora existe = ese daily_journal. Ajustadas la celda de Anthropic (§3.2), la nota dedicada (§3.2), el glosario (§2), la §3.5 y la actividad ROPA #14. (c) Las categorías totales de integración quedan enumeradas en la Política de Privacidad 3.9. Sin nuevo subencargado y sin nueva transferencia internacional (el identificador vive en la Supabase ya declarada). Bump menor de transparencia, bajo los consentimientos ya otorgados — dispara la reaceptación (reaparece la pantalla de aceptación; quien ya aceptó la 3.8 solo confirma la lectura — sin nuevo consentimiento afirmativo obligatorio). policy_version (app) 3.9.
2.82026-07-18Ronda consolidada (policy_version de la app 3.8). (a) Anotaciones de wearable (Oura enhanced tags, migración 0330): nueva categoría de PHI de la MISMA fuente ya conectada — texto libre (tipo, nombre personalizado, comentario) en wearable_annotations; lectura solo-titular, fuera del intercambio familiar, NUNCA enviada a Anthropic (exclusión fail-closed — nueva nota dedicada bajo la §3.2), eliminada incondicionalmente al desconectar (celda Oura de la §3.5 + actividad #14); requiere el alcance OAuth tag (las conexiones antiguas exigen reconexión). Oura sigue siendo responsable independiente — ningún subencargado nuevo. (b) Equipo de cuidado en el contexto del análisis (G3c): la celda Datos tratados de Anthropic (§3.2) pasa a declarar nombre + especialidad (e institución/motivo, si se indican) de los profesionales de care_teamnunca datos de contacto (teléfono/correo/dirección) ni el número de registro profesional (columnas no seleccionadas); el mismo conjunto que el chat ya enviaba. (c) Glucosa CGM agregada: el glosario PHI (§2) y la celda de Anthropic declaran que los días de monitor continuo se convierten en solo agregados diarios (media/mín/máx/CV/% dentro del rango 70–180 del estándar AGP) — lecturas continuas brutas nunca almacenadas. (d) Biblioteca educativa generada (marker_education): finalidad (d) de Anthropic — la generación recibe solo la coordenada abstracta del tema (cero datos personales del titular). (e) Cribados poblacionales (G2): nueva actividad ROPA #20 + fila en la matriz — tarjetas educativas in-app por edad/sexo, motor determinístico 100% en el dispositivo, nunca push, solo-titular adulto; ningún dato nuevo, ningún destinatario. (f) Condensación de series de wearable (G8, migración 0231): ítem 1-A de la política de conservación (§6) + matriz — las series diarias brutas pueden ser condensadas después de 13 meses en rollups semanales y después de 36 meses en mensuales (minimización; manuales/clínicas nunca). Recuento de subencargados mantenido en TRES (Supabase, Anthropic, Resend); sin nueva transferencia internacional. policy_version (app) 3.8.
2.72026-07-18Estado de embarazo autodeclarado (FASE 0) — reconciliación de la ROPA. (a) La app **dejó de importar y persistir la prueba de embarazo de HealthKit (la migración 0322 purga el legado): la mención fue eliminada de la lista de salud reproductiva importada a cycle_entries (Parte A / PHI) — permanecen flujo, sangrado intermenstrual, test de ovulación y moco cervical. (b) La celda Datos tratados de Anthropic (§3.2) pasa a declarar el estado de embarazo autodeclarado (enum de trimestre) — transitorio, solo cuando la titular adulta dispara el análisis/chat, bajo consentimiento propio pregnancy-state-1.0, on-device, nunca almacenado por nosotros, ausente de la vía batch/proactiva. Sin nuevo subencargado; recuento mantenido en TRES (Supabase, Anthropic, Resend); sin nueva transferencia internacional (la misma del análisis). policy_version (app) 3.7 — estado de embarazo.**
2.62026-07-17Índice forense post-eliminación (account_forensic_hold, migración 0308) — APLICADA a producción 2026-07-17. En el acto de la eliminación, y para toda cuenta (incl. menores — gate DPD; para el menor, plazo REDUCIDO y proporcional), se retiene un índice minimizado que sobrevive al borrado, con como máximo: identificadores de búsqueda (correo, Apple sub, teléfono, documento nacional) en HMAC-SHA256 con pepper dedicado guardado en una bóveda (Vault), cifrado por una clave-raíz gestionada fuera de la base de datos, nunca expuesto + IPs recientes en texto + account_ref/metadatos mínimos de guarda. SIN PHI, sin nombre/correo legible (dato SEUDONIMIZADO — LGPD Art. 12/13; no es anonimización). Finalidad: prevención de fraude, ejercicio/defensa de derechos y respuesta a autoridad competente. Plazo = plazo prescriptivo aplicable (misma duración que el plazo de guarda fiscal por proporcionalidad — 5/6/10 años), purga automática. Acceso break-glass owner vía RPCs auditadas; tabla blindada (RLS sin políticas, sin grant a admin_ops). Base (por finalidad): LGPD Art. 16, I + Art. 7, VI + Art. 7, IX; GDPR Art. 6(1)(f) + Art. 17(3)(e). Nueva actividad ROPA #19, nueva fila en la matriz finalidad→base→retención, e ítems §6 (4-A) y §7 (6). También: §3.4 de la Política agrega la IP de acceso y el user-agentrecopilado en el código en los accesos síncronos (edges analyze-exam/ai-assistant/access-ping, migración 0309). Recuento de subencargados mantenido en TRES (Supabase, Anthropic, Resend); sin nueva transferencia internacional. policy_version (app) 3.5 (índice forense consolidado y publicado en la Política 3.5; migraciones 0308/0309/0314 aplicadas a producción y verificadas el 2026-07-17).
2.52026-07-16Soporte asistido por IA — ACTIVACIÓN (go-live). El soporte-IA (redactar + traducir respuestas) pasa a OPERAR, siempre con revisión humana y minimización best-effort (nunca el historial clínico). Dos vías DESAGRUPADAS: titular con sesión vía nuevo consentimiento propio, por defecto OFF, support_ai_share (+ intl_transfer); remitente externo sin cuenta vía su consentimiento-primero propio (procesar + transferir a Anthropic/EE. UU.), antes de cualquier IA. Transferencia cubierta por el DPA/SCC existente de Anthropic (mismos términos que análisis/extracción/chat); sin nuevo subencargado; conservación ~30 días por Anthropic, nunca cero. Ajustadas la §3.2 (datos tratados) y la actividad ROPA de soporte. policy_version (app) 3.1.
2.42026-07-05Diario de salud sensible — opt-in de recopilación (daily_journal). (a) Nueva finalidad daily_journal (default OFF, bloqueo server-side por trigger, indisponible para menores) para la recopilación de registros diarios sensibles autodeclarados — alcohol (uso de sustancia) y estrés/contexto de la noche (salud mental) — fechados en body_measurements. (b) Anthropic: nota de alcance — esos registros NO se comparten con la IA (permanecen fuera de la allow-list de análisis analysis_core/wearable_context); un envío a la IA exigiría un consentimiento de IA separado y explícito, inexistente en esta versión. (c) Nueva actividad ROPA Diario de salud sensible (#18) y nueva fila en la matriz finalidad→base→conservación (Art. 7, I / 11, I + Art. 6(1)(a) / 9(2)(a); suprimido en la revocación, eliminado en la supresión de la cuenta). Recuento de subencargados mantenido en TRES (Supabase, Anthropic, Resend). policy_version 2.4.
2.32026-07-05Soporte en la app + borrador de respuesta asistido por IA (Opción A). (a) Nueva categoría SUP — Comunicaciones de soporte (support_tickets/support_ticket_messages, texto libre que puede contener datos de salud, guardado en Supabase) y número de cuenta público (account_ref) — identificador seudónimo generado por nosotros, 8 dígitos, no secuencial — añadido a la categoría CUENTA. (b) Supabase pasa a listar las comunicaciones de soporte entre los datos tratados. (c) Anthropic recibe, de forma transitoria, el texto de la conversación de soporte (nunca el historial clínico) cuando un operador activa el borrador de respuesta asistido por IAtransferencia internacional (EE. UU.) condicionada al consentimiento ai_processing/intl_transfer del titular del ticket. (d) Nota del Apple Private Email Relay en Resend. (e) Nueva actividad ROPA Atención al usuario y nueva fila Atención/Soporte en la matriz finalidad→base→conservación (Art. 7, V + Art. 11, I / 6(1)(b) + 9(2)(a)). (f) support_tickets/support_ticket_messages añadidos a la cascada de supresión de cuenta. Recuento de subencargados mantenido en TRES (Supabase, Anthropic, Resend). policy_version 2.3.
2.12026-06-23Alineación código×política (relevamiento autoritativo). (a) Lista de subencargados corregida a tres — Supabase, Anthropic y Resend; Apple, Oura y WHOOP reclasificados como responsables independientes/fuentes (Sección 3.5), no subencargados. (b) DPA declarados EN VIGOR: Supabase (firmado 2026-06-18, SCC UE + salvaguardas; sa-east-1/Brasil), Anthropic (Commercial Terms 2026-06-17 + SCC; NO ENTRENAMIENTO; ~30 días), Resend (DPF UE-EE. UU. + SCC, 2026-06-17). (c) Anthropic recibe la COPIA OCULTADA de la imagen/PDF (no la bruta), + sexo+edad+país+año de nacimiento (sin día/mes), sin identificadores directos y sin contactos de emergencia; la ocultación es en el dispositivo, best-effort, no anonimización. (d) Cifrado corregido a AEAD determinista vía pgsodium (AES-256). (e) Conservación en doble vía: identidad conservada solo para quien transaccionó (plazo fiscal por jurisdicción — 5/6/10 años); menores y no pagadores tienen su identidad suprimida en la supresión; consent_events desvinculado/seudonimizado (HMAC fuera de la base de datos); access_log 6 meses. (f) Supresión de cuenta borra PHI + archivos + datos de dependientes gestionados, con la opción de migrar la tutela de un menor a un co-tutor. (g) Nueva actividad ROPA A la espera de cuota/uso disponible (documento ocultado guardado hasta que haya cuota/uso disponible, analizado automáticamente). (h) SaMD/HIPAA explicitados: no es producto sanitario, la IA no verifica interacción/contraindicación/alergia×medicamento, HIPAA no aplica. (i) DPD actualizado a dpo@bas-ai.com; distribución mundial excepto UE/EEE+RU; protecciones RGPD/RU como base global. policy_version 2.1.
2.02026-06-22Go-live: precios finales, enrutamiento de modelo de IA actualizado, Legal 2.0.
1.62026-06-14Alineación de hecho (salud reproductiva y contexto de la IA).
1.52026-06-12Catálogo canónico de marcadores (LOINC®/UCUM) integrado — contenido licenciado, no subencargado.
1.42026-06-11Plazos de conservación concretos en el ROPA; base jurídica del núcleo clínico decidida (consentimiento primario).
1.32026-06-11Corrección de hecho: Anthropic = infraestructura en EE. UU.; conservación ~30 días; RevenueCat eliminado (IAP nativo); Resend añadido.
1.12026-06-10Integraciones de wearables: nuevas categorías de PHI y CONEX; Oura/WHOOP como fuentes; finalidades wearable_sync_*.
1.0Publicación inicial. Subencargados: Supabase (BR) y Anthropic (IA); Apple como plataforma.

El historial de versiones se publica en https://www.bas-ai.com/myhealth/legal/versoes; cada versión aceptada permanece archivada.


Nota de no diagnóstico. MyHealth organiza tu historial de salud y ofrece una lectura educativa y prudente. No es un producto sanitario, no diagnostica y no sustituye la evaluación de un profesional de salud. La IA no verifica interacciones medicamentosas, contraindicaciones ni cruza alergias con medicamentos. En una emergencia, busca atención médica de inmediato.