6 de agosto de 2017

EHRServer v1.0 lanzamiento


Plataforma Abierta para Gestionar y Compartir Historias Clínicas Electrónicas openEHR



Crear el EHRServer y haberlo llevado hasta alcanzar v1.0 ha sido un viaje maravilloso.

Mi objetivo original fue proveer de un repositorio de información clínica de código abierto a la comunidad de openEHR. Para aquellos que intentaban implementar el estándar pero tenían muchas dificultades en implementar repositorios de datos openEHR debido a la complejidad del estándar y a la falta de una guía de cómo hacerlo. Esto fue por mucho tiempo un problema abierto, hoy contamos con una solución. El producto actual es más que un repositorio, es una plataforma para gestionar y compartir información clínica.


Con EHRServer puse todo a prueba, mis preferencias tecnológicas, las metodologías de diseño que conocía, y mi conocimiento y capacidad como arquitecto de software y desarrollador. Dediqué mucho tiempo a investigar, cometí muchos errores, probé muchos enfoques, y me quedé con lo que funcionó. Esta fue una hermosa experiencia, gané mucho conocimiento y experiencia en temas de diseño de repositorios de información clínica basados en estándares. Hoy se lo que funciona y lo que no, las buenas y malas prácticas, y sus consecuencias. Este conocimiento lo estoy aplicando en la creación de trabajos científicos y de ofertas de educación para profesionales informáticos que trabajan en salud, aportando a la creación de mejores sistemas de información en salud para el futuro. Soy un firme creyente de que el conocimiento en una caja no sirve de nada, y la colaboración es clave para el progreso.

Hoy en día he cumplido con mi objetivo de hacer más fácil la vida de muchos desarrolladores que desean implementar openEHR en sus sistemas de información, pero que no podían por la complejidad de las especificaciones y la ausencia de plataformas abiertas. Esta es mi humilde contribución a la comunidad, y espero que este esfuerzo ayude a que más empresas inviertan en crear sistemas basados en estándares que habiliten la interoperabilidad en salud, reduzcan los costos y la dependencia de los proveedores, mientras se evitan los silos aislados de datos inaccesibles, y para crear ambientes y plataformas abiertas que definan el marco para la innovación.


¿Cuál es el estado actual del proyecto?

EHRServer v1.0 tiene todas las características necesarias y está listo para ambientes de producción. Implementa las principales partes del estándar openEHR como parte de su núcleo: el Modelo de Información, Control de Versiones, Plantillas Operativas (OPT), y Consultas basadas en rutas de Arquetipos openEHR. Está compuesto del Repositorio de Datos Clínicos, la Consola Web de Administración, y la API REST que permite almacenar y acceder a todos los datos, desde diversas aplicaciones, de una forma estándar.

Soporta varios casos de uso, entre ellos el EHRServer puede utilizarse como el repositorio de datos clínicos principal de una aplicación, o como repositorio compartido entre varios sistemas, como repositorio secundario o como respaldo, como backend para dispositivos wearables y monitores personales, como fuente de datos estándar para datawarehouse, como plataforma para prototipado rápido, y como plataforma de micro-servicios con diversas aplicaciones como apoyo a la toma de decisiones clínicas, creación de cuadros de mando clínicos, visualización de datos clínicos, creación de reportes, estadísticas, investigación, etc.

No hablaré sobre características y funcionalidades específicas aquí, hay mucha información al respecto en la guía del EHRServer y en el repositorio de GitHub. Pero quiero enfatizar el valor que EHRServer en ser un repositorio de datos clínicos estándar, y por lo tanto neutral con respecto al proveedor dado que no tiene modelos propietarios y cerrados, verdaderamente genérico y abierto, que cuenta con mecanismos de consulta extensibles sin necesidad de escribir SQL o modificar el código fuente de la aplicación, con capacidades de gestión y auditoría completas, y la API REST que permite integración simple con cualquier aplicación basada en cualquier tecnología. EHRServer permite disminuir los tiempos de desarrollo, evitando soluciones a medida y de baja calidad, a la vez que se evita reinventar la rueda con cada proyecto (seguimos solucionando los mismos problemas N veces). Con EHRServer aprendes a trabajar con él una vez, y lo utilizas de la misma forma en distintos proyectos. Sólo debes configurarlo con estructuras de datos específicas mediante plantillas operativas openEHR (OPT), y el sistema se adapta a esas estructuras. Personalmente, como desarrollador, hubiera deseado que esta herramienta existiera hace 10 años, cuando comencé a trabajar en sistemas de información en salud, y perdí semanas en diseñar bases de datos a medida, sin considerar ningún estándar ni buenas prácticas, en lugar de enfocarme en funcionalidades para nuestros usuarios e interoperabilidad.

Contamos con muchos recursos disponibles para desarrolladores, para ayudarlos a entender cómo funciona EHRServer y a utilizarlo de manera eficaz. Contamos con clientes para la API REST en diferentes lenguajes de programación, y herramientas de prueba como Insomnia REST Client y Swagger, que pueden utilizarse para generar clientes de forma automática para diversas tecnologías. También contamos con aplicaciones de ejemplo que están integradas al EHRServer, y pueden ser utilizadas como base para el desarrollo como referencia para la creación de nuevas aplicaciones.

EHRServer trabaja con Plantillas Operativas (OPT) de openEHR como definición de los documentos clínicos que serán almacenados, y hemos creado un conjunto de OPTs de ejemplo que puedes utilizar. También desarrollamos una herramienta de línea de comandos que permite generar documentos clínicos en XML a partir de un OPT, y también permite validar instancias y generar interfaces de usuario simples a partir de definiciones de documentos clínicos.

Muchas empresas y desarrolladores están utilizando EHRServer para sus proyectos, y otros están evaluándolo para proyectos futuros. Sabemos de empresas en Brasil, Colombia, Argentina, Panamá, Paraguay, Chile, México, Venezuela, Uruguay, China, India, Australia, EEUU, Alemania, España, Inglaterra, Portugal, Irán, Eslovenia, Líbano Egipto, Grecia y Arabia Saudita que están utilizando EHRSErver. Además contamos con más de 500 usuarios registrados en nuestros servidores de prueba en la nube, los cuales son utilizados para educación y pruebas. Estos usuarios ayudaron a encontrar problemas y oportunidades de mejora, que ya fueron incorporadas en EHRServer.

Si bien no contamos con un control estricto de quién está usando EHRServer y para qué, así es como funciona la comunidad de código abierto, estamos encontrando más y más proyectos que lo utilizan. Si lo utilizas, cuéntame, seguramente podré ayudarte a sacarle un mayor provecho. Por ejemplo este fantástico trabajo desde Hong Kong desarrolló criptografía sobre EHRServer y le llamaron Crypto-EHRServer, incluso desarrollaron un cliente para Android.

Con el hito de EHRServer v1.0 queremos llegar a más desarrolladores, y ayudarlos a crear más y mejores aplicaciones clínicas, de salud y bienestar, utilizando está plataforma abierta. Desde CaboLabs podemos apoyar en educación, consultoría y desarrollo de prototipos. Estamos capacitando a una red distribuida de profesionales para que puedan dar soporte a proyectos basados en EHRServer de forma local en varios países.

En enero de 2017 lanzamos CloudEHRServer, el Software as a Service de EHRServer. Este servicio provee todo el poder de EHRServer sin la molestia de tener que gestionar los servidores físicos y realizar actualizaciones del software. CloudEHRServer está en Beta, y es accesible sólo para aquellas empresas que estén participando del Programa de Beta Partners, una red de empresas que desean adoptar EHRServer como plataforma de desarrollo de sistemas de información en salud. Cuando cierre la etapa de beta, pondremos distintos niveles de planes para el público en general, como en cualquier producto SaaS.


Futuro cercano

Mi foco personal estará en el desarrollo de aplicaciones sobre EHRServer, mientras trabajo en herramientas y servicios complementarios al EHRServer, para hacer aún más sencilla la adopción y el trabajar con él. Además continuaré manteniendo el proyecto, solucionando errores y agregando mejoras. Para esto espero la retroalimentación de la comunidad.


Si deseas usarlo, te recomiendo:

5. Si lo deseas adoptar, hazte Beta Partner


Crea mejores sistemas de información en salud. ¡Únete a la comunidad!

Pablo Pazos Gutiérrez
Director