<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>1684-1859</journal-id>
<journal-title><![CDATA[Revista Cubana de Informática Médica]]></journal-title>
<abbrev-journal-title><![CDATA[RCIM]]></abbrev-journal-title>
<issn>1684-1859</issn>
<publisher>
<publisher-name><![CDATA[Universidad de Ciencias Médicas de La Habana]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1684-18592014000200011</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Bases de datos distribuidas para aplicaciones médicas en el Sistema Nacional de Salud]]></article-title>
<article-title xml:lang="en"><![CDATA[Distributed database for medical applications in the National Health System]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Paderni López]]></surname>
<given-names><![CDATA[María del Carmen]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Aguilar León]]></surname>
<given-names><![CDATA[Idorys]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Cabrera Hernández]]></surname>
<given-names><![CDATA[Mirna]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Delgado Ramos]]></surname>
<given-names><![CDATA[Ariel]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,SOFTEL  ]]></institution>
<addr-line><![CDATA[La Habana ]]></addr-line>
<country>Cuba</country>
</aff>
<aff id="A02">
<institution><![CDATA[,MINSAP  ]]></institution>
<addr-line><![CDATA[La Habana ]]></addr-line>
<country>Cuba</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2014</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2014</year>
</pub-date>
<volume>6</volume>
<numero>2</numero>
<fpage>227</fpage>
<lpage>235</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S1684-18592014000200011&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S1684-18592014000200011&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S1684-18592014000200011&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Cuba enfrenta el reto de informatizar su sociedad optimizando el uso de nuevas tecnologías, para mejor gestión de la información médica. Lleva a cabo la informatización del Sistema Nacional de Salud, desarrollando el Sistema de Información para la Salud (SISalud), plataforma formada por componentes con un nivel de cohesión y acoplamiento que permite integrar las aplicaciones informáticas para la salud, interactuar entre ellas y reutilizar la información de manera eficiente; almacenada en bases de datos independientes, soportadas sobre un servidor MySQL y comunicándose entre sí mediante Servicios Web, basados en XML y arquitectura en 3 capas. Esto le ofrece al usuario final una visión integrada de los datos para ser usados por distintos niveles de dirección, docencia, investigación y gestión de salud, lo que garantiza la gestión, en tiempo real y con alcance nacional, de los datos generales de los ciudadanos cubanos y el capital humano en Unidades de Salud. El objetivo de este trabajo es demostrar las ventajas del uso de las bases de datos distribuidas como parte del desarrollo de esta solución informática para el sector de la salud.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Cuba faces the challenge of computerizing their society optimizing the use of new technologies to better management of medical information. Performs computerization of NHS, developing the Information System for Health (SISalud) platform consists of components with a level of cohesion and coupling that allows applications to integrate health, interact with them and reuse information efficiently; stored in separate databases, supported on a MySQL server and communicating with each other via Web Services, and XML-based 3-tier architecture. This gives the end user an integrated view of the data to be used by different levels of management, teaching, research and health management, ensuring management, and real-time national reach of the general data of citizens Cubans and human capital in health units. The aim of this work is to demonstrate the advantages of using the distributed database as part of the development of this software solution for the health sector.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[proceso]]></kwd>
<kwd lng="es"><![CDATA[informatización]]></kwd>
<kwd lng="es"><![CDATA[servicios web]]></kwd>
<kwd lng="es"><![CDATA[integración]]></kwd>
<kwd lng="en"><![CDATA[process]]></kwd>
<kwd lng="en"><![CDATA[informatization]]></kwd>
<kwd lng="en"><![CDATA[web services]]></kwd>
<kwd lng="en"><![CDATA[integration]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <div align="right">       <p><font size="2" face="Verdana"><strong>ART&Iacute;CULO ORIGINAL</strong></font></p>       <p>&nbsp;</p>       <p align="left"><font size="4" face="Verdana"><strong>Bases de datos distribuidas      para aplicaciones m&eacute;dicas en el Sistema Nacional de Salud</strong></font></p>       <p align="left">&nbsp;</p>       <p align="left"><font size="3" face="Verdana"><strong>Distributed database for      medical applications in the National Health System</strong></font></p>       <p align="left">&nbsp;</p>       <p align="left">&nbsp;</p>       <p align="left"><font size="2" face="Verdana"><strong>MsC. Lic. Mar&iacute;a      del Carmen Paderni L&oacute;pez,<sup>I</sup> Ing. Idorys Aguilar Le&oacute;n,<sup>II</sup>      MsC. Ing. Mirna Cabrera Hern&aacute;ndez,<sup>III</sup> MsC. Dr. Ariel Delgado      Ramos<sup>IV</sup></strong></font></p> </div>     <P><font size="2" face="Verdana"><sup>I</sup>SOFTEL. La Habana, Cuba. E-mail:    <a href="mailto:carmenchu@softel.cu">carmenchu@softel.cu</a>    ]]></body>
<body><![CDATA[<br>   <sup>II</sup>SOFTEL. La Habana, Cuba. E-mail: <a href="mailto:idorys@softel.cu">idorys@softel.cu</a>    <br>   <sup>III</sup>SOFTEL. La Habana, Cuba. E-mail: <a href="mailto:mirna@softel.cu">mirna@softel.cu</a>    <br>   <sup>IV</sup>MINSAP. La Habana, Cuba. E-mail: <a href="mailto:ariel.delgado@infomed.sld.cu">ariel.delgado@infomed.sld.cu</a></font>      <P>&nbsp;     <P>&nbsp; <hr> <font size="2" face="Verdana"><strong>RESUMEN</strong></font>      <p><font size="2" face="Verdana">Cuba enfrenta el reto de informatizar su sociedad    optimizando el uso de nuevas tecnolog&iacute;as, para mejor gesti&oacute;n de    la informaci&oacute;n m&eacute;dica. Lleva a cabo la informatizaci&oacute;n    del Sistema Nacional de Salud, desarrollando el Sistema de Informaci&oacute;n    para la Salud (SISalud), plataforma formada por componentes con un nivel de    cohesi&oacute;n y acoplamiento que permite integrar las aplicaciones inform&aacute;ticas    para la salud, interactuar entre ellas y reutilizar la informaci&oacute;n de    manera eficiente; almacenada en bases de datos independientes, soportadas sobre    un servidor MySQL y comunic&aacute;ndose entre s&iacute; mediante Servicios    Web, basados en XML y arquitectura en 3 capas. Esto le ofrece al usuario final    una visi&oacute;n integrada de los datos para ser usados por distintos niveles    de direcci&oacute;n, docencia, investigaci&oacute;n y gesti&oacute;n de salud,    lo que garantiza la gesti&oacute;n, en tiempo real y con alcance nacional, de    los datos generales de los ciudadanos cubanos y el capital humano en Unidades    de Salud. El objetivo de este trabajo es demostrar las ventajas del uso de las    bases de datos distribuidas como parte del desarrollo de esta soluci&oacute;n    inform&aacute;tica para el sector de la salud. </font></p>     <P><font size="2" face="Verdana"><strong>Palabras clave:</strong> proceso, informatizaci&oacute;n,    servicios web, integraci&oacute;n.</font> <hr> <font size="2" face="Verdana"><strong>ABSTRACT</strong></font>      <p><font size="2" face="Verdana">Cuba faces the challenge of computerizing their    society optimizing the use of new technologies to better management of medical    information. Performs computerization of NHS, developing the Information System    for Health (SISalud) platform consists of components with a level of cohesion    and coupling that allows applications to integrate health, interact with them    and reuse information efficiently; stored in separate databases, supported on    a MySQL server and communicating with each other via Web Services, and XML-based    3-tier architecture. This gives the end user an integrated view of the data    to be used by different levels of management, teaching, research and health    management, ensuring management, and real-time national reach of the general    data of citizens Cubans and human capital in health units. The aim of this work    is to demonstrate the advantages of using the distributed database as part of    the development of this software solution for the health sector. </font> </p>     <P><font size="2" face="Verdana"><strong>Key words:</strong> process, informatization,    web services, integration.</font> <hr>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><font size="2" face="Verdana"> </font><font size="3" face="Verdana"><strong>INTRODUCCI&Oacute;N</strong></font></p>     <P><font size="2" face="Verdana">En el 2003 el Ministerio de Salud P&uacute;blica    como organismo rector del Sistema Nacional de Salud (SNS) define como una prioridad    su informatizaci&oacute;n, con el prop&oacute;sito de elevar la eficiencia,    seguridad, calidad y est&eacute;tica en todas las direcciones. Para ello se    convoca a un grupo de instituciones propias del sector, del Ministerio de Inform&aacute;tica    y Comunicaciones y de otros organismos de la administraci&oacute;n central del    estado, para definir de conjunto la estrategia a llevar a cabo. En algunos casos    se ha tomado como punto de partida sistemas ya elaborados en el pa&iacute;s    en el marco de aquella primera estrategia de desarrollo.<sup>1</sup></font>     <P><font size="2" face="Verdana">El MINSAP ha definido un grupo de premisas y    requisitos que incorporan los &uacute;ltimos adelantos en el &aacute;rea de    las tecnolog&iacute;as de la informaci&oacute;n y las comunicaciones y que garantizan    la plataforma de integraci&oacute;n de las aplicaciones, la compatibilidad y    sostenibilidad de los productos a elaborar, tales como: empleo de tecnolog&iacute;as    basadas en Internet (XML, Web Services), software libre (PHP, MySql, Linux),    documentaci&oacute;n de todo el proceso productivo, requisitos de seguridad    del software, independencia de la base de datos, desarrollo en multiplataforma    y empleo de est&aacute;ndares internacionales para los productos relacionados    con la salud. El soporte de infraestructura en todos los aspectos mencionados    es la Red Telem&aacute;tica de la Salud. </font>     <P><font size="2" face="Verdana">Con esta estrategia se lograr&iacute;a que la    informaci&oacute;n en las bases de datos sea &uacute;nica, confiable y en tiempo    real, que se garantice la integridad de la informaci&oacute;n e interconectar    entre s&iacute; las diferentes aplicaciones existentes. </font>     <P><font size="2" face="Verdana">El objetivo de este trabajo es mostrar c&oacute;mo    el Sistema Informaci&oacute;n para la Salud (SISalud), cuenta con una base de    datos que da soluci&oacute;n centralizada y disponible para el dominio de salud,    lo que garantiza brindar informaci&oacute;n en forma est&aacute;ndar a todos    los proyectos que la necesiten y evitar la duplicidad de la misma, ya sea por    exportaci&oacute;n de datos, o a trav&eacute;s de otras tecnolog&iacute;as como    Servicios Web. </font>      <P>&nbsp;     <P><font size="3" face="Verdana"> <strong>METODOLOG&Iacute;A</strong> </font>      <P><font size="2" face="Verdana">Para llevar a cabo la soluci&oacute;n propuesta    por el MINSAP para la informatizaci&oacute;n de la Salud P&uacute;blica, se    crea una plataforma de aplicaciones, abierta, con una interfaz de programaci&oacute;n    que permite incorporar nuevos m&oacute;dulos compatibles entre s&iacute;. Es    portable a diferentes sistemas operativos, tanto en los servidores como en los    clientes, replicable en otros entornos. Es una plataforma en constante desarrollo,    que crece en la medida en que se implementan nuevos m&oacute;dulos. En la primera    etapa se desarroll&oacute; el Registro Informatizado de Salud (RIS), implement&aacute;ndose    entre los m&oacute;dulos iniciales aquellos que ser&iacute;an los nomencladores    nacionales de recursos, geogr&aacute;ficos y servicios. </font>     <P><font size="2" face="Verdana">La arquitectura de software, tiene que ver con    el dise&ntilde;o y la implementaci&oacute;n de estructuras de software de alto    nivel seleccionando la arquitectura cliente servidor y en 3 capas. </font>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana"><strong>Arquitectura cliente servidor</strong>.    Arquitectura hardware y software adecuada para el proceso distribuido, en el    que la comunicaci&oacute;n se establece de uno a varios. Un proceso es un programa    en ejecuci&oacute;n. <em>Proceso cliente</em> es el que solicita un servicio.    <em>Proceso servidor</em> es el capaz de proporcionar un servicio. Un proceso    cliente se puede comunicar con varios procesos servidores y un servidor se puede    comunicar con varios clientes. </font>      <P><font size="2" face="Verdana">El servidor es un programa que recibe una solicitud,    realiza el servicio requerido y devuelve los resultados en forma de una respuesta.    Generalmente un servidor puede tratar m&uacute;ltiples peticiones (m&uacute;ltiples    clientes) al mismo tiempo.<sup>2</sup> El cliente no depende de la ubicaci&oacute;n    f&iacute;sica del servidor, ni del tipo de equipo f&iacute;sico en el que se    encuentra, ni de su sistema operativo. </font>      <P><strong><font size="2" face="Verdana">Arquitectura en tres capas</font></strong><font size="2" face="Verdana">.    Es aquella donde la soluci&oacute;n es segmentada desde el punto de vista l&oacute;gico    en Presentaci&oacute;n, <em>L&oacute;gica de Negocio y Datos</em>. La Capa de    Presentaci&oacute;n es la que presenta el sistema al usuario, le comunica la    informaci&oacute;n y captura la informaci&oacute;n del usuario, se comunica    &uacute;nicamente con la capa de negocio. La Capa de Negocio es donde residen    los programas que se ejecutan y se establecen todas las reglas que deben cumplirse.    Esta capa se comunica con la capa de presentaci&oacute;n, para recibir las solicitudes    y presentar los resultados, y con <em>la capa de datos, para solicitar al gestor    de base de datos</em>, almacenar o recuperar datos de &eacute;l. La Capa de    Datos es donde residen los mismos, est&aacute; formada por uno o m&aacute;s    gestores de bases de datos que realizan todo el almacenamiento de datos, reciben    solicitudes de almacenamiento o recuperaci&oacute;n de informaci&oacute;n desde    la capa de negocio.<sup>3</sup> (<a href="#fig1">Fig. 1</a>). </font>      <P align="center"><font size="2" face="Verdana"><img src="/img/revistas/rcim/v6n2/f0111214.jpg" width="466" height="341"><a name="figura1" id="figura1"></a></font>      <P align="left"><font size="2" face="Verdana">Las bases de datos son utilizadas    para el almacenamiento estructurado de datos y gestionar la labor, tanto de    usuarios, como de los programadores que las desarrollaron. </font>      <P><font size="2" face="Verdana">El servidor de bases de datos elegido inicialmente    fue MySQL 4.0.3., hoy ya con sus versiones m&aacute;s actuales. Es el sistema    de gesti&oacute;n de bases de datos SQL Open Source (Open Source significa que    es posible para cualquiera usar y modificar el software baj&aacute;ndolo desde    Internet sin pagar nada.), m&aacute;s popular, lo desarrolla, distribuye y soporta    MySQL AB. </font>      <P><font size="2" face="Verdana">Una base de datos es una colecci&oacute;n estructurada    de datos. Desde las grandes aplicaciones multiusuario, los hospitales inteligentes,    pasando por las historias cl&iacute;nicas electr&oacute;nicas, hasta las tiendas    virtuales utilizan tecnolog&iacute;a de bases de datos para gestionar los mismos    y garantizar su integridad. MySQL es un sistema de gesti&oacute;n de bases de    datos relacionales. Una base de datos relacional almace na datos en tablas separadas.    Esto a&ntilde;ade velocidad y flexibilidad. </font>     <P>&nbsp;     <P><strong><font size="3" face="Verdana"> RESULTADOS Y DISCUSI&Oacute;N</font></strong><font size="2" face="Verdana">    </font>      <P><font size="2" face="Verdana">El servidor MySQL fue desarrollado originalmente    para manejar grandes bases de datos mucho m&aacute;s r&aacute;pido que las soluciones    existentes y ha estado siendo usado exitosamente en ambientes de producci&oacute;n    sumamente exigentes por varios a&ntilde;os. Ofrece hoy un conjunto rico y &uacute;til    de funciones. Su conectividad, velocidad, y seguridad lo convierten en un servidor    bastante apropiado para acceder a bases de datos en Internet. Con la versi&oacute;n    5.1 se pueden crear procedimientos almacenados. MySQL soporta distintos tipos    de tablas, tales como ISAM, MyISAM e InnoDB. </font>      ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">Al inicio del desarrollo de la aplicaci&oacute;n    (a&ntilde;o 2003) fue elegida como <em>storage system</em> el MYSAM, tipo predeterminado,    realizando el control de la Integridad Referencial a nivel de la capa de negocios.    Esto fue hecho para no hacer la aplicaci&oacute;n dependiente de este motor,    relativamente nuevo, y con la idea de poder realizar en un futuro la migraci&oacute;n    para otro motor que pudiera existir. </font>      <P><font size="2" face="Verdana">Posteriormente en el a&ntilde;o 2006, despu&eacute;s    de distintos estudios fue seleccionado InnoDB, la cual es el tipo de tabla m&aacute;s    importante, siendo definidas con &eacute;sta todas las nuevas bases de datos    de los diferentes componentes. </font>      <P><font size="2" face="Verdana">Las tablas del tipo InnoDB est&aacute;n estructuradas    de forma distinta que MyISAM y soportan verificaci&oacute;n para restricciones    de claves for&aacute;neas. Hay que tener en cuenta que la sintaxis para FOREIGN    KEY en las columnas en la tabla referenciada debe ser nombrada expl&iacute;citamente.    Soporta las acciones ON DELETE y ON UPDATE. No es algo nuevo, desde la versi&oacute;n    3.23 se pod&iacute;a hacer uso de tablas InnoDB. </font>      <P><font size="2" face="Verdana">Se comenzaron a realizar estudios para optimizar    las consultas a las bases de datos: </font>      <P><font size="2" face="Verdana">- Uso de &iacute;ndices. </font>      <P><font size="2" face="Verdana">- Uso de tablas caches. </font>      <P><font size="2" face="Verdana">- Soluci&oacute;n Balanceo carga con LVS sobre    r&eacute;plicas de MySQL. </font>      <P><font size="2" face="Verdana"><strong>Uso de &iacute;ndices</strong></font>      <P><font size="2" face="Verdana">Se realizaron estudios de los &iacute;ndices    los que son utilizados para encontrar de forma r&aacute;pida los registros que    tengan un determinado valor en alguna de sus columnas. Sin un &iacute;ndice,    MySQL tiene que iniciar con el primer registro y leer a trav&eacute;s de toda    la tabla para encontrar los registros relevantes. A&uacute;n en tablas m&aacute;s    peque&ntilde;as es m&aacute;s r&aacute;pido leer los datos usando un &iacute;ndice,    que haciendo una lectura secuencial. Para lograr la agilizaci&oacute;n de las    consultas utilizando la sentencia <em>Explain</em>, veamos el ejemplo siguiente:    </font>      <P><font size="2" face="Verdana">EXPLAIN    ]]></body>
<body><![CDATA[<br>   </font><font size="2" face="Verdana">Select a.ID, a.NOMBRE, a. APELLIDO ,    <br>   &nbsp;&nbsp; </font><font size="2" face="Verdana">&nbsp;a.CARNET , b. TIPO    <br>   </font><font size="2" face="Verdana">from Bd1.registro a    <br>   &nbsp; </font><font size="2" face="Verdana">inner join Bd2.t_medico b    <br>   &nbsp; </font><font size="2" face="Verdana">on b.ID =a.ID-M Where    <br>   &nbsp; </font><font size="2" face="Verdana">a.CARNET_M = '62050714234' </font>      <P><font size="2" face="Verdana">En cada fila del resultado, nos explica c&oacute;mo    ha utilizado los &iacute;ndices de cada tabla involucrada en la consulta. La    columna ''<em>type</em>'' indica el tipo de ''<em>join</em>&quot; que ha podido    hacer. En nuestro caso, ''<em>ref</em>&quot; se ha consultado una fila de esta    tabla para cada combinaci&oacute;n de filas de las otras. Se est&aacute;n utilizando    los &iacute;ndices. (<a href="#figura2">Fig. 2</a>). </font>      <P align="center"><img src="/img/revistas/rcim/v6n2/f0211214.jpg" width="425" height="177"><a name="figura2"></a>      <P><font size="2" face="Verdana">No es as&iacute; en el siguiente caso: </font>     <P><font size="2" face="Verdana">EXPLAIN    ]]></body>
<body><![CDATA[<br>   </font><font size="2" face="Verdana">Select    <br>   &nbsp; </font><font size="2" face="Verdana">a. ID, a. NOMBRE, a. APELLIDO ,    </font>     <br>   &nbsp;&nbsp; <font size="2" face="Verdana">a.CARNET , b.CUBANO </font>     <br>   <font size="2" face="Verdana">FROM     <br>   &nbsp; </font><font size="2" face="Verdana">Bd1.registro a </font>     <br>   &nbsp; <font size="2" face="Verdana">inner join bd2.t_medico b    <br>   &nbsp; </font><font size="2" face="Verdana">on b.ID = a.ID_M Where    <br>   &nbsp; </font><font size="2" face="Verdana">a. CUBANO = 1 </font>      <P><font size="2" face="Verdana">Ahora en la tabla b el tipo es ''ALL'', esto    indica que el gestor ha tenido que leer toda la tabla para comprobar las condiciones    de la consulta. (<a href="#figura3">Fig. 3</a>). </font>     <P align="center"><font size="2" face="Verdana"><img src="/img/revistas/rcim/v6n2/f0311214.jpg" width="402" height="182"></font>    <a name="figura3"></a>      ]]></body>
<body><![CDATA[<P align="left"><font color="#000000" size="2" face="Verdana"><strong>Uso de tablas caches</strong></font>      <P><font size="2" face="Verdana">Las b&uacute;squedas entre los distintos componentes,    por ejemplo saber todos los m&eacute;dicos que pertenecen a un municipio, se    podr&iacute;a resolver con <strong>tablas caches</strong> que agilicen estas    b&uacute;squedas por ejemplo: </font>      <P>      <P><font size="2" face="Verdana">SELECT    <br>   &nbsp; </font><font size="2" face="Verdana">Tabla_ cache_p_m.idcache_prov_mun,    </font>     <br>   &nbsp; <font size="2" face="Verdana">Tabla_ cache_p_m.idprovincia,    <br>   &nbsp; Tabla_ cache_p_m.idmunicipio    <br>   FROM    <br>   &nbsp; Tabla_ cache_p_m.</font>     <P><font size="2" face="Verdana">Resultado en <a href="#figura4">figura 4</a>:    </font>     ]]></body>
<body><![CDATA[<P align="center"><img src="/img/revistas/rcim/v6n2/f0411214.jpg" width="317" height="328"> <a name="figura4"></a>      <P><font size="2" face="Verdana">Que si bien traer&iacute;a cierta redundancia    de la informaci&oacute;n podr&iacute;a evitar abortar las sesiones. </font>      <P><font size="2" face="Verdana"><strong>Soluci&oacute;n con Transacciones en    MySQL</strong></font>      <P><font size="2" face="Verdana">Tambi&eacute;n como otra mejora, el uso de las    transacciones permite una fiabilidad superior, e integraci&oacute;n de los datos.    Las transacciones aportan para una serie de consultas SQL que deben ejecutarse    en conjunto. Con el uso de las transacciones estaremos seguros que no quedaremos    incompletos, produciendo como tal falta de integridad de los datos. Por ejemplo,    en las aplicaciones de SISalud, si a un m&eacute;dico se le asignan sus datos    que son hijos de la tabla principal y el m&eacute;todo de negocio al insertar    la tabla padre falla, no deben quedar 'colgados' los hijos. Es como adicionar    la caracter&iacute;stica de &quot;deshacer&quot; a las aplicaciones sobre bases    de datos. </font>      <P><font size="2" face="Verdana">Las tablas que soportan transacciones, como es    el caso de InnoDB, son m&aacute;s seguras y f&aacute;ciles de recuperar si se    produce alg&uacute;n fallo en el servidor, ya que las consultas se ejecutan    o no en su totalidad. </font>      <P><font size="2" face="Verdana">Un ejemplo t&iacute;pico lo podemos encontrar    en una actualizaci&oacute;n del estado de un m&eacute;dico; si cambia su estado,    debe actualizarse su ubicaci&oacute;n f&iacute;sica. </font>      <P><font size="2" face="Verdana">UPDATE `t_medico`    <br>   </font><font size="2" face="Verdana">SET estado = 'P' WHERE id_medico = 30;    <br>   </font><font size="2" face="Verdana">UPDATE t_ubicacion    <br>   </font><font size="2" face="Verdana">SET baja = '2008-02-24'    ]]></body>
<body><![CDATA[<br>   </font><font size="2" face="Verdana">WHERE id_ medico_u = 30 </font>      <P><font size="2" face="Verdana">Estas dos consultas deben trabajar bien, &#191;Pero    qu&eacute; sucede si ocurre alg&uacute;n imprevisto y &quot;se cae&quot; el    sistema despu&eacute;s de que se ejecuta la primera consulta, pero la segunda    a&uacute;n no se ha completado?. El m&eacute;dico quedar&iacute;a pasivo, pero    no se actualizar&iacute;a su fecha de baja. </font>      <P><font size="2" face="Verdana">Ambas consultas deben ser ejecutadas de manera    conjunta, o en su caso, que no se ejecute ninguna de ellas. Es aqu&iacute; donde    las transacciones toman un papel muy importante. </font>      <P><font size="2" face="Verdana">Los pasos para usar transacciones en MySQL son:    </font>      <P><font size="2" face="Verdana">- Iniciar una transacci&oacute;n con el uso de    la sentencia BEGIN. </font>      <P><font size="2" face="Verdana">- Actualizar, insertar o eliminar registros en    la base de datos. </font>      <P><font size="2" face="Verdana">- Si se quieren los cambios a la base de datos,    completar la transacci&oacute;n con el uso de la sentencia COMMIT. Solo cuando    se procesa esta sentencia los cambios hechos por las consultas ser&aacute;n    permanentes. </font>      <P><font size="2" face="Verdana">- Si sucede alg&uacute;n problema, podemos hacer    uso de la sentencia ROLLBACK. </font>      <P><font size="2" face="Verdana">De esta forma se resolv&iacute;a el problema    a nivel de cada base de datos, pero qu&eacute; podr&iacute;a suceder entre las    diferentes relaciones que s&iacute; existen virtualmente entre las bases de    datos, o la mal llamada integridad entre los m&oacute;dulos. &#191;Podr&iacute;an    estas aplicaciones web resolver estos problemas? </font>      <P><font size="2" face="Verdana">Por ejemplo: a nivel nacional se manipula el    Registro de Unidades de Salud, pero los m&eacute;dicos en el componente de Personal    de Salud est&aacute;n asignados a una de esas Unidades de Salud. </font>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">Qu&eacute; suceder&iacute;a si decidiera eliminar    una unidad de salud, esto se env&iacute;a a un Work Flow, o sea est&aacute;    encaminado a nivel de un Work Flow (en una base de datos independiente), que    permite notificar qu&eacute; debe ser eliminado, pero esta informaci&oacute;n    no llega al otro componente el Registro Personal de Salud (RPS), pues estos    m&eacute;dicos deben ser cambiados a otra unidad de salud, antes de que esto    ocurra, pues ning&uacute;n componente debe realizar responsabilidades que no    son suyas, ya que se cumplen los siguientes patrones:<sup>4</sup></font>      <P><font size="2" face="Verdana">Patr&oacute;n Alta Cohesi&oacute;n. La cohesi&oacute;n    es una medida de cu&aacute;n relacionadas y enfocadas est&aacute;n las responsabilidades    de una clase. Una alta cohesi&oacute;n caracteriza a las clases con responsabilidades    estrechamente relacionadas que no realicen un trabajo enorme. Se simplifica    el mantenimiento. Soporta mayor capacidad de reutilizaci&oacute;n. </font>      <P><font size="2" face="Verdana">Patr&oacute;n Bajo Acoplamiento. El acoplamiento    es una medida de la fuerza con que una clase est&aacute; conectada a otras clases,    con que las conoce y con que recurre a ellas. Acoplamiento bajo significa que    una clase no depende de muchas clases. Con el empleo de este patr&oacute;n no    se afectan por los cambios de otros componentes, estos ser&iacute;an f&aacute;ciles    de entender por separado y de reutilizar. </font>      <P><font size="2" face="Verdana">Actualmente solo est&aacute; propuesto crear    un sistema de aviso para notificar cualquier cambio, ejemplo si un m&eacute;dico    es declarado pasivo, todos los m&oacute;dulos que lo tiene asignados deb&iacute;an    saberlo, etc. </font>      <P><font size="2" face="Verdana">En el a&ntilde;o 2010, se despleg&oacute; la    versi&oacute;n 2.0 de RPS, que fue implementado por el grupo de mantenimiento    del RIS de la Factor&iacute;a de Software de Softel, la cual genera los siguientes    cambios:<sup>5</sup></font>      <P><font size="2" face="Verdana">- Creaci&oacute;n de nuevas tablas y nuevas relaciones    entre ellas, lo que implica un redise&ntilde;o de la base de datos. </font>      <P><font size="2" face="Verdana">- Cambios en el dise&ntilde;o de las p&aacute;ginas    y en los c&oacute;digos. </font>      <P><font size="2" face="Verdana">- Migraci&oacute;n de los datos actuales a las    nuevas estructuras. </font>     <P>&nbsp;     <P><font size="3" face="Verdana"> <strong>CONCLUSIONES </strong></font>      ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">Para poder lograr la integraci&oacute;n de todas    las Componentes y con ello, de las Bases de Datos que formen parte de SISalud,    en un primer momento fue creado un Grupo de Arquitectura en cada entidad, adem&aacute;s    del Grupo de Arquitectura MINSAP - MIC, del cual forman parte los l&iacute;deres    de los grupos de arquitectura de cada entidad y algunos miembros del MINSAP.    En el consejo de este grupo se analizaba cada proyecto y sus resultados, realiz&aacute;ndose    el estudio de la posible integraci&oacute;n entre los mismos. Hoy esto est&aacute;    organizado en estrecha coordinaci&oacute;n entre la Direcci&oacute;n de Inform&aacute;tica    del MINSAP y la empresa SOFTEL. </font>      <P><font size="2" face="Verdana">Si bien es cierto que la conectividad pudiera    estar afectada producto de los desastres naturales (como ciclones, inundaciones,    etc.) ocurridos o que pudieran ocurrir, las caracter&iacute;sticas que tiene    el RIS, permiten usar la aplicaci&oacute;n por aquellas entidades que si tengan    las condiciones t&eacute;cnicas adecuadas. Para los otros casos habr&aacute;    que crear un Plan de Contingencia. Tambi&eacute;n se hace necesario que a nivel    nacional del MINSAP existan un grupo de administradores encargados de mantener    actualizada la informaci&oacute;n de cada componente. </font>      <P>&nbsp;     <P><font size="3" face="Verdana"> <strong>REFERENCIAS BIBLIOGR&Aacute;FICAS </strong></font>      <P><font size="2" face="Verdana">1. Delgado, A., Vidal, M.V. Inform&aacute;tica    en la salud p&uacute;blica cubana Revista Cubana Salud P&uacute;blica. Volumen    32 no. 3, 2006. </font>      <P><font size="2" face="Verdana">2. El Modelo Cliente - Servidor. Herramientas    _ Web para la ense&ntilde;anza de Protocolos de Comunicaci&oacute;n. (Consultado:    7 de febrero de 2014). </font> <font size="2" face="Verdana"><a href="http://neo.lcc.uma.es/evirtual/cdd/tutorial/aplicacion/cliente-servidor.html" target="_blank">http://neo.lcc.uma.es/evirtual/cdd/tutorial/aplicacion/cliente-servidor.html</a></font>     <!-- ref --><P><font size="2" face="Verdana">3. Softel. Documento sobre la Arquitectura de    Software para los componentes a emplear por el Sistema de Informaci&oacute;n    para la Salud. La Habana, 2006.     </font>      <!-- ref --><P><font size="2" face="Verdana">4. Paderni, M.C. Gesti&oacute;n centralizada    del Personal de la Salud para dar servicio a los distintos componentes del Sistema    de Informaci&oacute;n para la Salud. Tesis de Maestr&iacute;a Universidad de    Ciencias Inform&aacute;ticas, 2011.     </font>      ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">5. Guti&eacute;rrez, S., Garc&iacute;a, D., Infante,    E. Registro de Trabajadores de la Salud. VIII Congreso Internacional de Inform&aacute;tica    en la Salud, 2011. </font>     <P>&nbsp;     <P>&nbsp;     <P><font size="2" face="Verdana">Recibido: 15 de octubre de 2014.    <br>   </font><font size="2" face="Verdana">Aprobado: 21 de noviembre de 2014. </font>       ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Delgado]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Vidal]]></surname>
<given-names><![CDATA[MV]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Informática en la salud pública cubana]]></article-title>
<source><![CDATA[Revista Cubana Salud Pública]]></source>
<year>2006</year>
<volume>32</volume>
<numero>3</numero>
<issue>3</issue>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Guerra]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Sistemas Distribuidos]]></source>
<year>Agos</year>
<month>to</month>
<day> 2</day>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="">
<collab>Softel</collab>
<source><![CDATA[Documento sobre la Arquitectura de Software para los componentes a emplear por el Sistema de Información para la Salud]]></source>
<year>2006</year>
<publisher-loc><![CDATA[La Habana ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Paderni]]></surname>
<given-names><![CDATA[MC]]></given-names>
</name>
</person-group>
<source><![CDATA[Gestión centralizada del Personal de la Salud para dar servicio a los distintos componentes del Sistema de Información para la Salud]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gutiérrez]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[García]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Infante]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<source><![CDATA[Registro de Trabajadores de la Salud]]></source>
<year></year>
<conf-name><![CDATA[VIII Congreso Internacional de Informática en la Salud]]></conf-name>
<conf-date>2011</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
