AMG MED MX
📊 Reporte de Avance
🔄 Flujo Operativo
● guardado
/ Technical Progress Report
ACTIVE · M1/3
2026-03-24
CONFIDENTIAL v1.0.0-alpha FlutterFlow · Firebase · CENATRA

AMG MED México
Technical Progress Report

Adaptación del sistema de gestión de importación de tejido corneal al mercado mexicano. Estado técnico al cierre del Mes 1.

Cliente
AMG MED GROUP CORP
Responsable técnico
AION Media Developers
Sprint actual
Sprint 1 — Análisis & Fundamentos
Entrega estimada
Junio 2026 · México live
Análisis
Semana 1–2
Arquitectura
Semana 2–3
Schema MX
Semana 3
Multi-tenant
Semana 4 — ahora
5
UI México
Mes 2
6
PDFs CENATRA
Mes 2–3
7
QA & Deploy
Mes 3
01 Métricas de Análisis Mes 1 completado
161
Archivos Dart analizados
71,134 líneas de código fuente
128+
Campos Firestore mapeados
9 colecciones · 27 docs técnicos
11
Bugs identificados
3 críticos · 4 medios · 4 bajos
34
Puntos de cambio México
10 campos RUT · 24 labels UI
02 Estado de Implementación por Componente
implementation_status.json Sprint 1 — en curso
Componente Descripción Archivos afectados Estado
firestore_schema_MX Esquema completo de Firestore para México documentado: CURP, ID_CENATRA, RFC, cédulas, guía aérea AWB solicitudes_record.dart, directorio_record.dart ✓ completado
multi_tenant_design Arquitectura de separación Chile/México por campo country: 'CL' | 'MX' en todas las colecciones 6 colecciones principales ✓ completado
importaciones_entity Nueva colección Firestore para agrupar N córneas por carta CENATRA. Diferencia arquitectónica clave vs Chile (1:1 → 1:N) importaciones_record.dart (nuevo) → en implementación
country_field_migration Inserción de campo country en colecciones existentes. Migración de datos Chile a country: 'CL' sin downtime batch_update_solicitudes.dart → en implementación
roles_system_v2 Sistema de 5 roles (super_admin, admin_pais, operador, auditor, doctor) reemplaza flag binario isAdmin usuarios_record.dart, nav.dart → en implementación
firestore_security_rules Cierre de reglas abiertas (allow read, write: if true). Seguridad por auth + país + rol firestore.rules → en implementación
UI_labels_MX 24 cambios de texto en UI: RUT → CURP/RFC/Cédula Profesional en 10 archivos Dart primera_solicitud, datos_solicitudes, directorio (+8) ○ mes 2
pdf_templates_MX 5 templates adaptados + 2 nuevos: Carta CENATRA (multi-córnea) y Constancia de Entrega-Recepción descarga_cartas_widget.dart, api_calls.dart ○ mes 3
logistics_module Campos: guía aérea AWB, número de vuelo, aerolínea, ruta, persona autorizada retiro CENATRA. Validación estricta (tejido perecedero) primera_solicitud_widget.dart ○ mes 2
bug_fixes_critical 3 bugs críticos: TissuedetailsDoctor sin auth, EditarRegistroHistorico solo print(), GenerateReport no funcional tissue_details_doctor_widget.dart (+2) → en resolución
03 Schema Diff — Chile vs México Colección: Solicitudes
🇨🇱 Chile — Schema actual producción
RUT_pacienteString · ISP
RUT_cirujanoString · ISP
RUT_centroString · ISP
rut_representanteString
estatusString
fecha_cirugiaDateTime
nombre_cirujanoString
instalacion_quirurgicaString
🇲🇽 México — Schema propuesto en implementación
CURP + id_cenatraString × 2 · CENATRA
cedula_profesional + cedula_especialidadString × 2 · SEP
RFC_centroString · 13 chars · SAT
RFC_representanteString · SAT
estatusString
fecha_cirugiaDateTime
nombre_cirujanoString
instalacion_quirurgicaString
country'MX' — multi-tenant key
guia_aerea_awbString · crítico logística
numero_vueloString
importacion_refRef → Importaciones
importaciones_record.dart — Nueva entidad México nuevo · en desarrollo
/// Nueva colección exclusiva México
/// 1 importación agrupa N córneas → 1 Carta CENATRA
/// Diferencia arquitectónica fundamental vs Chile (1 solicitud = 1 córnea)

class ImportacionesRecord extends FirestoreRecord {
  final String importacion_id;
  final List<DocumentReference> solicitudes; // N córneas
  final String guia_aerea_awb;             // ⚠️ crítico — error bloquea tejido
  final String numero_vuelo;
  final String aerolinea;
  final String persona_retiro;             // autorizado por CENATRA
  final String estado_cenatra;             // pendiente|enviada|aprobada
  final String carta_cenatra_url;          // PDF generado
  final String permiso_cofepris;
  final String country = 'MX';
}
04 Bugs Identificados — Auditoría Sistema Chile 11 total · 3 críticos
# Archivo Descripción Severidad Estado
BUG-001 tissue_details_doctor_widget.dart Página accesible sin autenticación — vulnerabilidad de seguridad crítico → en resolución
BUG-002 editar_registro_historico_widget.dart Botón "Actualizar datos" solo ejecuta print() — sin funcionalidad real crítico → en resolución
BUG-003 generate_report_widget.dart Ambos botones de reporte solo ejecutan print() crítico → en resolución
BUG-004 batch_delete.dart sublist(i, i+500) genera RangeError en último batch con <500 items medio ○ mes 2
BUG-005 api_calls.dart Double-quotes en JSON de ExportXLSXCall causan parsing error medio ○ mes 2
BUG-006 nuevo_documento_widget.dart Botón "Subir documento" solo ejecuta print() — uploads no funcionales medio ○ mes 2
05 Roadmap Técnico 3 meses
Mes 1 — Cierre
Análisis & Fundamentos
campo country implementado en 6 colecciones
sistema de roles v2 (5 niveles) en Usuarios
Firestore Security Rules iniciales
migración datos Chile → country='CL'
bugs críticos BUG-001/002/003 resueltos
Mes 2
Funcionalidad Core MX
campos CURP, RFC, cédulas en Solicitudes
colección Importaciones + UI completa
módulo logístico AWB · vuelo · aerolínea
24 cambios labels UI aplicados
validación RFC (13) · CURP (18 chars)
bugs medios BUG-004/005/006 resueltos
Mes 3
PDFs CENATRA & Deploy
5 templates PDF adaptados a México
Carta CENATRA multi-córnea (nueva)
Constancia Entrega-Recepción (nueva)
QA con equipo operativo México (Damián)
capacitación · deploy · México live
06 Risk Register 6 riesgos activos
ALTO
Guía aérea AWB — dato crítico perecedero
Un dígito erróneo en el AWB bloquea el tejido corneal en aduana (perecedero). El operador ingresa el dato manualmente sin validación actual.
Mitigación: validación estricta de formato AWB + campo read-only post-confirmación · mes 2
ALTO
Auth bypass en TissuedetailsDoctor
Página accesible sin autenticación. Exposición de datos de pacientes y tejidos sin credenciales.
Mitigación: guard de autenticación implementándose · BUG-001 · semana actual
MEDIO
Formularios hospitalarios externos — dependencia bloqueante
Cada clínica mexicana usa formatos distintos. AMG no puede avanzar sin el formulario del hospital — proceso externo no controlable por el sistema.
Mitigación: plantilla estandarizada + sistema de seguimiento de entrega · mes 2
MEDIO
Typos en campos Firestore de producción
Campos Dirrecion y referecia_solicitud en producción con datos reales. Corrección directa destruiría datos existentes.
Mitigación: alias de campo en capa de aplicación · sin migración destructiva
AMG MED
Viendo como
RP
Ramiro Parra
MA
María Antonieta
DA
Damián
Sistema operativo
0 / 12
ESC