Cuando Aldo nos mostró el sistema viejo de la óptica, lo primero que vimos fue una carpeta con 12 archivos .DBF y un ejecutable .EXE compilado en Borland C++ Builder 5 de 1999.
FoxPro DBF es un formato binario plano que Microsoft dejó de soportar oficialmente hace años. Pero la óptica tenía 15 años de historia clínica adentro. No era opcional migrar bien.
El proceso en 5 pasos
- 1. Extraer estructura: parser Python con dbfread leyó los 12 archivos y mapeó campos.
- 2. Detectar formatos legacy: los datos venían con campos ultracortos (odE, odC, odJ, oiR, obs, esp) en vez de los nombres modernos. Hubo que escribir un parser de 6 formatos de strings raw de receta.
- 3. Normalizar: nombres en mayúsculas con acentos perdidos, teléfonos con espacios random, DNIs como integers, fechas como strings. Cada campo necesitó su propia normalización.
- 4. Detectar duplicados fonéticos: JHON y JOHN aparecían como personas distintas. Implementamos Soundex adaptado a español + quechua.
- 5. Subir en chunks a Supabase: app_data con RLS multi-tenant. 16,147 clientes en chunks de 500 para no saturar.
Lo que aprendimos
Si vas a migrar desde un sistema viejo a LUNARA, no te preocupes por el formato. Lo hicimos con FoxPro DBF; lo podemos hacer con Excel, con cualquier SaaS español, con cuadernos escaneados. Lo que importa es no perder ni un paciente.
"Los 16K que tenía en cuadernos están todos en LUNARA. Los busco por DNI y aparecen en 200 milisegundos. No perdí uno solo."
Si tenés una óptica con data en cualquier sistema viejo, escribinos por WhatsApp. La migración es parte del onboarding — no la facturamos aparte.