Hola
Llevo un tiempo en este foro pero no había aportado hasta ahora. Mi nombre es Iván Rivera y he trabajado en arquitectura de software para diversas clínicas de Santiago, por muchos años ya.
Puedo contar que estamos en etapa final de un proyecto enorme de incorporación de un nuevo HIS con uso de protocolo FHIR, con integración con todos los sistemas de apoyo externos con diversos protocolos principalmente HL7 en diferentes versiones. Gran experiencia, muchos desafíos.
Quisiera contar una experiencia que a alguien más le podrá ser útil.
Hace un par de décadas, en una red de clínicas de Santiago, con múltiples centros de atención ambulatoria, cada paciente tenía asociada una carpeta en papel con toda su ficha clínica. No llegaba aun la era de la digitalización. Por lo tanto si un paciente tenía hora para un centro médico, se debía transportar la ficha físicamente, de madrugada, hacia ese centro. Como eran cientos de pacientes diarios, y las fichas estaban repartidas en varios centros, había un furgón que realizaba un circuito en Santiago con un listado preciso de las fichas que debía retirar y entregar en cada centro. Funcionaba muy bien, era un proceso riguroso.
Casi siempre, la ficha estaba disponible en el lugar preciso cuando el paciente llegaba a atenderse.
Claro, había error humano a veces, y la ficha quedaba en otro centro, o llegaba la ficha de otro paciente, o peor: se perdían las fichas. Si el furgón quedaba en panne, o había taco, o si tenía un accidente, implicaba tener un plan de contingencia urgente para retomar la distribución.
Hoy en día está todo digitalizado, basta con hacer click y se abre la ficha del paciente en cualquier centro.
Pero, para que esto funcione bien, se requiere siempre trabajar en un diseño eficiente de sistemas para asegurar el funcionamiento al menos con la demanda de la hora peak. No es grato para el personal asistencial tener un sistema lento o que falle por timeout justo al momento de tener que realizar una atención y no pueda tener disponible por ejemplo, la ficha clínica del paciente.
También habrá portales web de autoatención del paciente, apps, o tótems, que agregarán una demanda de recursos adicional a todo.
Con la llegada de la red 5G los usuarios demandarán respuestas inmediatas, no tener que esperar 5, 10, 30, 60 segundos en tener los datos.
Tenemos ahora como factor adicional la integración con FHIR.
FHIR es muy completo y con una buena arquitectura de software que le dé el soporte adecuado, se logra una integración fluida con todos los sistemas. Pero claro, los recursos FHIR pueden llegar a ser muy masivos y/o tener múltiples referencias a otros recursos, que pueden recuperarse de una sola vez en un recurso de gran peso o ir recuperando las referencias a medida que se necesite. Cada uno de esos recursos referenciados requerirá de transformaciones y mapeo de códigos entre protocolos y sistemas diferentes. El uso de la red entre los diferentes sistemas y la plataforma de integración se hace crítica.
¿Cómo podría servir la experiencia del furgón de las fichas en papel en esto?
Fácil, liberando a HIS de la carga pesada de tener que entregar repetidamente los antecedentes clínicos de todos los pacientes del día.
Podríamos tener un CDR externo con toda la información, pero no necesariamente los sistemas de apoyo podrán integrarse a ese CDR.
Entonces, usemos un sistema cache. Es la primera solución evidente desde el punto de vista informático.
Lo hacemos con las siguientes reglas:
- ningún sistema solicita la ficha clínica directo al HIS ni al CDR. Solo la capa de integración puede hacerlo.
- todo sistema que requiera la ficha de un paciente, la debe consultar a la capa de integración
- la capa de integración, si no tiene la ficha de un paciente en memoria, la consulta al HIS y la guarda en cache
- en la madrugada, al igual que el furgón, se precarga el cache con todas las fichas clínicas de los pacientes del día
¿Resultado?
Ficha clínica siempre disponible en menos de un segundo, incluso en hora peak.
Sistema HIS sin problemas de contención.
¿Cómo precargamos el cache?
Fácil. Se recuperan los recursos vía FHIR de todo el historial clínico de los pacientes que tienen hora agendada para el día en atención abierta y los pacientes con admisión en curso en atención cerrada. Un proceso batch se encarga de tener todo preparado en el cache en la madrugada. El cache no es infinito, por lo tanto la ficha estará en cache solo por 24 horas.
¿Qué pasa si la ficha cambia durante el día?
Utilizamos el recurso Subscription de FHIR, para eventos de CREATE o UPDATE de datos.
Por cada modificación, se informará a la capa de integración la que se encargará de actualizar el cache, asegurando que los datos estén actualizados en tiempo real.
Si llega un nuevo recurso Appointment para el mismo día, se aprovecha la recepción de ese evento para cargar la ficha de ese paciente en el cache.
Evaluación
El mismo furgón que distribuía las fichas en papel en la madrugada, ahora es un proceso batch de precarga que cumple el mismo rol eficiente antes que salga el sol.
Funciona muy bien, e incluso nos posibilita a agregar apps o portales sin preocuparnos de sobrecargar el sistema core clínico.
Espero que pueda ser una experiencia útil para otros colegas que estén estresados en los momentos de hora peak.
Saludos
Iván Rivera