Logística Bidafarma

App de control de carga y reparto de medicamentos

El Cliente

BIDAFARMA, S.C.A. es la segunda cooperativa nacional de distribución farmacéutica por volumen de facturación. Con presencia en casi todo el territorio español, actualmente está en expansión.

El Reto

La solución existente estaba basada en el stack tecnológico de Microsoft de 2006. Si bien el backend podía seguir desempeñando su función con bajo nivel de riesgo y aprovechando la integración existente con SAP, el frontend, implementado como aplicación .Net Compact Framework 2.0 para Windows Mobile sobre terminales rugerizados de Zebra había alcanzado su final de vida útil. La migración debía hacerse cuanto antes y con el menor impacto posible en el servicio, pues la distribución de medicamentos es una tarea crítica y los riesgos ocasionados por fallos en la logística pueden acarrear consecuencias muy graves.

La Estrategia

El cliente quería preservar al 100% la funcionalidad de la app y la implementación existente que, aunque mantenida por LinkedBytes, era heredada de otro proveedor. Había que replicar el comportamiento de la aplicación e implementar toda la lógica usando los servicios SOAP existentes. La UI debía ser lo más parecida posible a la de Windows Mobile para reducir al máximo la curva de aprendizaje de los usuarios.

La Propuesta

La aplicación .Net Compact Framework serviría de guía y se evitarían cambios en los servicios SOAP. La aplicación existente y la nueva podrían convivir el tiempo necesario hasta extinguir el parque de terminales obsoletos. Se trata de una solución basada en lecturas de códigos de barra, por lo que la nueva solución debía permitir hacer lecturas con el mismo rendimiento que lo hacían los terminales en uso (Zebra MC75, MC75A y MC67), pero sin cerrarse a un hardware concreto.

Se propusieron 3 alternativas:

  • App independiente de la plataforma (iOS & Android) con lector de códigos Bluetooth: permitiendo así usar cualquier dispositivo móvil con conectividad Bluetooth que recibiera los códigos de un lector externo (como, por ejemplo, los anillos de la serie RS de Zebra).
  • App independiente de la plataforma (iOS & Android) con lector de códigos OCR: usando la cámara de los dispositivos y la potencia del SDK de Scandit.
  • App dependiente de la plataforma (Android) con lector de códigos incrustado: utilizando el escáner de un terminal rugerizado como la serie TC de Zebra. La dependencia de la plataforma sólo quedaría ligada a la necesidad de implementar el acceso al escáner mediante el SDK del fabricante.

Para que Bidafarma pudiese valorar las ventajas e inconvenientes de cada alternativa, se implementó un piloto que permitía elegir entre las 3 opciones. Tras las pruebas pertinentes, el cliente se decantó por la tercera opción. Así que trazamos el plan y nos pusimos manos a la obra. Tanto el piloto como la app definitiva la acometimos con Titanium SDK.

El Proceso

Qué hicimos para lograrlo.

Resultados

Logros alcanzados.

100%

MIGRACIÓN

Todos los terminales fueron extinguiéndose hasta alcanzar el 100% de despliegue de la nueva solución. Los riesgos de la solución antigua desaparecieron.

100%

BACKEND COMPATIBLE

Durante la migración, el backend no necesitó adaptaciones. Respondió correctamente las solicitudes recibidas desde Windows Mobile y desde Android.

100%

SATISFACCIÓN DEL CLIENTE

El proyecto se ejecutó en plazo y conforme al presupuesto. Los usuarios no percibieron un empeoramiento en el uso de la app. Sigue siendo su herramienta de trabajo.

Opinión del cliente

Nuestro sistema de distribución es crítico, nuestras mercancías son medicamentos y realizamos varios repartos a farmacias al día. Fallar en la distribución implica que pacientes puedan quedar sin su medicación. Necesitábamos una aplicación de movilidad con calidad acorde a nuestras necesidades. LinkedBytes tomó las riendas de la solución desarrollada por otro proveedor permitiendo la puesta en marcha y amortización del proyecto cumpliendo con nuestras exigencias de calidad. La migración se llevó a cabo satisfactoriamente y sin interrupciones del servicio.