viernes, 16 de diciembre de 2011

Bathalapalli Software

Viernes, 16/12/2011

Trabajo en una pequeña oficina, al lado de la entrada del hospital con las paredes amarillas y las puertas azules. Hay 4 personas en el departamento de IT, pero sólo 3 de ellas son programadores, el cuarto se dedica a instalar el programa y comprobar departamento a departamento que funciona correctamente... no entiendo su rol. Una vez que todo va bien, ¿qué hace? Ni idea.

Cuando llegue, me di cuenta que pasar 8 horas en el despacho me comía la positividad. ¿Acaso me había venido a la india para estar encerrada en un despacho con 4 personas?, ¿sin relacionarme?, ¿sin ver a quien iba destinada mi ayuda? Así que abrí las ventanas del despacho y empecé a ver la luz del sol, a escuchar los coches pasando por la carretera y el bullicio de los pacientes en el hall de al lado... y todo empezó a ser más armonioso. No me han pedido mis compañeros que cierre las ventanas, así que supongo que no me ponen pegas. Por las tardes el calor es tan sofocante que me veo obligada a cerrarlas.

La RDT (Fundacion Vivente Ferrer) consta de 3 hospitales, y muchos centros ambulatorios. El hospital de Bathalapalli aunque actualmente tiene unos 120.000 pacientes debe de ser capaz de recibir los 4 millones que habitan en esta región. A su vez, el hospital de Kalyandurg otros 4 millones, y Kanecal unos 2 millones. Haceros una idea que India es el segundo país más poblado del mundo, que en Bathalapalli nace un niño por hora y que se dice que en India nace un niño cada segundo. No es difícil parándote a pensar que sólo necesitas 60 hospitales más como el de Bathalapalli para tener un niño por minuto.

Tratar de imaginar una base de datos que deba de gestionar todos estos millones de datos. La cantidad de visitas que pueden hacer esas personas al hospital en su vida, la cantidad de recibos de farmacia que se pueden hacer (2000 al día), los análisis, las radiografías... estamos hablando de cantidades de datos que pueden escapar de nuestra comprensión. Ahora trata de entender que toda esa información nunca se elimina, que queremos guardar la información del abuelo de mi paciente para poder saber si tiene antecedentes de cáncer... ahí ya no hablamos sólo de 4 millones. No se sabe si la gente está viva o muerta, porque para morirse la mayor parte se va a casa. No se saben las fechas de cumpleaños de los pacientes, sólo de aquellos que hayan nacido en el hospital. Bien, ya te vas a aproximando a una imagen real de la situación... cuando me di cuenta de todo esto llevaba 2 semanas y lo vi muy negro.

El programa se empezó a desarrollar hace 10 años, con unas nociones muy precarias de como hacer una base de datos -y eso que son universitarios.

Pregunté al llegar que era lo que se esperaba de mi. Me contestaron que hacer que el programa sea mas rápido, que no se cuelgue la aplicación, que revise la base de datos y la ajuste para poder tener una única para todos los hospitales, ambulatorios... Menudos requisitos tan generales.

Bueno, pues después de una semana sumergida de lleno en la base de datos, me dí cuenta que hacer ñapas para solucionar el problema es imposible. Muchos datos almacenados son erróneos, y la envergadura del problema es tan grande que sólo hay una solución posible: rediseñar la base da datos para que se ajuste a las necesidades de toda la red de hospitales. Así que estoy en india creando tablas, relacionándolas, agrupando información, haciendo particiones, cacheando datos, ... Trabajo hay para un rato largo, y al mismo tiempo tengo a mi equipo de programadores adaptando el programa a lo nuevo. Creo que saldrá algo bastante decente, al menos mucho más sostenible. ¿Cuánto tiempo tardaremos? No se puede calcular, las cosas aquí funcionan de otra manera.

SUNKINDARKNESS