MedTime - Arquitectura Funcional
Identificador: MTS-ARQ-001
Version: 1.4.0
Fecha: 2025-12-01
Ultima Revision: Iteracion 7 - ACL6-009/011/012 Configuracion, Analytics e Internacionalizacion
Autor: SpecQueen
1. Visión General de la Arquitectura
MedTime es una suite multiplataforma compuesta por aplicaciones móviles (iOS/Android), aplicación web y servicios backend, diseñada con principios de seguridad por diseño, privacidad por defecto y escalabilidad.
2. Diagrama de Arquitectura de Alto Nivel
flowchart TB
subgraph PRESENTACION["CAPA DE PRESENTACION"]
iOS["App Movil iOS"]
Android["App Movil Android"]
Web["App Web SPA"]
end
subgraph GATEWAY["API GATEWAY"]
GW["Autenticacion | Rate Limiting | Logging"]
end
subgraph SERVICIOS["CAPA DE SERVICIOS"]
direction LR
SU["Servicio Usuarios"]
SM["Servicio Medicamentos"]
SA["Servicio Adherencia"]
SN["Servicio Notificacion"]
SR["Servicio Recetas/OCR"]
SC["Servicio Calendario"]
SG["Servicio Gamificacion"]
SP["Servicio Privacidad"]
end
subgraph DATOS["CAPA DE DATOS"]
BD["Base de Datos Relacional"]
OBJ["Almacenamiento de Objetos"]
CACHE["Cache/Mensajeria"]
end
subgraph EXTERNAS["INTEGRACIONES EXTERNAS"]
OCR["OCR/IA"]
PUSH["Push Notif"]
AUTH["Auth Propio + Social"]
DRUG["Drug Database BD Propia"]
end
iOS --> GW
Android --> GW
Web --> GW
GW --> SERVICIOS
SERVICIOS --> DATOS
DATOS --> EXTERNAS
Nota: Esta especificacion funcional no define tecnologias o proveedores especificos.
Las decisiones de implementacion seran tomadas por el equipo de desarrollo.
3. Componentes del Sistema
3.1. Capa de Presentación
Nota: Las tecnologías específicas mencionadas en esta sección sonsugerencias no vinculantes. Las decisiones finales de implementación serán tomadas por el equipo de desarrollo.
3.1.1. Aplicación Móvil iOS
| Aspecto |
Especificación |
| Tecnología |
Swift 5.9+, SwiftUI |
| Versión mínima |
iOS 16.0 (GAP-NFR-006) |
| Arquitectura |
MVVM + Clean Architecture |
| Almacenamiento local |
Core Data + Keychain |
| Notificaciones |
APNs + Local Notifications |
3.1.2. Aplicación Móvil Android
| Aspecto |
Especificación |
| Tecnología |
Kotlin 1.9+, Jetpack Compose |
| Versión mínima |
Android 12 (API 31) (GAP-NFR-006) |
| Arquitectura |
MVVM + Clean Architecture |
| Almacenamiento local |
Room + EncryptedSharedPreferences |
| Notificaciones |
FCM + WorkManager |
3.1.3. Aplicación Web
| Aspecto |
Especificación |
| Tecnología |
React 18+, Next.js 14 |
| Autenticación |
OAuth 2.0 / OpenID Connect |
| Estado |
TanStack Query + Zustand |
| UI Framework |
Tailwind CSS + Radix UI |
3.2. Capa de API Gateway
| Responsabilidad |
Descripción |
| Autenticación |
Validación de tokens JWT/OAuth |
| Autorización |
Verificación de permisos por recurso |
| Rate Limiting |
Protección contra abuso (por usuario/IP) |
| Logging |
Registro de todas las peticiones |
| Transformación |
Versionado de API, format conversion |
| Cache |
Respuestas cacheables |
3.3. Capa de Servicios (Microservicios)
3.3.1. Servicio de Usuarios
| Función |
Descripción |
| Gestión de perfiles |
CRUD de datos de paciente/cuidador |
| Preferencias |
Configuraciones de usuario |
| Relaciones |
Vínculos paciente-cuidador |
| Historial |
Registro de cambios de perfil |
3.3.2. Servicio de Medicamentos
| Función |
Descripción |
| Catálogo |
Búsqueda y consulta de medicamentos |
| Medicamentos del usuario |
Gestión de tratamientos activos |
| Interacciones |
Detección de interacciones medicamentosas |
| Historial |
Registro de medicamentos pasados |
3.3.3. Servicio de Recetas/OCR
| Función |
Descripción |
| Digitalización |
Procesamiento OCR de recetas |
| Validación |
Verificación asistida de datos extraídos |
| Almacenamiento |
Gestión de imágenes y metadatos |
| Vinculación |
Relación receta-medicamentos |
3.3.4. Servicio de Calendario
| Función |
Descripción |
| Programación |
Cálculo de horarios de toma |
| Eventos |
Agrupación de tomas en eventos |
| Ajustes |
Adaptación a hábitos del usuario |
| Sincronización |
Sync con calendarios externos |
3.3.5. Servicio de Adherencia
| Función |
Descripción |
| Registro |
Confirmación/omisión de tomas |
| Análisis |
Cálculo de métricas de adherencia |
| Anomalías |
Detección y registro de problemas |
| Reportes |
Generación de estadísticas |
3.3.6. Servicio de Notificaciones
| Función |
Descripción |
| Alertas |
Envío de recordatorios de toma |
| Escalamiento |
Notificación a cuidadores |
| Canales |
Push, SMS, Email según preferencia |
| Programación |
Scheduling inteligente |
3.3.7. Servicio de Gamificación
| Función |
Descripción |
| Logros |
Definición y otorgamiento de logros |
| Rachas |
Tracking de consistencia |
| Niveles |
Sistema de progresión |
| Recompensas |
Incentivos por adherencia |
3.3.8. Servicio de Privacidad
| Función |
Descripción |
| Consentimientos |
Gestión de permisos otorgados |
| Acceso |
Control de quién accede a qué |
| Auditoría |
Registro de accesos a datos |
| Exportación/Eliminación |
Derechos del titular |
3.4. Capa de Datos
Nota: Las tecnologías específicas mencionadas en esta sección sonsugerencias no vinculantes. Las decisiones finales de implementación serán tomadas por el equipo de desarrollo.
3.4.1. Base de Datos Principal (Sugerencia: PostgreSQL)
| Característica |
Especificación |
| Motor |
PostgreSQL 15+ |
| Cifrado |
TDE (Transparent Data Encryption) |
| Replicación |
Multi-AZ para alta disponibilidad |
| Backup |
Continuo con retención de 30 días |
| Particionamiento |
Por fecha para logs y eventos |
3.4.2. Almacenamiento de Archivos (Sugerencia: S3/GCS)
| Tipo de Archivo |
Política |
| Imágenes de recetas |
Cifrado AES-256, retención 7 años |
| Resultados de análisis |
Cifrado AES-256, retención 10 años |
| Exportaciones |
Cifrado, expiración 24 horas |
| Backups |
Cifrado, retención según tipo |
3.4.3. Cache y Mensajería (Sugerencia: Redis/RabbitMQ)
| Uso |
Tecnología |
| Sesión |
Redis con TTL |
| Cache de consultas |
Redis |
| Cola de notificaciones |
RabbitMQ |
| Eventos de dominio |
RabbitMQ |
4. Modelo de Datos Conceptual
4.1. Entidades Principales
erDiagram
Usuario ||--o{ Medicamento : "tiene"
Usuario ||--o{ Consentimiento : "otorga"
Usuario ||--o{ Logro : "obtiene"
Medicamento ||--o{ Receta : "proviene de"
Medicamento ||--o{ TomaProgramada : "genera"
TomaProgramada ||--o{ TomaRegistro : "registra"
TomaProgramada ||--o{ Alerta : "dispara"
TomaRegistro ||--o{ Anomalia : "reporta"
Usuario {
uuid id PK
string nombre
string email
enum tipo "paciente|cuidador"
}
Medicamento {
uuid id PK
string nombre
string dosis
boolean activo
}
Receta {
uuid id PK
string imagen_url
date fecha
}
TomaProgramada {
uuid id PK
time hora
string frecuencia
}
TomaRegistro {
uuid id PK
timestamp fecha_hora
enum estado "tomado|omitido|retrasado"
}
Alerta {
uuid id PK
timestamp programada
boolean enviada
}
Anomalia {
uuid id PK
string descripcion
enum severidad
}
Consentimiento {
uuid id PK
string tipo
timestamp otorgado
}
Logro {
uuid id PK
string nombre
timestamp obtenido
}
4.2. Descripción de Entidades
| Entidad |
Descripción |
Datos Sensibles |
| Usuario |
Paciente o cuidador del sistema |
Sí (PII) |
| Medicamento |
Medicamento en tratamiento activo |
Sí (PHI) |
| Receta |
Receta médica digitalizada |
Sí (PHI) |
| TomaProgramada |
Horario planificado de toma |
Sí (PHI) |
| TomaRegistro |
Registro de toma realizada/omitida |
Sí (PHI) |
| Alerta |
Notificación programada o enviada |
No |
| Anomalía |
Problema reportado con medicamento |
Sí (PHI) |
| Consentimiento |
Permiso otorgado por el usuario |
Sí |
| Logro |
Achievement de gamificación |
No |
5. Flujo de Datos de Seguridad
5.1. Clasificación de Datos
| Clasificación |
Ejemplos |
Controles |
| Público |
Catálogo general de medicamentos |
Cache público |
| Interno |
Configuraciones de sistema |
Acceso administrativo |
| Confidencial |
Datos de perfil (nombre, email) |
Cifrado, acceso autenticado |
| Restringido |
PHI (medicamentos, recetas, adherencia) |
Cifrado doble, MFA, audit log |
5.2. Flujo de Autenticación
sequenceDiagram
participant U as Usuario
participant A as App
participant AP as Auth Provider
participant MFA as Validacion MFA
participant GW as API Gateway
participant S as Servicio
U->>A: Credenciales
A->>AP: Solicitud autenticacion
AP->>MFA: Verificar segundo factor
MFA-->>AP: MFA validado
AP-->>A: Token JWT con claims
A->>GW: Request + Token
GW->>GW: Verificacion de permisos
GW->>S: Request autorizado
S-->>GW: Response
GW-->>A: Response
A-->>U: Datos
6. Requisitos No Funcionales
Iteracion 13: Valores especificos de performance definidos.
| Métrica |
Objetivo |
Crítico |
Medicion |
| Autenticacion (login, refresh) |
< 300ms |
< 500ms |
p95 |
| Operaciones CRUD |
< 200ms |
< 400ms |
p95 |
| Sincronizacion offline |
< 1s |
< 3s |
p95 |
| Tiempo de carga app (cold start) |
< 3s |
< 5s |
p50 |
| Tiempo de procesamiento OCR |
< 10s |
< 30s |
p95 |
| Latencia de notificación |
< 5s |
< 30s |
p95 |
| Busqueda en catalogo |
< 200ms |
< 500ms |
p95 |
| Deteccion interacciones |
< 500ms |
< 2s |
p95 |
6.2. Escalabilidad y Concurrencia (GAP-NFR-002)
Iteracion 13: Rate limits y niveles de concurrencia definidos.
| Métrica |
Minimo |
Objetivo |
Maximo |
| Usuarios concurrentes |
1,000 |
10,000 |
100,000 |
| Notificaciones por minuto |
10,000 |
100,000 |
500,000 |
| Crecimiento mensual soportado |
10% |
20% |
50% |
6.2.1. Rate Limits por Tier
| Endpoint |
Free |
Pro |
Perfect |
| API general |
60/min |
120/min |
300/min |
| Busqueda catalogo |
30/min |
60/min |
120/min |
| Sincronizacion |
10/min |
30/min |
60/min |
| OCR |
3/dia |
10/dia |
30/dia |
| Interacciones IA |
3/dia |
10/dia |
30/dia |
6.3. Disponibilidad (GAP-NFR-003)
Iteracion 13: SLA uniforme 99.0% para v1.0 con plan de mejora.
| Servicio |
SLA v1.0 |
SLA v2.0+ |
RPO |
RTO |
| API Core |
99.0% |
99.9% |
1 hora |
4 horas |
| Notificaciones |
99.0% |
99.5% |
1 hora |
2 horas |
| OCR |
99.0% |
99.0% |
N/A |
8 horas |
| Portal Web |
99.0% |
99.5% |
N/A |
4 horas |
| Sincronizacion |
99.0% |
99.5% |
15 min |
2 horas |
6.3.1. Auto-scaling (GAP-NFR-004)
Iteracion 13: Triggers y limites de auto-scaling.
| Trigger |
Umbral |
Accion |
Limite |
| CPU |
> 70% por 5min |
Scale up +1 |
Max 10 instancias |
| Memoria |
> 80% por 5min |
Scale up +1 |
Max 10 instancias |
| Requests |
> 1000/s por 2min |
Scale up +2 |
Max 20 instancias |
| Latencia p95 |
> 500ms por 5min |
Scale up +1 |
Max 10 instancias |
| CPU |
< 30% por 15min |
Scale down -1 |
Min 2 instancias |
6.3.2. Storage por Tier (GAP-NFR-005)
Iteracion 13: Limites de almacenamiento cloud por tier.
| Tier |
Storage Cloud |
Backups |
Archivos Adjuntos |
| Free |
0 (solo local) |
Manual local |
No |
| Pro |
5 GB |
Automatico diario |
Imagenes recetas |
| Perfect |
50 GB |
Automatico c/6h |
Todos (recetas, analisis, fotos) |
6.4. Accesibilidad
| Estandar |
Nivel |
Alcance |
| WCAG 2.1 |
AA |
Aplicacion web |
| iOS Accessibility |
Completo |
App iOS |
| Android Accessibility |
Completo |
App Android |
7. Especificacion de Accesibilidad (ACL4-012)
Decision Round 4: Incluir seccion de accesibilidad en arquitectura funcional para visibilidad global.
7.1. Principios de Accesibilidad
MedTime se compromete a ser accesible para todos los usuarios, incluyendo personas con discapacidades visuales, auditivas, motoras o cognitivas.
| Principio WCAG |
Descripcion |
Implementacion |
| Perceptible |
Informacion presentable de multiples formas |
Texto alternativo, contraste, tamano ajustable |
| Operable |
Interfaz navegable por diferentes metodos |
Teclado, voz, gestos simplificados |
| Comprensible |
Contenido legible y predecible |
Lenguaje simple, consistencia |
| Robusto |
Compatible con tecnologias asistivas |
Semantica HTML, ARIA labels |
7.2. Requisitos por Categoria
7.2.1. Accesibilidad Visual
| Requisito |
Especificacion |
Prioridad |
| VoiceOver/TalkBack |
Todas las pantallas navegables por lector de pantalla |
Critica |
| Contraste de colores |
Minimo 4.5:1 para texto normal, 3:1 para texto grande |
Critica |
| Tamano de fuente |
Soportar fuentes del sistema hasta 200% |
Alta |
| Daltonismo |
No depender solo del color para comunicar estados |
Alta |
| Modo oscuro |
Soporte completo con contraste adecuado |
Media |
7.2.2. Accesibilidad Motora
| Requisito |
Especificacion |
Prioridad |
| Areas tactiles |
Minimo 44x44 puntos (iOS) / 48x48 dp (Android) |
Critica |
| Tiempo de interaccion |
No limitar tiempo para completar acciones |
Alta |
| Gestos alternativos |
Alternativas para gestos complejos (swipe, pinch) |
Alta |
| Navegacion por teclado |
Todas las funciones accesibles sin touch (web) |
Alta |
7.2.3. Accesibilidad Auditiva
| Requisito |
Especificacion |
Prioridad |
| Alertas visuales |
Complementar sonidos con indicadores visuales |
Critica |
| Vibracion |
Opcion de vibracion para todas las alertas |
Alta |
| Sin dependencia de audio |
Funcionalidad completa sin sonido |
Alta |
7.2.4. Accesibilidad Cognitiva
| Requisito |
Especificacion |
Prioridad |
| Lenguaje simple |
Evitar jerga medica compleja sin explicacion |
Alta |
| Instrucciones claras |
Pasos explicitos para cada accion |
Alta |
| Consistencia |
Patrones de navegacion uniformes |
Alta |
| Retroalimentacion |
Confirmar acciones de forma clara |
Alta |
| Tolerancia a errores |
Permitir deshacer acciones criticas |
Media |
7.3.1. iOS
| Tecnologia |
Soporte |
Implementacion |
| VoiceOver |
Completo |
Accessibility labels en todos los elementos |
| Dynamic Type |
Completo |
Fuentes escalables hasta 200% |
| Reduce Motion |
Completo |
Alternativas a animaciones |
| Switch Control |
Completo |
Navegacion secuencial funcional |
| Voice Control |
Parcial |
Comandos de voz para acciones principales |
7.3.2. Android
| Tecnologia |
Soporte |
Implementacion |
| TalkBack |
Completo |
Content descriptions en todos los elementos |
| Font Size |
Completo |
sp units para texto escalable |
| Remove Animations |
Completo |
Respetar preferencia del sistema |
| Switch Access |
Completo |
Navegacion secuencial funcional |
| Voice Access |
Parcial |
Comandos de voz para acciones principales |
7.3.3. Web
| Tecnologia |
Soporte |
Implementacion |
| ARIA |
Completo |
Roles, states y properties semanticos |
| Keyboard Navigation |
Completo |
Tab order logico, focus visible |
| Screen Readers |
Completo |
Compatible con JAWS, NVDA, VoiceOver |
| High Contrast |
Completo |
Modo de alto contraste del sistema |
| Zoom |
Completo |
Funcional hasta 200% zoom |
| Requisito |
Especificacion |
| Lectores de pantalla |
Widgets anuncian contenido correctamente |
| Contraste |
Mismo requisito que app principal |
| Tamano de texto |
Respetar configuracion del sistema |
| Acciones |
Accesibles via accessibility actions |
7.4.2. Smartwatch
| Requisito |
Especificacion |
| VoiceOver (watchOS) |
Todas las pantallas navegables |
| TalkBack (Wear OS) |
Soporte basico para lector de pantalla |
| Haptics |
Patrones tactiles distinguibles |
| Tamano de texto |
Soportar preferencias del sistema |
7.5. Pruebas de Accesibilidad
| Tipo de Prueba |
Herramienta |
Frecuencia |
| Automatizada iOS |
Accessibility Inspector |
Cada build |
| Automatizada Android |
Accessibility Scanner |
Cada build |
| Automatizada Web |
axe, Lighthouse |
Cada PR |
| Manual VoiceOver |
Dispositivo real |
Sprint |
| Manual TalkBack |
Dispositivo real |
Sprint |
| Usuarios reales |
Beta testers con discapacidades |
Pre-release |
7.6. Metricas de Accesibilidad
| Metrica |
Objetivo |
Medicion |
| WCAG 2.1 AA compliance |
100% |
Auditoria automatizada |
| Errores de accesibilidad criticos |
0 |
Accessibility Scanner |
| Tiempo de navegacion VoiceOver |
< 2x tiempo visual |
Pruebas manuales |
| Satisfaccion usuarios con discapacidad |
> 4/5 |
Encuestas |
7.7. Reglas de Negocio de Accesibilidad
| ID |
Regla |
| RN-ACC-001 |
Todas las imagenes deben tener texto alternativo descriptivo |
| RN-ACC-002 |
Colores no deben ser el unico indicador de estado |
| RN-ACC-003 |
Alertas deben tener componente visual, auditivo y tactil |
| RN-ACC-004 |
Tiempos de espera deben ser configurables o eliminados |
| RN-ACC-005 |
Navegacion debe ser consistente en toda la aplicacion |
| RN-ACC-006 |
Errores deben explicar claramente como corregirlos |
| RN-ACC-007 |
Modo discreto debe ser accesible via lector de pantalla |
8. Principios de Diseno
8.1. Seguridad por Diseno
- Defense in Depth: Multiples capas de seguridad
- Least Privilege: Minimos permisos necesarios
- Fail Secure: Fallas hacia estado seguro
- Zero Trust: Verificar siempre, nunca confiar
8.2. Privacidad por Defecto
- Data Minimization: Solo datos necesarios
- Purpose Limitation: Uso solo para proposito declarado
- Consent First: Accion solo con consentimiento
- Transparency: Claridad sobre uso de datos
8.3. Resiliencia
- Graceful Degradation: Funcionalidad reducida ante fallas
- Offline First: Funciones criticas sin conexion
- Circuit Breaker: Aislamiento de fallas
- Retry with Backoff: Recuperacion automatica
9. Sistema de Configuracion Centralizada (ACL6-009)
Decision ACL6-009: Configuracion completa desde v1.0.
mindmap
root((CONFIGURACION))
Cuenta
Perfil personal
Cambiar contrasena
Metodos de autenticacion
Sesiones activas
Eliminar cuenta
Notificaciones
Recordatorios de tomas
Alertas a cuidadores
Sonidos y vibracion
Modo no molestar
Canales Push/SMS/Email
Privacidad
Datos compartidos
Cuidadores activos
Historial de accesos
Exportar mis datos
Consentimientos
Apariencia
Tema Claro/Oscuro/Sistema
Tamano de texto
Modo discreto
Colores de widgets Pro/Perfect
Regional
Idioma
Zona horaria
Formato de fecha
Formato de hora
Unidades metrico/imperial
Salud
Rangos objetivo Pro/Perfect
Alertas valores criticos
Integraciones Health
Suscripcion
Mi plan actual
Creditos IA disponibles
Cambiar plan
Historial de pagos
Backup y Datos
Crear backup manual
Restaurar backup
Sincronizacion cloud Pro/Perfect
Ayuda
Tutoriales
FAQ
Contactar soporte
Acerca de MedTime
9.2. Configuracion de Unidades
| Tipo |
Opciones |
Default |
| Peso |
kg, lb |
Segun pais |
| Altura |
cm, ft/in |
Segun pais |
| Temperatura |
Celsius, Fahrenheit |
Segun pais |
| Glucosa |
mg/dL, mmol/L |
Segun pais |
| Volumen liquidos |
ml, oz |
Segun pais |
9.3. Defaults por Pais
| Pais |
Peso |
Temp |
Glucosa |
Fecha |
Hora |
| Mexico |
kg |
C |
mg/dL |
DD/MM/YYYY |
24h |
| Estados Unidos |
lb |
F |
mg/dL |
MM/DD/YYYY |
12h |
| Brasil |
kg |
C |
mg/dL |
DD/MM/YYYY |
24h |
| Espana |
kg |
C |
mg/dL |
DD/MM/YYYY |
24h |
10. Sistema de Analytics y Telemetria (ACL6-011)
Decision ACL6-011: Analytics completo con opt-out claro. Medicamentos con anonimato estricto.
10.1. Categorias de Metricas
| Categoria |
Datos |
Identificable |
Consentimiento |
| Uso de app |
Pantallas visitadas, tiempo en app |
Anonimo |
Opt-out |
| Funcionalidades |
Features usados, frecuencia |
Anonimo |
Opt-out |
| Performance |
Tiempos de carga, errores |
Anonimo |
Implicito |
| Crashes |
Stack traces, dispositivo |
Pseudo-anonimo |
Implicito |
| Conversion |
Upgrades, downgrades |
Identificado |
Implicito |
| Medicamentos |
Uso agregado por categoria |
Anonimo estricto |
Opt-out |
10.2. Metricas de Uso (Anonimas)
| Metrica |
Proposito |
Retencion |
| DAU/MAU |
Medir engagement |
90 dias |
| Retention D1/D7/D30 |
Medir retencion |
90 dias |
| Feature adoption |
Priorizar desarrollo |
90 dias |
| Flujos completados |
Optimizar UX |
30 dias |
| Tiempo en pantalla |
Entender uso |
30 dias |
10.3. Telemetria de Errores
| Dato Capturado |
Proposito |
| Stack trace |
Debugging |
| Version de app |
Identificar regresiones |
| Version de OS |
Compatibilidad |
| Modelo de dispositivo |
Compatibilidad |
| Memoria disponible |
Performance |
| Conexion de red |
Diagnostico |
10.4. Control del Usuario
| Opcion |
Default |
Ubicacion |
| Analytics de uso |
On |
Configuracion > Privacidad |
| Reportes de errores |
On |
Configuracion > Privacidad |
| Mejora de producto |
On |
Configuracion > Privacidad |
| Comunicaciones |
Off |
Configuracion > Notificaciones |
10.5. Datos que NUNCA se Recolectan para Analytics
| Dato |
Razon |
| Nombres de medicamentos individuales |
PHI |
| Valores de mediciones especificos |
PHI |
| Nombres de pacientes |
PII |
| Contenido de recetas |
PHI |
| Ubicacion exacta |
PII |
| Historial de tomas especifico |
PHI |
10.6. Anonimizacion de Medicamentos
Para analytics de uso por categoria terapeutica (ej: "30% de usuarios usan antidiabeticos"):
| Proceso |
Descripcion |
| Agregacion |
Solo reportes con N > 100 usuarios |
| Delay |
Datos agregados despues de 7 dias |
| Categoria |
Solo categoria ATC nivel 2, no medicamento especifico |
| Hash |
IDs de usuario hasheados con salt rotativo |
10.7. Reglas de Analytics
| ID |
Regla |
| RN-ANL-001 |
Datos de analytics son anonimos y agregados |
| RN-ANL-002 |
Usuario puede desactivar analytics en cualquier momento |
| RN-ANL-003 |
Nunca se recolectan datos PHI para analytics |
| RN-ANL-004 |
Retencion de analytics: 90 dias |
| RN-ANL-005 |
Medicamentos solo en categoria agregada con N > 100 |
| RN-ANL-006 |
Opt-out elimina datos historicos del usuario |
11. Internacionalizacion (ACL6-012)
Decision ACL6-012: 3 idiomas (ES, EN, PT) con variantes regionales desde v1.0.
11.1. Idiomas Soportados
| Idioma |
Codigo |
Paises |
Version |
| Espanol |
es |
MX, ES, CO, AR, CL |
v1.0 |
| Ingles |
en |
US, GB |
v1.0 |
| Portugues |
pt |
BR |
v1.0 |
11.2. Variantes Regionales
| Variante |
Diferencias |
| es-MX |
Terminologia mexicana, regulaciones COFEPRIS |
| es-ES |
Terminologia espanola, regulaciones europeas |
| pt-BR |
Terminologia brasilena, regulaciones ANVISA |
| en-US |
Formato fecha MM/DD, unidades imperiales |
| en-GB |
Formato fecha DD/MM, unidades metricas |
| Region |
Fecha |
Hora |
Numero |
Moneda |
| Mexico |
DD/MM/YYYY |
24h |
1,234.56 |
MXN |
| Estados Unidos |
MM/DD/YYYY |
12h |
1,234.56 |
USD |
| Brasil |
DD/MM/YYYY |
24h |
1.234,56 |
BRL |
| Espana |
DD/MM/YYYY |
24h |
1.234,56 |
EUR |
11.4. Catalogos de Medicamentos por Pais
| Pais |
Fuente |
Estado |
| Mexico |
Compendio CSG |
v1.0 |
| Estados Unidos |
RxNorm/NDC |
Placeholder v1.5 |
| Brasil |
ANVISA |
Placeholder v1.5 |
11.5. Elementos a Traducir
| Elemento |
Prioridad |
Tipo de Traduccion |
| UI (botones, labels) |
Critica |
Profesional |
| Mensajes de error |
Alta |
Profesional |
| Notificaciones |
Alta |
Profesional |
| FAQ y ayuda |
Media |
Profesional |
| Legal (ToS, Privacy) |
Critica |
Profesional + Legal |
| Emails transaccionales |
Alta |
Profesional |
11.6. Seleccion de Idioma
flowchart TD
A[Inicio App] --> B{Idioma del SO soportado?}
B -->|Si| C[Usar idioma del SO]
B -->|No| D[Usar es-MX como fallback]
C --> E{Usuario cambia manualmente?}
D --> E
E -->|Si| F[Aplicar nuevo idioma]
E -->|No| G[Mantener idioma actual]
F --> H[Cambio inmediato sin reinicio]
G --> I[Continuar]
H --> I
11.7. Reglas de Internacionalizacion
| ID |
Regla |
| RN-I18N-001 |
Idioma default es el del sistema operativo |
| RN-I18N-002 |
Fallback a es-MX si idioma no soportado |
| RN-I18N-003 |
Cambio de idioma no requiere reinicio |
| RN-I18N-004 |
Documentos legales deben existir en todos los idiomas |
| RN-I18N-005 |
Formatos de fecha/hora/numero respetan preferencia regional |
| RN-I18N-006 |
Catalogo de medicamentos depende del pais del usuario |
12. Centro de Ayuda y Soporte (ACL6-010)
Decision ACL6-010: FAQ + Email v1.0, chat para Pro/Perfect en v1.5.
12.1. Estructura del Centro de Ayuda
mindmap
root((AYUDA))
Tutoriales
Lista por tema
Preguntas Frecuentes
Cuenta y registro
Medicamentos
Alertas y notificaciones
Sincronizacion y backup
Privacidad y datos
Suscripciones
Problemas tecnicos
Contactar Soporte
Email Todos
Chat Pro/Perfect v1.5
Estado del Servicio
Estado actual
Historial incidentes
Acerca de
Version de la app
Terminos de servicio
Aviso de privacidad
Licencias de terceros
12.2. Canales de Soporte por Tier
| Canal |
Free |
Pro |
Perfect |
| FAQ in-app |
Si |
Si |
Si |
| Email |
Si (72h) |
Si (24h) |
Si (4h) |
| Chat |
No |
v1.5 (horario) |
v1.5 (24/7) |
| Telefono |
No |
No |
Emergencias |
13. Referencias
Documento generado por SpecQueen - La especificación funcional ES el sistema.