
9 de enero de 2024
5 min de lectura
El sistema de salud chileno está sometido a un alto nivel de exigencia, atendiendo a millones de pacientes al mes con un déficit de profesionales y recursos. Esto ha implicado, al igual que la evolución en otras industrias, una mayor exigencia en eficiencia y eficacia. El impacto marginal en optimización de procesos puede significar reducción de tiempo en profesionales escasos, aumentando la cantidad de prestaciones, generando ingresos adicionales relevantes para las empresas.
En Nursoft hemos trabajado con múltiples actores de la industria de la salud, entendiendo en profundidad los dolores y espacios de impacto en los desafíos del negocio de nuestros clientes.
Desde el año 2018 colaboramos con una empresa que trabaja con más de 400 mil pacientes anuales. El proyecto, que impacta transversalmente al cliente, es de un gran tamaño tecnológico y es utilizado intensamente por más de 200 usuarios, 24 horas al día, los 7 días de la semana. Se atienden pacientes ambulatorios, hospitalizados y urgentes.
Sus procesos de gestión son sumamente exigentes por la demanda del mercado y su cartera de clientes. El atraso en algunos pocos minutos puede ser la diferencia entre una multa o no, o, en el peor de los casos, la vida o la muerte de un paciente urgente.
Producto de los múltiples desafíos del cliente, la plataforma está construida mediante una arquitectura de microservicios, con diferentes tecnologías y alta cantidad de funcionalidades. La alta disponibilidad, los tiempos de respuesta y la eficiencia pasan a ser requerimientos críticos dado el uso intensivo de los usuarios de la solución.
En el diseño de un sistema de microservicios un desafío constante es cómo equilibrar un sistema con alta cohesión y bajo acoplamiento. Esto, en la práctica, permite que, manteniendo microservicios de alta coherencia interna, se minimice la cantidad de consultas que tienen dependencia con otro microservicio.
En particular esto es crítico cuando existen consultas de usuarios que en un sistema monolítico se implementarían con un join de tablas, ya que se pierde esa capacidad al tener bases de datos separadas haciendo mucho más costosas estas consultas. Este es un problema común en sistemas de microservicios, que por la naturaleza de cada negocio, no siempre se puede evitar.

El objetivo del proyecto es poder impactar de forma positiva la eficiencia - sin dejar de lado la seguridad - de los procesos de gestión de los exámenes médicos; así mejorar su competitividad en costos versus su competencia.
Dado este objetivo, desglosamos las diferentes acciones y funcionalidades que utilizan los usuarios para detectar (1) las más utilizadas y (2) las que se pueden optimizar con el fin de impactar la productividad.
Con este análisis se detectó que la búsqueda de procedimientos (prestaciones médicas) es una funcionalidad que se ocupa hasta 1.000 veces al día por usuario, y dado el alto volumen de datos y la arquitectura, contaba con un déficit de velocidad subsanable rápidamente generando valor en el corto plazo. Una consulta podría demorarse hasta 12 segundos.
En sus inicios, esta funcionalidad se demoraba una fracción de segundos dado que era utilizada por menos usuarios y la base de pacientes y procedimientos era más pequeña. Al aumentar el uso, la cantidad de datos y habilitar funcionalidades que fomentaban la búsqueda de procedimientos por datos de pacientes, los tiempos de respuesta rápidamente aumentaron.
Con el diagnóstico y el contexto del negocio claros, nos enfocamos en buscar una solución técnica en miras a generar un impacto positivo en los resultados para nuestro cliente.
El desafío fue cómo lograr unificar la búsqueda de más de 2.000.000 pacientes almacenados que cuenta con información disgregada en 2 microservicios: pacientes y procedimientos.
Cuando se filtraba por datos del paciente, se tenía que buscar todos los posibles pacientes que calzaran con la búsqueda e introducir ese resultado en la consulta del servicio de procedimientos.
A modo de ejemplo, si un usuario busca por «19» (para buscar todos los usuarios con Identificador Nacional 19 millones), en una tomografía computada de cerebro y con diagnóstico de accidente cerebrovascular, el microservicio de pacientes encontraba sobre 15 mil pacientes con Identificador Nacional 19.***.***-* y estos se enviaban al servicio de procedimientos para aplicar los otros dos filtros correspondientes a este servicio. En vez de procesar 25 procedimientos con sus 25 (o menos) pacientes, procesamos 15 mil pacientes y 25 procedimientos.
El equipo de consultores de Nursoft evaluó diferentes alternativas al desafío técnico con el fin de solucionar el problema de negocio:
Esta última opción permite que el usuario al buscar «23» encuentre todos los procedimientos cuyo RUT, correo electrónico y número de ficha contiene «23», de forma expedita.
Para esto, se creó un servicio que de forma asíncrona mediante eventos, al recibir una actualización de datos de un paciente, actualizaba ese campo en todos los procedimientos de dicho paciente.
Además, a todos los campos que la plataforma permite filtrar, se le agregaron índices (más de 30 índices nuevos). En particular, este campo de texto para la búsqueda se le agregó un índice para búsqueda de similaridad mediante trigramas.

Diseñado y publicado en 2024 por Nursoft ®.
Todos los derechos reservados.