Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx, pp. xxx-xxx CONSIDERACIONES PARA LA IMPLEMENTACIÓN DE UN SISTEMA DE TELEMEDICINA, DESDE EL PUNTO DE VISTA DE LA INGENIERÍA DE SOFTWARE CONSIDERATIONS FOR THE IMPLEMENTATION OF TELEMEDICINE SYSTEMS FROM POINT OF VIEW SOFTWARE ENGINEERING Eric Jeltsch F.1 Samuel López M. 2 Wilber Villacorta Q.3 Recibido xx de junio de 20xx, aceptado xx de octubre de 20xx Received: June xx, 20xx Accepted: October xx, 20xx RESUMEN En el presente artículo se muestra una amplia gama de herramientas, estándares y proyectos, así como consideraciones a tener en el ámbito de la implementación de un Sistema de Telemedicina, desde el punto de vista de la Ingeniería de Software. Lo anterior se sustenta en la experiencia recabada tras la implementación de un Sistema de Telemonitorización orientado a pacientes crónicos. Dado al gran dinamismo de las (Tecnologías de Información y Comunicación) TIC, junto a los diversos escenarios en que se pueden aplicar, es que no se entra a valorar y/o describir en profundidad la arquitectura ni metodologías de desarrollo. Por el contrario, el propósito es transmitir a los profesionales de la computación, en nuestro caso -Ingenieros de Software y las empresas relacionadas- junto a las diferentes organizaciones del área de la salud, en nuestro caso -Ministerio o Subsecretaria de Salud y los Gobiernos Regionales-, de que las tecnológicas, herramientas de código abierto, iniciativas y estándares para el desarrollo de la Telemedicina están ya disponibles. Palabras clave: Telemedicina, Ingeniería de Software, Tecnologías de la Información y Comunicación, Telemonitorización. ABSTRACT This article shows a number of tools, standards, projects and skills that must be applied when implementing a Telemedicine System. The experience summarized here comes from having worked in develop a Telemonitoring System for elderly people or patients with chronic conditions, enabling review medical data from patients. There is no intent to fully cover the architectures or methodologies listed in this paper due to the dynamic nature of TIC and the scenarios where applied are broad and diverse too. Rather the goal here is let it know to professionals (e.g. Software Engineers, Software Development Companies) and healthcare related organizations (e.g. Ministry of Health, Regional Government) that the technological requirements, open source tools and standards for developing Telemedicine applications are available and ready to be used.. Keywords: Telemedicine, Software Engineering, Information and Communication Technology, Telemonitoring, Standards. INTRODUCCIÓN La siguiente propuesta se enmarca en el contexto de la (Tecnologías de Información y Comunicación) TIC y la salud pública en Chile, en particular de la IV Región. El concepto de “consideraciones” en el título del presente artículo tiene como propósito orientar el uso y manejo de una amplia gama de herramientas de código abierto, estándares e iniciativas que han surgido en el contexto de la implementación de las TIC en el área de la salud, 1 también llamada Telemedicina (ó e-Health). Para fijar conceptos, la (Organización Mundial de la Salud) OMS, define e-Health como “el uso combinado en el sector de salud de las tecnología de la información y comunicaciones electrónicas para transmitir, almacenar y recuperar datos con propósitos clínicos, educativos y administrativos, ya sean a nivel local o a distancia.”. En lo sucesivo se referirá este concepto como Telemedicina [1]. El impulso básico para el desarrollo de la Telemedicina radica en su propia Escuela Ingeniería en Computación. Universidad de La Serena / Universidad de La Serena. La Serena, Chile. ejeltsch@userena.cl Escuela Ingeniería en Computación. Universidad de La Serena / Universidad de La Serena. La Serena, Chile. samlopezic@gmail.com 3 Escuela Ingeniería en Computación. Universidad de La Serena / Universidad de La Serena. La Serena, Chile. wilber.elias@gmail.com 2 Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx naturaleza, potencialidad y alcance de sus aplicaciones, ya sea para los usuarios a nivel individual o para las instituciones sanitarias y/o gubernamentales, que administran la salud. Los ámbitos de aplicación de la Telemedicina, son muy variados. Por ejemplo, administración de pacientes, receta electrónica, información sanitaria a la población (prevención primaria), educación e información a distancia para profesionales, asistencia remota, entre otras, también conocidos como, Teleasistencia, Teleconsulta, Telediagnóstico y Telemonitorización, entre otros [2]. Una fuente muy interesante respecto al impacto y la mejora en la eficiencia sanitaria mediante el uso de las TIC es el artículo de la (Organisation for Economic Cooperation and Development) OECD [3]. herramientas, metodologías, tecnologías, estándares, iniciativas y proyectos innovadores que ayudan a plantearse soluciones pertinentes, ingeniosas, oportunas y factibles de implementar en el ámbito de la Telemedicina. Esto no significa que tan sólo la incorporación de las TIC motive la solución a los problemas de salud, ya que aún existen grandes temas pendientes, desde el punto de vista médico, técnico, educacional, organizacional y hasta jurídico. Por citar uno, se ha consagrado recién la fuente legal para instituir en Chile la receta electrónica en el sistema de salud. (Ley 19.799, sobre documentos electrónicos). Dada la naturaleza geográfica y distribución demográfica de Chile, muy similar a otras culturas de Latinoamérica, en el sentido que, centenares de localidades están alejadas de los (Centros de Atención de Salud) CAS es que la incorporación de la Telemedicina es una oportunidad para realizar investigación, desarrollo e innovación (I+D+I) en este ámbito. En el presente caso, las localidades se encuentran generalmente concentradas en las capitales regionales o en la capital, Santiago de Chile, (Región Metropolitana), facilitando con ello, un gran espacio de oportunidades para la Telemedicina en Chile [4], [5]. Como ya se mencionaba en la introducción, la Telemedicina no es tan sólo un modo alternativo o adicional de atención en salud, sino que corresponde a una nueva forma de prestar servicios; en muchos casos, más eficiente y efectiva, y en otros, de forma más equitativa, gracias al cambio de paradigma que ella misma promueve. Entre ellos están: la accesibilidad, rapidez en la atención, reducción de tiempos de respuesta y de espera, implantación de alertas, ahorro de costes de traslado, precocidad diagnóstica, mejora de la efectividad diagnóstica o terapéutica, mejora en la calidad del servicio, formación de profesionales con nuevas competencias[11]. Se sabe que en algunas regiones de Chile, la incorporación de la Telemedicina ha tenido un éxito importante, pero en ámbitos muy especiales y acotados [6], [7]. No obstante en Chile, el soporte de las TIC hacia el sector salud aún es incipiente. Algunos síntomas de este atraso son diversos, por ejemplo: la dispersión (iniciativas aisladas de Telemedicina), el limitado alcance de las aplicaciones, una orientación al registro de datos más que a la automatización de procesos o la imposibilidad de relacionar y consolidar datos registrados en distintos sistemas (integración de “ecosistemas”), escaso desarrollo de aplicaciones móviles (para diagnóstico y administración de pacientes), ambigüedad semántica de la información (carencia de respetar los estándares), en fin, la lista puede ser aún mayor. Incluso, la insuficiente conectividad y los costos que esto demanda suman otro factor que incide en no aprovechar las ventajas de la Telemedicina, según lo manifiesta un informe de la (Comisión Económica para América Latina y el Caribe) CEPAL, en el sentido que la penetración de banda ancha en los países más avanzados quintuplica la de los países de la región [8], [9], [10]. Sin embargo, desde la perspectiva de las TIC es una gran oportunidad y, si se mira desde el punto de la Ingeniería de Software se ve que sí existen una serie de 2 TELEMONITORIZACION Lo anterior cobra aún mayor sentido si se considera que la atención sanitaria en los próximos años estará determinada por el envejecimiento de la población mundial y por el aumento del número de pacientes que sufren enfermedades crónicas. Se estima que para Chile el año 2020 habrá cerca de tres millones de adultos mayores, hoy en día este grupo etario es de 1,7 millones y representa el 11% de la población [12]. Y es exactamente en este contexto que la implementación de un sistema de Telemonitorización permite colaborar en la mejora de la calidad de vida de estas personas. En efecto, algunos estudios consideran importantes beneficios en la Telemonitorización domiciliaria, entre ellos está, el control o vigilancia del peso y del (Electrocardiograma) ECG. Un estudio de la Universidad de Alberta en Canadá, muestra como a través de la Telemonitorización de peso, presión sanguínea, ECG y saturación de oxígeno en la sangre en enfermos del corazón reduce un 20% su mortalidad. [13]. Otra fuente de información que contiene una colección de ensayos y experiencias colectivas de expertos desde diferentes continentes y culturas son presentados en (The International e-Health Telemedicine and Health ICT Forum for Education, Networking and Business) Med-@-Tel [43], en donde Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx Jeltsch, López, Villacorta: Consideraciones para la Implementación de un Sistema de Telemedicina, desde el punto de vista de la Ingeniería de Software. se promueven los eventos de Telemedicine & eHealth) ISfTeH. la (Society for El propósito fundamental de la Telemonitorización es registrar, almacenar, procesar, enviar y visualizar datos que corresponden a algunos signos vitales, los que se traducen en información, luego de la valoración entregada por los especialistas [14], [15]. Un ejemplo de aquello es el modelo que se muestra en la Figura 1, en donde los datos son capturados ya sea en el hogar o en el CAS, (también llamadas Postas Rurales) por dispositivos electrónicos y transmitidos a las estaciones de reenvío para su posterior análisis y diagnóstico, los que son realizados por Médicos (o especialistas). La implementación del Sistema (Suite de Aplicaciones para Telemedicina) SAT [16], ha despertado el interés de la (Secretaría Regional Ministerial) SEREMI de Salud, Región Coquimbo, y junto con ello, ha permitido desde el punto de vista de la Ingeniería de Software hacer efectivo los aportes para recomendar y/o adoptar la (o las) tecnologías y herramientas TIC, instrumentos portátiles o periféricos que optimicen los recursos en infraestructura, prestaciones médicas, transporte, y otros. No cabe duda que la implementación de SAT facilitará incursionar en otros ámbitos, como la Teleasistencia, entre otros. en el sentido de poder articular otras necesidades en el ámbito de la Telemedicina, o en particular de la Telemonitorización. Por ejemplo, monitorear los signos vitales que se correlacionan con la diabetes, la insuficiencia cardiaca congestiva y la enfermedad pulmonar obstructiva crónica, entre otras. En este sentido existen múltiples experiencias que avalan la incorporación de la Telemonitorización, o en otros ámbitos de la salud, como ocurre con la apnea del sueño, dermatología, entre otras. TELEMONITORIZACION Y LOS PROCESOS A continuación, se presentan algunos procesos que son necesarios para cuando se capturan y se envían datos a través de los dispositivos o periféricos dentro de un Sistema de Telemonitorización. a) Recolección de parámetros biomédicos. b) Transmisión a dispositivo intermediario de comunicaciones. c) Transmisión al servidor del Centro de Atención Médica. d) Procesamiento de Información de Monitoreo. Sin embargo, un Ingeniero de Software si desea incursionar en el campo de la Telemedicina, debe considerar una serie de otros requerimientos, por ejemplo, manejo en el procesamiento de lenguajes, interpretes y reconocedores. Y en este sentido, las actividades asociadas a ello son, por ejemplo: Figura 1. Sistema SAT Comprobación del parser asociado a la información, solución a los problemas de ambigüedad semántica, correctitud sintáctica (eventualmente, generar mensajes de error). Lectura de los datos asociados al encabezado y la interpretación de los mismos. Observar que esta etapa es de suma importancia, pues un mismo concepto (o interpretación de los datos) se debe correlacionar con una misma descripción, también llamada interoperabilidad semántica. Descomposición de la información basada en un formato, diccionario o lenguaje propio. Almacenamiento de la información. Plataforma para compartir la información. Taxonomía y Ontología de la información, entre otros. Ahora, si el contexto de Telemonitorización se realiza vía Web, se debe considerar Ahora, desde el punto de vista de la Ingeniería de Software el modelo anterior de Telemonitorización inspira la visualización a un modelo genérico, escalable, - Servidores Web. Ingeniare. Revista Chilena de Ingeniería, vol. xx Nº x, 20xx 3 Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx - Programación Web, lenguajes Script, lado cliente/servidor. Creación de la aplicación de servidor Protocolos de comunicaciones. Protocolos de comunicación, sockets, RMI, u otros. Análisis, diseño e implementación de una plataforma Web. Seguridad. (información encriptada, algoritmos). Administración de servidores Conexión de periféricos, entre otros. Tras la implementación del prototipo SAT, se puso a prueba las destrezas, habilidades y conocimientos que debe poseer un profesional de la Ingeniería de Software. Y en este sentido es que se dan en este artículo algunas consideraciones, proyectos e iniciativas que pueden ayudar a orientar al profesional de la computación. A continuación resaltaremos cuatro acciones genéricas. a) Recolección de parámetros biomédicos. La primera tarea en un sistema de Telemonitorización es la de recolectar de manera confiable los parámetros biomédicos relevantes para la patología del paciente. Esto se lleva a cabo mediante dispositivos digitales especializados para cada patología. Así por ejemplo, existen en el mercado dispositivos que registran Electrocardiograma, Presión Arterial, Masa Corporal, y otros. La experiencia nos dice que la programación interna y prestaciones de tales dispositivos dependen exclusivamente del fabricante y no son modificables. De manera que se hace necesario evaluar detenidamente las distintas opciones que ofrece el mercado antes de decidirse por alguna. Si bien en el mercado nacional existe un amplio número de estos dispositivos, la mayoría están programados con protocolos propietarios y no permiten el desarrollo de aplicaciones de terceros. Por lo tanto, es vital antes de su adquisición considerar los protocolos que utilizan estos dispositivos en la comunicación de los datos y hasta qué punto pueden desarrollarse aplicaciones compatibles con ellos. b) Transmisión comunicaciones. a dispositivos intermediarios de Esta tarea tiene relación en cómo los datos recolectados son transmitidos una vez que han sido digitalizados. La mayoría de los dispositivos de recolección de datos cuentan con alguna interfaz para la comunicación de datos ya sea mediante puerto serial, puerto (Universal Serial Bus) USB, Bluetooth, o un adaptador para transmitir los datos vía telefónica. Este punto es de interés para el Ingeniero de Software, pues en la mayoría de los casos deberá desarrollar la interfaz de recepción en el dispositivo que sirva de intermediario en la transmisión de los datos del monitoreo hacia el centro 4 de atención médica. Tales dispositivos pueden ser un (Personal Computer) PC, Notebook, Netbook, (Personal Digital Assistant) PDA, o algún celular con soporte para aplicaciones. c) Transmisión al Servidor del CAS. En este caso, la transmisión al CAS dependerá de la configuración fijada inicialmente, de manera que la información puede enviarse o no. Por ejemplo, decidir el no envío, para cuando alguno de los parámetros biomédicos se encuentren fuera del umbral de aceptación. El procesamiento de la información para que esta tarea se realice eficientemente tiene que ver con el cifrado, compresión y transmisión de los datos al CAS. Mediante la compresión se logra que se aproveche el ancho de banda disponible y con el cifrado se provee al sistema de una medida de seguridad. Dependiendo de los recursos disponibles en el dispositivo, ya sea PC, PDA, o celulares. En tal caso, se deberá desarrollar de forma distinta la aplicación que realice estas tareas. d) Procesamiento de Información de Monitoreo. Finalmente en el servidor del CAS debe existir una aplicación que permita recibir los datos desde las estaciones remotas de monitorización. La información recibida debe almacenarse en una base de datos para posteriormente ser consultada por los encargados del sistema. Por ejemplo, revisar el historial de los pacientes, revisar los eventos importantes registrados por el sistema, generar notificaciones mediante correo electrónico a los doctores que atienden al paciente y otras acciones pertinentes en la gestión de la información. Como se puede apreciar en estas primeras cuatro acciones genéricas que componen el sistema de Telemonitorización la labor principal del Ingeniero de Software está alojada en el tratamiento y procesamiento de los datos en formato digital en el “lado del paciente” para luego transmitirlos mediante un protocolo de comunicaciones, almacenarlos en el servidor, y desarrollar las interfaces que permitan consultar estos datos. UN EJEMPLO: SISTEMA SAT La implementación del Sistema SAT es el caso práctico que ha permitido recrear los procesos genéricos antes mencionados y así recabar la experiencia necesaria para fundamentar el recomendar y/o adoptar la (o las) tecnologías y herramientas TIC, instrumentos portátiles o periféricos que vayan en procura de optimizar los Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx Jeltsch, López, Villacorta: Consideraciones para la Implementación de un Sistema de Telemedicina, desde el punto de vista de la Ingeniería de Software. recursos en infraestructura, prestaciones médicas, transporte, y otros. El sistema SAT cobra vida en el siguiente escenario: Una posta rural, o un paciente cuenta con un dispositivo que registra, por ejemplo, los parámetros biomédicos asociados a la Presión Arterial UA-767PBT y la Balanza Corporal UC-321PBT ambos de la empresa A&D Medical. Tal información es transmitida por el dispositivo, a través de un enlace Bluetooth a un celular con soporte para aplicaciones Java. Se probó con los modelos Sony Ericsson C905, W580 y Nokia N73, tal como se muestra en SAT Mobile (Figura 2). Tools para Java) MTJ, Sequoyah, Mylyn y (Plugin Development Environment) PDE. Se quiso priorizar un enfoque integrador, pues esto permite, entre otras cosas, tener un mayor conocimiento del mercado de aplicaciones móviles y ámbito desde el punto de vista soporte. NetBeans fue otra de las plataformas que se evaluaron para el desarrollo de aplicaciones J2ME. Además, cuenta con excelentes herramientas para este tipo de desarrollo, por ejemplo, (Visual Mobile Designer) VMD, que permite acelerar el proceso de construcción de interfaces gráficas para dispositivos móviles. SAT Mobile pone a disposición de los clientes un servicio de recepción de mediciones, el cual identifica al servicio y además proporciona información necesaria para acceder a él. Este registro se agrega a una base de datos ad-hoc en el dispositivo móvil llamada (Service Discovery Database) SDDB la cual es mantenida por un servidor (Service Discovery Protocol) SDP que es instanciado por el Stack Bluetooth del dispositivo. Figura 2. SAT Mobile Para permitir el desarrollo de aplicaciones en equipos móviles, se uso (Java ME Platform SDK 3.0) J2ME, y para el soporte de la comunicación Bluetooth fue necesario utilizar las funcionalidades provistas por la (Java API para Bluetooth Wireless Technology) JABWT, así como el paquete BlueCove que da soporte a la (API JSR-82) JSR-82 para Bluetooth de Java para Windows. Cabe mencionar que en el celular se encuentra instalado un MIDlet, que es un programa en lenguaje Java para dispositivos embebidos (que se dedican a una sola actividad) bajo la plataforma J2ME, y que en este caso se encargo de transmitir los datos al servidor del centro de atención médica. Eclipse Pulsar, fue otro de los proyectos de la fundación Eclipse utilizados para el desarrollo de aplicaciones para móviles. Las componentes que se incluyen son los proyectos: (Java Development Tools) JDT, (Mobile Figura 3. SAT Server Por otra parte, SAT Server (Figura 3) trabaja de manera que en el servidor está ejecutándose en forma continua un servicio encargado de “escuchar” las transmisiones desde las estaciones remotas y una vez recibido el paquete de transmisión lo procesa y lo registra en una base de datos relacional. Además en el servidor se tiene una aplicación Web que permite consultar los datos de monitorización para los pacientes registrados en la aplicación. En la implementación de SAT Server se Ingeniare. Revista Chilena de Ingeniería, vol. xx Nº x, 20xx 5 Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx utilizó Joomla!, que entre sus principales virtudes es ser una aplicación de código abierto mayoritariamente programada en PHP bajo una licencia GPL, la que permite rápidamente editar un sitio web. Si ahora, consideramos nuevos requerimientos y/o dispositivos que puedan capturar algunos otros datos biomédicos asociados a otras patologías o entorno tecnológico con sistemas heterogéneos nos estamos enfrentando a una situación de escalabilidad e integración de los ecosistemas existentes en el servicio de salud público, siendo esto un desafío de proporciones. En general, uno de los problemas más frecuentes tras la implementación de sistemas de software es integrar dos o más aplicaciones de forma que los datos que se manejan por separado estén sincronizados o que puedan colaborar para ofrecer nueva funcionalidad o nuevas vistas de datos. Ahora, como una forma de mitigar el impacto de la escalabilidad, así como el de modularidad, mantenibilidad y otros costos involucrados, es que se decidió implementar SAT con el Framework de la plataforma Eclipse (Eclipse Rich Client Platform) Eclipse RCP, permitiendo que las aplicaciones evolucionen a través del tiempo mediante “agregarreemplazar”. Por consiguiente, SAT ofrece una opción apropiada, pertinente, suficiente y factible de implementar para el desarrollo de aplicaciones de Telemedicina, en el contexto aquí señalado. Eclipse RCP básicamente es un Framework para construir y desplegar aplicaciones “Rich Client”, usando (Standard Widget Toolkit) SWT y JFace, cuya labor es facilitar ciertas labores en la creación de (interfaces gráficas de usuario) GUIs. TELEMEDICINA Y LA INTEGRACION Desde el punto de vista de las organizaciones la integración es considerada como el hecho de introducir criterios y especificaciones en los procesos y sistemas de modo que puedan satisfacer a todos los clientes, ahorrando con ello costes y esfuerzos. Sin embargo, para los Ingenieros de Software, la integración es el poseer una infraestructura de hardware, software y comunicaciones fiable y correctamente dimensionada para soportar las aplicaciones y fundamentalmente para obtener un óptimo rendimiento de las mismas. Ahora, la integración para el sistema de salud es en el fondo la unión de estos mundos, pero aún más, pues estos procesos deben estar sometidos a estándares internacionales, lo que lo hace aún más difícil de abordar [17], [18], [19]. Por ejemplo, integración de datos, integración de funcionalidades, integración semántica e integración de procesos, los cuales pueden estar cimentados del lado cliente y/o del lado servidor. Además, incluye Equinox, que es una componente basada sobre el estándar (Open Services Gateway Initiative) OSGi. OSGi puede considerarse como un modelo de componentes para la plataforma Java permitiendo la creación de módulos con alta cohesión y bajo acoplamiento, los que se pueden integrar en aplicaciones más grandes, permitiendo que cada módulo pueda ser individualmente desarrollado, puesto a prueba, instalado, actualizado y administrado con un impacto mínimo sobre aplicaciones gráficas en una variedad de sistemas operativos, tales como Windows, Linux y Mac OSX. Se ha comprobado que Eclipse RCP provee una buena arquitectura de plugins, es decir, puede anexar programas a otro para aumentar su funcionalidad. De esta forma se entrega una solución ajustada a la disponibilidad de hardware especializado, sistemas operativos y requerimientos de los servicios de salud. 6 Figura 4. Escenarios de Interoperabilidad Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx Jeltsch, López, Villacorta: Consideraciones para la Implementación de un Sistema de Telemedicina, desde el punto de vista de la Ingeniería de Software. Con el fin de contextualizar la integración desde una perspectiva global, podemos advertir en Figura 4 los diversos procesos e interoperabilidad de los sistemas entre los actores de los diversos servicios de salud. [20] En este caso, el médico de cabecera tras la consulta del paciente emite una (receta electrónica) e-Receta para el Farmacéutico, y una (interconsulta electrónica) eInterconsulta al Radiólogo. El Radiólogo, por otra parte, tras la realización de Rayos-X, entrega su informe al médico. Con este resultado el médico decide derivarlo al Ortopedista, el que tras una Ecografía de cadera entrega una nueva e-Receta para el Farmacéutico y se recomienda al paciente realizarse una Densidad Ósea. Tras los resultados, el Ortopedista decide derivar al paciente al Hospital, para que allí se realice una Tomografía Computacional de la cadera y una intervención quirúrgica. Una vez convaleciente de la operación, es dado de alta y derivado al Ortopedista para su posterior rehabilitación, culminando exitosamente, según lo informa las Epicrisis respectivas. Se puede advertir, que cada uno de estos procesos de recepción y entrega de datos, Radiografías, Recetas y otros, deben coexistir en un sistema integrado. almacenarlas en otra base de datos, llamada (Extract, Transform and Load) ETL. Dado el ámbito de la aplicación, aquí no se consideran las soluciones de integración llamadas (Business to Business Integration) B2BI, esto porque se parte de la premisa de que los datos se encuentran dentro de ecosistemas software o sistemas heterogéneos (muy común en el ámbito de la salud) alojados en una misma organización. Ejemplo: (Caso de Uso).Supóngase que un Radiólogo desea enviar a través de su sistema de información los resultados de los exámenes de un paciente, los que están basados en un formato, lenguaje y sistema propio. Por otra parte, el Ginecólogo, tiene otro sistema diferente al del Radiólogo. ¿Cómo se logra que el Ginecólogo pueda leer, por una parte la información y por otra de incluirla en la ficha del paciente sin mayor costos o perdida de información?. Con este sencillo ejemplo, se quiere decir que se está en un ambiente con una gran variedad de formatos y sistemas, por ejemplo, XML, PDF o un eventual (Domain-Specific Languages) DSL propio, tal como se muestra en la Figura 5 Es alentador mencionar que en este sentido existen metodologías que permiten obtener un diseño semánticamente interoperable, portable, escalable y basado en estándares, como el (Health Information Systems Development Framework) HIS-DF [21]. a) Integración lado cliente. Ahora, desde una perspectiva más local, el concepto de integración lo consideramos en dos grandes ámbitos. Primeramente, integración que se visualiza del lado cliente, para lo cual existe una gran variedad de herramientas. Por ejemplo, Google proporciona un editor llamado Mashup Editor, que incluye una aplicación web híbrida (mashup), la que corresponde a un sitio web o aplicación web que usa contenido de otras aplicaciones Web para crear un nuevo contenido a través de protocolo http. Por ejemplo, ClustrMaps, Google Maps, entre otros. Microsoft proporciona Popfly y Yahoo proporciona Pipes. b) Integración lado servidor. Figura 5. Un Escenario de Integración Y por otra, es la integración del lado servidor, que son más variados, a saber: integración enfocada a las aplicaciones, llamada (Enterprise Application Integration) EAI, o a las fuentes de datos, de forma que un conjunto de aplicaciones puedan colaborar para ofrecer una vista homogénea, llamada (Enterprise Information Integration) EII, o bien extraer datos de fuentes distintas, con el fin de transformarlas y En todo caso, lo que sí se puede afirmar es que las tecnologías de EAI aún están en desarrollo y no hay un consenso sobre cuál es el enfoque ideal o el grupo correcto de tecnologías que se deberían usar. El futuro de EAI pasa por proporcionar lenguajes que permitan diseñar las soluciones de integración a un alto nivel de abstracción, independientes de tecnologías, y que se Ingeniare. Revista Chilena de Ingeniería, vol. xx Nº x, 20xx 7 Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx pueda de una forma automática hacer transformaciones de los modelos de solución a tecnologías concretas, y es en este contexto que los DSL para EAI tienen algo que decir. Por ejemplo, Guaraná SDK que propone un DSL para EAI [22], [23], [24]. Lo anterior se sustenta en que un DSL no es un lenguaje de propósito general que se dirige a cualquier clase de problema de programación, sino que es un lenguaje de programación que ataca a un problema particular en un dominio específico. Algunos ejemplos, en donde se usan tradicionalmente los DSL incluyen: (Structured Query Language) SQL, el cual puede considerarse como un DSL para insertar, y realizar consultas a una base de datos, (HyperText Markup Language) HTML, para describir la estructura y contenido de un documento y (Backus-Naur Form) BNF, para describir gramáticas de contexto libre, por mencionar algunos. Las herramientas más apropiadas que dan soporte a la creación de DSL son: Apache-Camel, Proyecto Fuji, Guaraná SDK, IntelliJ, Eclipse Modeling Project (EMP), entre otros. Existen, interesantes trabajos en este sentido, en donde los DSL, han sido aplicados para los EAI, EII y ETL. Se advierte que en varias ocasiones se tendrá que realizar las especificaciones de un “lenguaje de programación” DSL para un dominio específico, con el fin de transformar o filtrar datos. En tal caso, siguen siendo válidas las herramientas clásicas, tales como: Lex/Yacc, JLex/Java_Cup, JFlex/Bison, SableCC, JavaCC y otros. Sin embargo, una ventaja sustantiva que ofrece (ANother Tool for Language Recognition) ANTLR respecto a los anteriores es que une ambos ámbitos de analizadores, léxico y sintáctico respectivamente [25]. Además, cuenta con plugin para Eclipse y para NetBeans de ANTLR, el cual es fácil de instalar y un entorno más ad-hoc para trabajar, así como ANTLRWorks que es el ANTLR GUI Development Environment para generar las gramáticas, parse tree, árboles de sintaxis abstracta (AST), interprete, entre otras propiedades. ANTLRStudio es otra herramienta de trabajo para Eclipse. Además, ANTLR genera analizadores sintácticos LL(k) con predicados sintácticos y semánticos, cuyo flujo de datos considera lexemas, parsers, AST y plantillas que colaboran para reconocer y transformar lenguajes de entrada, proporcionando así un conjunto estandarizado de conceptos y criterios para abordar construcción de reconocedores, interpretes, compiladores y el traslado desde una descripción gramatical que contiene acciones en una variedad de lenguajes de marcado (target lenguages). 8 Ejemplo: Supóngase que se tiene un archivo con un cierto formato. (Figura 6, muestra un segmento de un mensaje HL7) (Health Languages Level 7) [32], el cual puede ser trasladado a XML sin mayor dificultad y viceversa. Figura 6. Mensaje HL7 Otro ámbito en donde ANTLR puede ser una buena opción de aplicar es en el modelado de las Taxonomías y Ontologías de los procesos, pues la documentación en los escenarios de interoperabilidad tienen jerarquía y relaciones interesante de mostrar. Sin embargo, también es posible que a partir de un mensaje HL7, (recordar Figura 6), se logre como salida un archivo con extensión ".dot", (ver Figura 8) dentro de las opciones que propone la aplicación GraphViz, construyendo de por medio una gramática para tal efecto, tal como se visualiza en Figura 7. Figura 7. Gramática del dígrafo asociado a la herramienta GraphViz Logrando así, otra alternativa a la visualización de la información codificada. La presentación en forma jerárquica, se logró con la librería GraphViz, que ofrece Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx Jeltsch, López, Villacorta: Consideraciones para la Implementación de un Sistema de Telemedicina, desde el punto de vista de la Ingeniería de Software. distintas vistas, dependiendo de la extensión, según se aprecia en Figura 8. Figura 8. Taxonomía de la información asociada al mensaje HL7. Existen otros formatos, que se serían interesantes de incursionar en algunas aplicaciones. Por ejemplo, la twopi, permitiría una visualización de sistemas heterogéneos, o circo, para visualizar la conexión entre sistemas. En este caso, usamos la extensión dot, con el fin de tener una visualización jerárquica del mensaje y el color rojo eventualmente podrían resaltar errores en la tipificación o mensajes de error en el mensaje. para el intercambio de información en salud, convirtiéndose en un pilar para la interoperabilidad en el cuidado clínico y la salud. HL7 es un estándar aprobado por la (American National Standards Institute) ANSI donde “Level Seven” se refiere al nivel más alto del modelo de comunicación (Open Systems Interconnection) OSI de (International Standards Organization) ISO el nivel de aplicación. Este nivel indica la definición de los datos a ser intercambiados, los momentos de intercambio y la comunicación de ciertos errores a las aplicaciones. El séptimo nivel soporta funciones tales como chequeos de seguridad, identificación de los participantes, chequeos de disponibilidad, negociación de los mecanismos de intercambio y, lo más importante, la estructura de datos a intercambiar. La última versión de este protocolo de comunicación es la versión 3, la que utiliza como medio de representación (Extended Markup Language) XML. Algunos editores de especificaciones HL7 son por ejemplo, ChainBuilder ESB para Linux 2.0, EDIFACT, X12, HL7 & SAP IDoc EDI Translator, 7Edit [34], pero hoy en día ya no ofrece la descarga gratis. Home for HL7 Projects es un proyecto que da soporte a HL7 (Tool Developers) Toolsmiths y a los grupos de trabajo en el manejo de proyectos en conjunto con Eclipse. Chameleon [36] e Iguana, son otros editores aunque este último en un ambiente distinto. Otra gran variedad de herramientas podrá consultar en [26]. En relación a la interoperabilidad de los sistemas con sus dispositivos en un sistema de Telemonitorización los más apropiados son aquellos que cumplen con la familia de estándares de la ISO/IEEE11073 (X73) [33], en particular, (Point-of-Care) X73PoC y (Personal Health) X73PHD [33]. TELEMEDICINA E INICIATIVAS En relación a proyectos e iniciativas entorno al ámbito aquí planteado, es decir, integración, estándares y Telemedicina son escasos en general y los existentes Otro gran desafío para un Ingeniero de Software es el cuentan con escasa documentación. Entre ellos, están trabajar en base a estándares. Por ejemplo, si se desea CB CONNECT Community Edition [37], GlassFish facilitar el intercambio electrónico de información ESB, HL7 BC. Jengine, un tanto antigua, la última durante el procesamiento, transmisión y versión es del año 2003. Mirth [35] establece el envío almacenamiento de registros médicos e imágenes, bidireccional de mensajes HL7 entre sistemas y destaca HL7 y (Digital Imaging Communications in aplicaciones. Mirth es una pasarela (gateway) de Medicine) DICOM. El uso de estos estándares garantiza interfaces HL7 multiplataforma y de código abierto la integridad y legibilidad de la información entre desarrollado por la empresa WebReach con licencia sistemas de información heterogéneos que intervienen (Mozilla Public License) MPL 1.1. Esta herramienta en este tipo de procesos. El (Clinical Document provee capacidades de filtrado, transformación y Architecture) CDA es un estándar de arquitectura de enrutamiento de mensajes HL7 y sus últimas versiones documentos clínicos electrónicos aceptado como norma soportan mensajería HL7 versión 3. i2b2, orientado a la Ingeniare. Revista Chilena de Ingeniería, vol. xx Nº x, 20xx 9 TELEMEDICINA Y ESTANDARES Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx integridad, búsqueda inteligente para diferente base de datos clínicos, cuyo ámbito preferencial es la BioMedicina. (Open eHealth Integration Platform) IPF es un Framework basado en Java/Groovy (con una plataforma integrada, basada en OSGi) sobre ApacheCamel [28] con soporte para varios perfiles IHE [38]. Luego de analizarlas, se puede afirmar que el proyecto (Open eHealth Integration Platform) IPF ofrece una excelente oportunidad, ya que proporciona un DSL para implementar EIP de propósito general como también soluciones de integración en el dominio específico HL7. De la misma manera, podemos decir que Mirth es una excelente alternativa, muy bien documentada y soportada por la comunidad. Ambas poseen un núcleo de Apache-Camel que es un potente Framework de código abierto, diseñado para implementar los EIPs [27]. Ejemplo: En la Figura 9-a se muestra la representación de un mensaje de HL7 versión V2.4, caso de uso sobre el mensaje ORU^R01. La sintaxis está basada sobre la clásica sintaxis de HL7 v2, referida a las barras verticales ( | ). El segmento (Message Header) MSH correspondiente a la primera fila, contiene el tipo de mensaje, en este caso, ORU^R01, el cual identifica el tipo de mensaje y el evento que se gatilla (trigger event). El envío está en GHH LAB de ELAB-3, mientras que la aplicación que recibe, es el sistema GHH OE localizado en BLDG4. El mensaje fue enviado el 2010-02-15 a las 09:30. El segmento MSH es el segmento inicial del mensaje estructurado. La segunda fila, correspondiente al segmento (Patient Identification) PID contiene la información demográfica del paciente. Eric E. Juan Perez, nacido el 1962-03-20, cuya dirección es Cisternas, y el nº 555-44-4444, fue asignado por algún Hospital. El segmento (Observation Request) OBR identifica la observación que fue originalmente ordenada: 15545^GLUCOSA. Finalmente, el segmento (Observation) OBX contiene los resultados de la observación: 182 mg/dl. Figura 9-a. Mensaje HL7. 10 Figura 9-b. Mensaje HL7 intervenido con IPF. En la Figura 9-b se resalta el valor MSH[4]=ELAB-3 (facilidad de envío) que es reemplazado por el valor ABC. Y el valor PID[8]= F, que es reemplazado por W. Mientras que en Figura 10, se muestra el proceso antes descrito, pero modelado a través de los patrones que ofrece IPF, aunque inspirados en los clásicos patrones de EIPs [27]. Figura 10. Patrones en IPF asociado al Mensaje HL7. Con el ejemplo anterior queremos mostrar que la integración por un lado, y la estandarización por otro, son requisitos fundamentales para lograr la interoperabilidad de los sistemas de atención, así como la integración vertical y horizontal entre los diferentes agentes que participan en el sector salud (laboratorios, clínicas, hospitales, farmacias, servicios de emergencias, etc). Existen, en todo caso otras herramientas propietarias en el campo de la integración, tales como: Mule [39], Apache ServiceMix [40], Spring Integration [41], BizTalk 2006 [42], de los cuales sólo este último soporta los estándares de HL7 y extensiones para el área de salud. CONCLUSIONES Podemos afirmar que en Telemedicina en general y la Telemonitorización en particular se genera un puente entre el clínico y el paciente por medio de las TIC, y donde la ingeniería de software pone a disposición las herramientas necesarias que brindan el soporte y sustento para analizar, diseñar e implementar aplicaciones plausibles en el ámbito de la salud. No cabe duda que la arquitectura del modelo más apropiado que pueda hacer coexistir la diversidad de sistemas en el actual sistema de salud está aún en estudio y se piensa que no se resolverá hasta mientras las instituciones relacionadas con las prestaciones o servicio de salud, (Instituciones de Salud Previsional) ISAPRE, aseguradoras, Clínicas y Centros de Atención no se Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx Jeltsch, López, Villacorta: Consideraciones para la Implementación de un Sistema de Telemedicina, desde el punto de vista de la Ingeniería de Software. pongan de acuerdo. Otro aspecto interesante a considerar es que este trabajo, así como el sistema SAT han puesto en perspectiva el socializar y promover acciones entre los actores de la atención pública de salud SEREMI de Salud y Gobierno Regional, tendiente a abrir la discusión para la creación de un modelo para el Sistema Chileno de Asistencia de Salud, tal como Alemania lo planteo el año 2008 y que se promueve y se informa a través del portal Gematik [29]. No cabe duda que la experiencia recabada y las dificultades que se vislumbran, ayudan a entender de mejor manera la tarea y desafíos que han debido sortear algunos centros, tales como el (Instituto de Aplicaciones de las Tecnologías de la Información y de las Comunicaciones Avanzadas) ITACA [30], quién se dedica o se orienta a la aplicación de las TIC en el ámbito de la salud, la calidad de vida y los servicios sociales en España, otro ejemplo es el Centro eHealth Competence Center Regensburg [31], en Alemania. Y en la región latinoamericana el Centro de Telemedicina de la Universidad Nacional, Colombia, que a través del grupo de investigación Bioingenium, se ha convertido en un Centro de desarrollo tecnológico (I+D), con interesantes resultados, los cuales son ejemplos a seguir. Por último, este es un ejemplo más, de cómo las universidades chilenas deben persistir en su esfuerzo de innovar y apalancar (leverage, en inglés) el desarrollo, es decir, obtener más con menos, a través del uso de las TIC. Lo anterior evidentemente va de la mano con la formación de capital humano avanzado y con el fortalecimiento de las actividades científicas y tecnológicas vinculadas con las instituciones gubernamentales, privadas y/o iniciativas (I+D+I), (es decir, la difusión de la Tercera Misión) con el fin de hacer frente a los grandes desafíos estratégicos del país en materia social y de servicio público. AGRADECIMENTOS Agradecemos el financiamiento y apoyo por parte de la Dirección de Investigación de la Universidad de La Serena (DIULS), así como al Gobierno Regional de la IV Región Coquimbo, pues el artículo que aquí se presenta es parte del proyecto “Diseño y Desarrollo de un Sistema de Telemedicina para la atención de pacientes con patologías crónicas", el cual ha resultado seleccionado y financiado por el concurso “tesis regionales”, de la IV Región. REFERENCIAS [1] J. Eysenbach., “What is e-Health?” Med Internet Res. Vol. 3(Nº2), 2001. [2] S. Litewka, “Telemedicina: Un desafío para América Latina”, Acta Bioethica. Vol.11(Nº2).2005. [3] O.Pomar R.,J.Pomar R. “Improving Health Sector Efficiency”,Organisation for Economic Cooperation and Development”, (OECD) http://ec.europa.eu/health/eu_world/docs/oecd_ict_ en.pdf). (Última fecha de consulta, 20 Agosto 2010.) [4] Agenda Digital. “Diseñando el Chile Digital del Bicentenario: El aporte desde nuestras regiones.” http://www.intendenciacoquimbo.gov.cl/filesapp/ag endadigital_2007.pdf (última fecha de consulta, 20 Agosto 2010.) [5] Libro Azul, “Agenda Digital del Ministerio de Salud del Gobierno de Chile”. http://www.itelemedicina.com/documentos/CHILE _libro_azul.pdf (última fecha de consulta, 20 Agosto 2010.) [6] E. Escobar, M.Véjar., R. del Pino. “Lesiones subepicárdicas en Chile (Infarto Agudo del Miocardio con supradesnivel del Segmento ST). Experiencia con Telemedicina.” Revista Chilena de Cardiología - Vol. 28 N°1 73-80, 2009. [7] P. Lobos, “Teledermatología en las Islas Juan Fernández”, Revista Médica, Vol.10 (Nº3).1999. [8] S. Parada.”Programa Sociedad de la Información de CEPAL”. http://www.cepal.org/socinfo/noticias/documentos detrabajo/6/38106/monitoreo.pdf (Última fecha de consulta 10 Agosto 2010). [9] J.L.Machinea, “Avances y desafíos de la sociedad de la información en América Latina y el Caribe.”, Cepal, 9 Agosto 2010. [10] W. Peres, M. Hilbert, “La sociedad de la información en América Latina y el Caribe Desarrollo de las tecnologías y tecnologías para el desarrollo”, Libros de la CEPAL.Nº98, 2009 [11] S.Meystre. “The Current State of Telemonitoring: A Comment on the Literature”. Telemedicine and e-Health Volume 11, Number 1, 2005. Ingeniare. Revista Chilena de Ingeniería, vol. xx Nº x, 20xx 11 Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx [12] C.Ávila. “Situación Epidemiológica del Adulto Mayor en Chile”, Medwave. Año VII, No. 2, Marzo 2007. [13] R.Clark, S.Inglis, F.McAlister, J.Cleland, S.Stewart. “Telemonitoring or structured telephone support programmes for patients with chronic heart failure: systematic review and meta-analysis”.BMJ, doi: 10.1136/bmj.39156.536968.55, 10 Abril 2007. [14] [15] [16] [17] methodology”. Stud Inform.;156:21-31. 2010. Health Technol [22] R. Frantz. “A DSL for Enterprise Application Integration”. Int. J. Computer, Applications in Technology, 2008. [23] R.C. Gronback, “Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit, 1 edition” 736 pág. Addison-Wesley Professional , 2009. [24] M. Fowler, “Domain Specific Languages, 1st edition”, Addison-Wesley Professional, 552 pág. 2010. [25] T. Parr, “The Definitive ANTLR Reference: Building Domain-Specific Languages” The Pragmatic Bookshelf, 376 pág. 2007. P.Roncagliolo, L.Arredondo, A.González, "Sistema de adquisición, procesamiento y transmisión de señales biomédicas utilizando dispositivos móviles de uso masivo", XVI Congreso Argentino de Bioingeniería, V Jornada de Ingeniería Clínica, SABI2007. San Juan, Argentina. 2007. [26] C. Sánchez , RevistaeSalud.com, “Aplicaciones Open Source en el ámbito de la Salud y Sanidad,”Vol. 6, Nº 22, 2010. [27] B.Woolf, G.Hohpe. “Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions”. Addison-Wesley, 2003. S. López, W. Villacorta. “Un diseño y desarrollo de un sistema de Telemedicina para la Monitorización Remota de pacientes.”. Memoria de Título para optar al título profesional de Ingeniero en Computación, Universidad de La Serena, La Serena, Chile, 2010. [28] Apache-Camel, http://camel.apache.org/ (Última fecha de consulta, 20 Agosto 2010.) D. Roncancio, J. Beltran,W. Cardenas,C. Montenegro, P. Gaona, “Prototipo de Telemedicina Móvil para Asistencia Médica domiciliaria y Remota.”. Eighth LACCEI Latin American and Caribbean Conference for Engineering and Technology (LACCEI’2010) “Innovation and Development for the Americas”, June 1-4, 2010, Arequipa, Perú. B.G.Blobel, K.Engel, P.Pharow. “Semantic interoperability--HL7 Version 3 compared to advanced architecture standards”. Methods Inf Med. 2006;45(4):343-53. [29] Gematik, http://www.gematik.de/cms/de/gematik/gematik_ 1.jsp (Última fecha de consulta: 20 Agosto 2010.) [30] Instituto de Aplicaciones de las Tecnologías de la Información y de las Comunicaciones Avanzadas (ITACA), http://www.tsb.upv.es/ (Última fecha de consulta, 20 Agosto 2010) [31] López DM, Blobel B. “Architectural approaches for HL7-based health information systems implementation”.Methods Inf Med. 16;49(2):196-204,2010. eHealth Competence Center Regensburg, http://www.ehealth-cc.de/ (Última fecha de consulta: 20 Agosto 2010.) [32] Standard HL7 www.hl7.org (Última fecha de consulta: 20 Agosto 2010.) [20] P. Haas,”Gesundheitstelematik”, Springer, BerlinHeidelberg, Alemania, 640 pág.2006. [33] [21] D.López, B. Blobel, C. Gonzalez, “Quality evaluation of health information system's architectures developed using the HIS-DF ISO/IEEE11073 (X73) http://standards.ieee.org www.ieee1073.org (Última fecha de consulta: 20 Agosto 2010.) [34] 7Edit [18] [19] 12 Lopez DM, Blobel B, “Enhanced Semantic Interoperability by Profiling Health Informatics Standards”. Methods Inf Med 2009; 48, 2: pp 170-177. Ingeniare. Revista chilena de ingeniería, vol. xx Nº x, 20xx Jeltsch, López, Villacorta: Consideraciones para la Implementación de un Sistema de Telemedicina, desde el punto de vista de la Ingeniería de Software. http://www.7edit.com/demo/ (Última fecha de consulta: 20 Agosto 2010.) [35] Mirth Corporation http://www.mirthcorp.com/ (Última fecha de consulta: 20 Agosto 2010.) [36] Chameleon http://www.interfaceware.com/manual/chameleo n.html (Última fecha de consulta: 20 Agosto 2010.) [37] CB CONNECT Community Edition http://www.chainforge.net/. (Última fecha de consulta: 20 Agosto 2010.) [38] IHE http://www.ihe.net/. (Última fecha de consulta: 20 Agosto 2010.) [39] Mule http://www.mulesoft.org/ (Última fecha de consulta: 20 Agosto 2010.) [40] Apache ServiceMix http://servicemix.apache.org/home.html (Última fecha de consulta: 20 Agosto 2010.) [41] Spring Integration http://www.springsource.org/spring-integration (Última fecha de consulta: 20 Agosto 2010.) [42] BizTalk 2006, http://www.microsoft.com/biztalk/en/us/default.a spx (Última fecha de consulta: 20 Agosto 2010.) [43] Med-@-Tel, http://www.medetel.lu/index.php (Última fecha de consulta: 20 Agosto 2010.) Ingeniare. Revista Chilena de Ingeniería, vol. xx Nº x, 20xx 13