Universidad de las Ciencias Informáticas Facultad 7
Título: Sistema para la Gestión de las Consultas Estomatológicas
Trabajo de Diploma para optar por el título de Ingeniero en Ciencias Informáticas
Autores:
Yaimi Aguilar Reyes Zadi Guardia Castillo
Tutores: Lic. Ernesto Sarduy Alonso
Lic. Roxana Pérez Rubido
Asesor: Lic. Meybel Rivero Rivadeneira
La Habana, Julio 2008
“Año 50 de la Revolución”
DECLARACIÓN DE AUTORÍA
Declaramos ser autores de la presente tesis y reconocemos a la Universidad de las Ciencias Informáticas los derechos patrimoniales de la misma, con carácter exclusivo.
Para que así conste firmo la presente a los 2 días del mes de Julio del año 2008.
______________ ______________
Yaimi Aguilar Reyes Zadi Guardia Castillo
______________ ______________
Ernesto Sarduy Alonso Roxana Pérez Rubido
DATOS DE CONTACTO
Lic. Ernesto Sarduy Alonso {[email protected]}. Graduado de Ciencias de la Computación en el año 2006, por la Universidad Central de las Villas “Martha Abreus”. Comienza a trabajar en el año 2006 como profesor en la Universidad de las Ciencias Informáticas (UCI), impartiendo las asignaturas de Programación II y de Programación IV. Ha pasado numerosos cursos de postgrado en la Universidad de la Habana y en la propia UCI relacionados con su actividad profesional.
Agradecimientos
AGRADECIMIENTOS
Agradecemos a todos los que de alguna forma han contribuido a nuestra formación profesional especialmente:
A nuestro querido Comandante Fidel y a la UCI por hacernos partícipes de este proyecto de la Revolución.
A nuestros profesores por su ayuda en nuestra preparación profesional.
A nuestros tutores Ernesto y Roxana y a nuestra asesora Meibel por toda la ayuda brindada.
A nuestros familiares y amigos por su apoyo y por brindarnos toda su ayuda desinteresadamente.
De Zadi:
A mis queridos padres Ana Julia y Rafael por todo el amor que me han sabido dar y por haberme guiado durante toda mi vida para lograr este sueño que hoy veo realizado. A mi abuela Monga y a mi hermano Oscar por todo su apoyo y preocupación. Agradecerle de forma especial a mi querida tía Lidia que más que mi tía ha sido como una madre para mí durante todo este tiempo. Agradecer hoy y siempre a mi novio Yunior por todo el amor que me ha brindado, por su apoyo y comprensión en esta etapa tan importante de mi vida. A mi compañera de tesis por su dedicación y entrega. A mis compañeros de aula, profesores, vecinos, familiares y todas aquellas personas que de alguna forma contribuyeron a mi
formación profesional. Muchas gracias.
De Yaimi:
Agradecer a mis queridos padres Adis y Jorge que a pesar de la distancia me han sabido dar todo su
amor y comprensión en los momentos más difíciles. A mi querida abuela Isabel, a quien le debo todo lo
que hoy soy. A toda mi familia y en especial a mis tías Idania y Erenia por su apoyo durante todo este
tiempo. A mis hermanitos por todo su amor y en especial a Yanier. A mi compañera de tesis Zadi por
todo el apoyo que me brindó cuando lo necesité y por su dedicación. A mis compañeros de aula y a todas
mis amistades en especial a Gabriel y Yunior. A mi novio por darme su amor y su apoyo. A todos los
que de una forma u otra contribuyeron con mi formación personal y profesional muchas gracias.
Dedicatoria
DEDICATORIA
Dedico este trabajo de diploma a mis queridísimos padres,
por guiarme siempre por el mejor camino, por su enorme sacrificio,
dedicación y por confiar en mí. A toda mi familia y amigos por su apoyo y cariño y a mi querida abuela.
Yaimi
A mis queridísimos padres Ana Julia y Rafael, A mi hermano, a mi novio y a toda mi familia por ser parte de mi corazón,
por su apoyo incondicional y su gran amor. Con todo mi amor y cariño.
Zadi
Resumen
RESUMEN
Actualmente, en los hospitales y policlínicos del país que cuentan con áreas de Estomatología; el manejo de la información se hace difícil debido al gran volumen de datos que son procesados. Para resolver esta situación se realiza el presente trabajo que tiene como objetivo diseñar e implementar una aplicación Web para que el procesamiento y obtención de la información sea más eficiente facilitando su control y la toma de decisiones.
Para el desarrollo de la aplicación se utilizan herramientas y arquitecturas basadas en tecnologías web corriendo sobre un servidor LAMP (Linux, Apache, MySQL, PHP) y utilizando herramientas de software libre. La información estará almacenada en una base de datos a la que se accederá para realizar las consultas necesarias en dependencia de la solicitud del usuario.
El Sistema para la Gestión de las Consultas Estomatológicas brinda la posibilidad de manejar de manera sencilla y eficiente la información que se gestiona en esta área. Garantiza una mejora en la calidad del servicio en cuanto a la atención al paciente y optimiza el trabajo del personal dentro de esta área. Logrando así que el sistema brinde funcionalidades que posibiliten crear un flujo informativo rápido y confiable.
PALABRAS CLAVES
Sistema de gestión, Odontología, Estomatología
Tabla de Contenidos
INTRODUCCIÓN ... 1
CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA ... 6
1.1 Tecnologías de la información y las comunicaciones en Salud Pública ... 6
1.2 Las Tecnologías de la información y las comunicaciones en Estomatología ... 6
1.3 Sistemas automatizados existentes relacionados con la especialidad de Estomatología ... 7
1.4 Tecnologías, metodologías y herramientas actuales para dar solución al problema... 8
1.5 Webservices (servicios Web). ... 16
1.6 Gestores de base datos ... 16
1.7 Metodologías de desarrollo del software ... 17
1.8 Herramientas utilizadas en el desarrollo ... 19
CAPÍTULO 2: CARACTERÍSTICAS DEL SISTEMA ... 21
2.1 Objeto de estudio ... 21
2.2 Objeto de Automatización ... 21
2.3 Información que se Maneja ... 22
2.4 Propuesta del Sistema ... 22
2.5 Modelo del Negocio... 23
2.6 Especificación de los Requisitos del Software ... 23
2.7 Definición de los casos de usos del sistema ... 25
CAPÍTULO 3: ANÁLISIS, DISEÑO E IMPLEMENTACIÓN DEL SISTEMA ... 26
3.1 Análisis... 26
3.2 Diseño ... 32
3.3 Diseño de la BD ... 51
3.4 Definiciones de diseño ... 57
3.5 Tratamiento de errores ... 57
3.6 Seguridad ... 58
3.7 Concepción de la ayuda ... 58
Tabla de Contenidos
3.8 Implementación ... 59
CONCLUSIONES ... 65
RECOMENDACIONES ... 66
REFERENCIAS BIBLIOGRÁFICAS ... 67
BIBLIOGRAFIA ... 69
ANEXO # 1 MODELO DEL NEGOCIO ... 71
ANEXO # 2 MODELO DEL SISTEMA ... 77
ANEXO # 3 AVAL DEL CLIENTE ... 96
GLOSARIO ... 97
Introducción
1
INTRODUCCIÓNLas enfermedades bucodentales han aquejado a la humanidad desde sus mismos inicios, en especial el lancinante1 dolor dentario producido por una carie profunda o un absceso periapical. Técnicas curativas y rehabilitadoras han sido practicadas por muchos médicos a lo largo de la historia. Desde tiempos inmemoriales, las personas se han preocupado por la limpieza y el cuidado de sus dientes y desde que el hombre empezara a diseñar y construir herramientas, se han realizado diversas acciones, tanto para disminuir o eliminar los daños de la enfermedad dental, como para modificar la estructura dentaria principalmente por motivos estéticos.
Los estudios en los que se entremezclan disciplinas distintas y vastas como por ejemplo la odontología exigen una consideración intensa y cuidadosa. La odontología, ha experimentado grandes cambios desde hace ya medio siglo atrás, la mayor revolución en este campo, fue el proceso de adhesión que se halla en casi todas las especialidades odontológicas. Este desarrollo fue posible gracias a la creación de Sistemas Adhesivos, que a su vez permitieron dar origen a nuevos materiales de restauración altamente estéticos y funcionales.
Desde la incertidumbre de sus perspectivas empíricas iniciales comienza a crecer en lo científico y lo tecnológico. Al estudiar la evolución de esta ciencia se pone de manifiesto que cada época se proyecta sobre ella y le imprime un sello característico, al igual que el proceso de formación de las personas que se dedicaban a ejercerla. La profesión dedicada a la atención de la salud bucal a lo largo de su historia ha tenido diversas denominaciones, desde las más vulgares como quebrantahuesos y sacamuelas, hasta las conocidas actualmente en diferentes partes del mundo. La Estomatología como ciencia de la salud es una actividad biosocial, su articulación con la sociedad no es causal o accidental, en la medida en que su ejercicio produce la satisfacción de una carencia individual colectiva que históricamente ha sido introducida por la práctica.
Al escribir acerca de la historia de la estomatología, resalta la existencia de características generales como los cambios en los modelos de alimentación, la evolución del instrumental, los tratamientos utilizados, el trabajo empírico, la medicina, la cirugía, los cirujanos barberos y otros oficios del arte de curar, así como la formación de los profesionales, la higiene bucal y los métodos recomendados para el logro de esta.
1Dicho de un dolor: Muy agudo.
Introducción
2
El país tiene antecedentes que se remontan desde los mismos aborígenes, pasando por diversos momentos históricos concretos hasta el día de hoy en que toma dimensiones cualitativamente superiores, que contribuyen a elevar la salud bucal y mejorar la calidad de vida de la población. A partir del triunfo de la Revolución, hasta la actualidad, ha crecido como ciencia y en estos momentos se encuentra en una etapa de florecimiento científico, se ha continuado un desarrollo acelerado apoyado por nuestra Revolución, introduciendo tecnologías de avanzadas, perfeccionando la calidad de la docencia e incrementando la solidaridad e internacionalismo con pueblos hermanos.El Estado cubano garantiza la salud a toda la población y tiene como premisa que es un derecho de todos los individuos. El Ministerio de Salud Pública es el responsable de ejecutar en su red de servicios organizados un sistema de salud que tiene como característica el ser único, integral y regionalizado.
Cuba enfrenta hoy el enorme reto de informatizar la sociedad cubana con vistas a integrarse a la infraestructura global de la información, así como optimizar el uso de las nuevas Tecnologías de la Información y las Comunicaciones (TIC).
El Ministerio de Salud Pública de Cuba (MINSAP), ha definido la informatización del sector de la salud, como los procesos cuyos procedimientos se enmarcan en el concepto de la informatización social, en busca de la optimización de los servicios de la salud que se brindan a la población; mayor productividad y competencia en el desempeño de sus profesionales y técnicos, control en la administración de sus recursos, eficacia y eficiencia en su gerencia. [1]
La Salud Pública en el país no está informatizada de forma integrada para los procesos actuales de recogida, procesamiento y transmisión de información. A la hora de contar con esta información a nivel nacional existe una deficiencia, ya que el proceso de la captura de información se lleva en papel o en computadoras aisladas por lo que el proceso actual no es el más óptimo. En la gerencia del servicio de salud integral cada día toma más importancia la atención dental, debido a la universalidad de la patología bucal, los altos niveles de demanda sanitaria vinculados a motivos de consulta odontológicos, el aumento de satisfacción del usuario cuando se incluye dentro de los planes de salud para recibir los servicios que se prestan dentro de esta área.
Actualmente en los hospitales y policlínicos del país en el área de odontología se le realiza al paciente un diagnóstico, tratamiento y prevención de las enfermedades del aparato estomatognático. Todo este trabajo se realiza de forma manual lo que resulta un tanto difícil y engorroso transportar información de un lugar para otro; así como el registro y control de los datos de cada uno de los pacientes que son atendidos en las distintas especialidades y disciplinas que abarca la odontología como son:
Introducción
3
rehabilitación oral, cirugía oral, ortodoncia, prostodoncia o prótesis dental, periodoncia, endodoncia, implantología, odontopediatría, patología bucal, odontología estética o cosmética, estomatología forense, cirugía maxilofacial, odontología preventiva y comunitaria entre otras.En la especialidad de estomatología a cada uno de los pacientes que son atendidos se le crea una historia clínica en la que se recogen los datos personales así como las enfermedades que padecen. Se realiza además un examen bucal donde se señalan las afectaciones que el mismo puede tener y finalmente un diagnóstico a partir del cual se le pone al paciente el plan de tratamiento. Para ser atendidos los pacientes necesitan de un turno, el cual solo puede ser proporcionado por la secretaria o la doctora que se encuentre trabajando en ese momento.
La clínica estomatológica de la Universidad de las Ciencias Informáticas no se encuentra ajena a esta situación, en ella se gestiona gran cantidad de información, la cual puede llegar a perderse o deteriorarse, dificultando de esta forma el trabajo del personal encargado de llevar el control y acceso de todos los pacientes atendidos. Teniendo en cuenta lo expuesto anteriormente se plantea el siguiente problema: ¿Cómo gestionar de forma eficiente el proceso de registro y control de los pacientes que son atendidos en la consulta de estomatología, así como la reservación de los turnos para ser atendidos? De esta forma el Objeto de Estudio del trabajo recae en el proceso de gestión de la información relacionada con los pacientes que son atendidos en el área de odontología en la especialidad de estomatología.
Se tiene como Campo de Acción el proceso de gestión de la información referente a los pacientes atendidos en el área de estomatología en la Universidad de las Ciencias Informáticas.
Para dar solución al problema mencionado anteriormente se propone como Objetivo General:
Desarrollar un sistema informático que gestione la información relacionada con los servicios estomatológicos.
Para lograr el objetivo planteado anteriormente se trazaron las siguientes tareas a realizar:
1. Analizar los aspectos teóricos conceptuales en el desarrollo de sistemas automatizados en la especialidad de estomatología.
2. Valorar las tendencias, tecnologías y metodologías actuales necesarias para el desarrollo del trabajo.
Introducción
4
3. Modelar el sistema obteniendo todos los artefactos de ingeniería necesarios para el desarrollode manera efectiva del proceso de implementación.
4. Diseñar la Base de Datos que requiere el sistema, de manera normalizada.
5. Implementar el sistema para la gestión de las consultas estomatológicas.
Para realizar las tareas se emplearon los siguientes métodos:
Métodos teóricos:
Analítico-Sintético: Centrándose en el análisis de las teorías; permitiendo la extracción de los elementos más importantes de manera que se procese la información y se elaboren conclusiones.
Histórico-Lógico: En la primera parte de la investigación se desarrollará un estudio del estado del arte de la problemática; se analizará las ventajas y desventajas de cada una de las herramientas y las tendencias en la resolución de esta problemática.
Métodos empíricos:
Entrevistas: Se llevó a cabo diferentes entrevistas a los clientes para dar cumplimiento a las tareas y objetivos planteados como vía de obtención y elaboración de los datos y en el levantamiento de requisitos.
El siguiente trabajo tiene como propósito llevar a cabo el ciclo completo de desarrollo del producto propuesto, el mismo está estructurado por cuatro capítulos:
Capítulo 1:”Fundamentación Teórica” se realiza un estudio del estado del arte del tema planteado así como de las principales tecnologías, herramientas y metodologías existentes en el mundo actual para el desarrollo de este tipo de aplicaciones.
Capítulo 2: “Características del Sistema” se aborda todo lo referente a las características del sistema donde se describe además el modelo del negocio, los casos de uso del sistema así como la definición de los requisitos que debe cumplir el mismo.
Capítulo 3: “Análisis y Diseño e implementación del Sistema” se realiza el análisis, diseño e implementación del sistema mediante los diagramas de clase, de diseño y de componentes del
Introducción
5
sistema donde se muestran los diferentes diagramas como: diagramas de clases, diagrama de interacción de clases (secuencia), diagrama de la base de datos del sistema con la descripción de sus campos y tablas, así como los diagramas de componentes.Capítulo # 1 Fundamentación Teórica
6
CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICAEl presente capítulo tiene como objetivo abordar los diferentes elementos que brinda la base teórico conceptual para el desarrollo de este trabajo. Se exponen además los antecedentes e intentos de integración entre sistemas informáticos en el área de la salud pública. También se realiza un estudio de las tecnologías, software, metodologías de desarrollo utilizados en la actualidad y la selección de las mismas para llevar a cabo el desarrollo de esta aplicación.
1.1 Tecnologías de la información y las comunicaciones en Salud Pública
La salud pública ha sido otro de los sectores beneficiados con la aplicación de las tecnologías de la información y las comunicaciones. En este sentido se desarrolla la Red Telemática de Información de Salud, que interconecta policlínicos, hospitales, centros de enseñanza como la Facultad de Estomatología, bibliotecas y otras instituciones en todas las provincias del país, mediante un sistema que cuenta con más de 6000 computadoras.
Este programa fomenta los conocimientos al servicio de la salud, los cuales propician elevar la calidad y eficiencia de las prestaciones y contribuyen al mejoramiento de la atención médica, la docencia, la investigación y la gestión de salud. De igual forma, ha facilitado la presencia internacional de los médicos, enfermeras y otros profesionales cubanos, constituyendo un medio de comunicación efectivo con los colaboradores que cumplen misiones en otros países.
Los crecientes desafíos que el desarrollo tecnológico impone, requieren cada vez más, de la formación de una cultura informática. El gobierno de Cuba tiene entre sus objetivos el uso masivo de las tecnologías de la información y las comunicaciones. Para ello, cuenta con recursos humanos bien articulados, un sistema nacional de enseñanza organizada y proyectos que responden a ese propósito.
[2]
1.2 Las Tecnologías de la información y las comunicaciones en Estomatología
En Estomatología se desarrollan las maestrías a distancia, como la de Salud Bucal Comunitaria, Urgencias Estomatológicas y Medicina Bioenergética. Se han elaborado páginas Web para facilitar el aprendizaje de estudiantes sobre la confección de aparatología removible, fija y funcional en la especialidad de Ortodoncia. Estas páginas han promovido tesis de terminación de residencias de la especialidad, donde se han realizado encuestas a los estudiantes para conocer el nivel de aceptación de los nuevos métodos de enseñanza, los que son bien recibidos por estos.
Capítulo # 1 Fundamentación Teórica
7
Muchos de los profesionales en la rama de la Estomatología han incursionado en la creación de páginas Web para mejorar la enseñanza, presentando dichas creaciones en fórum de ciencia y técnica, en aras del desarrollo de la especialidad dentro de las ciencias médicas. [3]1.3 Sistemas automatizados existentes relacionados con la especialidad de Estomatología Para la argumentación del tema se realizó una investigación sobre la existencia de software tanto nacional como internacional, que tuvieran algún tipo de relación con el proceso de negocio relacionado con la atención estomatológica.
Actualmente no existen sistemas que cumplan todos los requisitos necesarios que se pretenden implementar en esta aplicación. Solo se han encontrado softwares propietarios u otros que gestionan algunas funcionalidades de la estomatología, los cuales brindan información estadística o permiten el aprendizaje y la enseñanza de la especialidad. Un ejemplo de ello a nivel internacional es el Dental Explorer, un software de asesoramiento que permite al odontólogo una visualización sencilla de la situación actual y de las diferentes posibilidades de rehabilitación del paciente. Es una herramienta para el asesoramiento del paciente en el lugar de trabajo, además pueden consultarse los diagnósticos del mismo. También permite dibujar y guardar diferentes situaciones estándares del paciente. Este software puede ser utilizado como material de formación en universidades, para la obtención del título de máster.
Otro de los softwares encontrados es el Ad.I.CO, una aplicación desarrollada en el lenguaje de programación Visual Fox Pro, el cual administra de manera transparente y sencilla los pacientes y turnos de múltiples profesionales de odontología, pidiendo datos mínimos para los que no sean pacientes habituales. Se puede ejecutar en cualquier versión del sistema operativo Windows.
A nivel nacional el proceso del negocio en el área de Estomatología no se encuentra automatizado, por este motivo el flujo de la información, desde su entrada, procesamiento y salida es lento y no contempla la posibilidad de generar tablas de salida que relacionen variables de interés para los investigadores.
Además de no brindar la facilidad de construir indicadores de salud que midan la calidad de la atención médica y muestren el estado de salud bucal de la población, factor este indispensable para la toma de decisiones y aplicación de eficaces estrategias de salud.
En la Facultad de Estomatología de la Habana se desarrolló un Sistema de Información de Estadísticas Continuas de Actividades de Estomatología, que tiene como propósito fundamental obtener información
Capítulo # 1 Fundamentación Teórica
8
que permita evaluar las actividades de promoción de salud, prevención, atención curativa y rehabilitación estomatológica.Para el desarrollo del Sistema de Información de Estadísticas Continuas de Actividades de Estomatología se utilizaron programas y plataformas desarrolladas bajo la GPL (General Public License). Los principales son: GNU/Linux, Apache, PHP para el manejo de páginas activas y MySQL.
Los que permitieron que el sistema pueda ser accedido y administrado desde cualquier punto de la red.
Además se utilizaron software específicos para el diseño de imágenes y programación de Plataformas Web.
Estos sistemas existentes, aunque cumplen funcionalidades relacionadas con la estomatología, están centrados fundamentalmente a facilitar el manejo de información relacionada con los pacientes y no brindan servicios a los mismos o simplemente son software propietario que solo se puede acceder a ellos si los compras. Mientras que la aplicación que se pretende desarrollar no se limitará solamente a estas funcionalidades ni presentará la condición de comprarlo, pues será un sistema de apoyo tanto para el personal encargado de gestionar los datos dentro de esta área como para el paciente, cuando este desee solicitar un servicio de la clínica estomatológica.
1.4 Tecnologías, metodologías y herramientas actuales para dar solución al problema
En este mundo rápido y cambiante, las aplicaciones de gestión han ganado espacio por las facilidades que brindan. Las tecnologías y herramientas más usadas para desarrollar este tipo de aplicaciones giran alrededor de diferentes elementos como: Internet, aplicaciones Web, así como los lenguajes orientados a la arquitectura cliente servidor, los sistemas de gestión de bases de datos, etc. A continuación se muestran diferentes tecnologías, herramientas, lenguajes y metodologías usadas en el desarrollo de la aplicación. [4]
1.4.1 Arquitectura Cliente / Servidor
La arquitectura Cliente / Servidor representa la combinación de sistemas que pueden colaborar entre si para dar a los usuarios toda la información que ellos necesiten sin que tengan que saber donde está ubicada. Este tipo de organización se basa en que entre todos los ordenadores que están en la red, unos ofrecen servicios (los llamados servidores) y otros usan esos servicios (los denominados clientes).
Capítulo # 1 Fundamentación Teórica
9
Las aplicaciones de gestión empresariales basadas en la arquitectura cliente/servidor permiten mayor acceso a la información. El usuario tiene un ordenador en su mesa, al que llegan los datos que necesita y que posteriormente puede analizar en su propio ordenador con su propio criterio de análisis.Ventajas:
El cliente y el servidor pueden actuar como una sola entidad y también pueden actuar como entidades separadas, realizando actividades o tareas independientes.
Las funciones de cliente y servidor pueden estar en plataformas separadas, o en la misma plataforma.
Un servidor da servicio a múltiples clientes en forma concurrente. Cada plataforma puede ser escalable independientemente. Los cambios realizados en las plataformas de los clientes o de los servidores, ya sean por actualización o por reemplazo tecnológico, se realizan de una manera transparente para el usuario final.
Un sistema de servidores realiza múltiples funciones al mismo tiempo que presenta una imagen de un solo sistema a las estaciones clientes. Esto se logra combinando los recursos de cómputo que se encuentran físicamente separados en un solo sistema lógico, proporcionando de esta manera el servicio más efectivo para el usuario final. [5]
1.4.2 Lenguajes de programación para la Web
En la actualidad los lenguajes de programación para la Web se clasifican en dos grupos teniendo en cuenta donde se implementan respecto a la arquitectura Cliente/Servidor, nombrándose lenguajes del lado del cliente y lenguajes del lado del servidor.
Lado del cliente:
1.4.2.1 HTML
HyperText Markup Language, es un lenguaje simple utilizado para crear documentos de hipertexto. La presentación de la página es muy dependiente del browser (o programa navegador) utilizado. El documento no produce igual resultado en la pantalla si se visualiza con un browser en modo línea, Mozilla o Netscape, o sea, HTML se limita a describir la estructura y el contenido de un documento y no el formato de la página y su apariencia. HTML es un lenguaje muy sencillo que permite preparar documentos Web insertando en el texto una serie de marcas que controlan los diferentes aspectos de la presentación y comportamiento de sus elementos. [6]
Capítulo # 1 Fundamentación Teórica
10
1.4.2.2 Java ScriptLenguaje que permite interactuar con el navegador de manera dinámica y ef icaz, proporcionando a las páginas web mayor dinamismo.
El advenimiento de Java Script ha resuelto de manera fácil y elegante la mayoría de los problemas con que se enfrenta el diseñador de páginas Web referidos a la programación. Sus requerimientos son relativamente sencillos, es un lenguaje cuyos códigos se interpretan en el navegador del cliente, sin tener que ir y venir del cliente al servidor actualizando la información. [7]
Lado servidor:
En este grupo se encuentran entre los más utilizados: PERL, ASP, JSP, PHP. Estos lenguajes permiten desarrollar lógica del negocio dentro del servidor y posibilitan el acceso a las bases de datos y el procesamiento de la información.
1.4.2.3 PHP
Es uno de los lenguajes del lado del servidor más extendidos en la web. Se trata de un lenguaje de creación relativamente reciente que ha tenido una gran aceptación en la comunidad de webmasters debido sobre todo a la potencia y simplicidad que lo caracterizan. Permite embeber sus pequeños fragmentos de código dentro de la página HTML y realizar determinadas acciones de una forma fácil y eficaz. Sin tener que generar programas elaborados íntegramente en un lenguaje distinto al HTML.
Ofrece una amplia gama de funciones para la explotación de bases de datos de forma sencilla.
Es un lenguaje de programación (originario del nombre PHP Tools o Personal Home Page Tools) que sirve principalmente para proporcionar características dinámicas a una página Web. PHP se interpreta y ejecuta directamente en el servidor en el que está albergada la página Web. El visitante únicamente recibe el resultado buscado por el código en el que está escrito. [8]
Características de PHP: Velocidad, estabilidad, seguridad y simplicidad.
1. Velocidad: Provee gran velocidad de ejecución y no crea demoras en la máquina. Por esta razón no requiere demasiados recursos de sistema.
Capítulo # 1 Fundamentación Teórica
11
2. Estabilidad: La velocidad no sirve de mucho si el sistema se cae cada cierta cantidad de ejecuciones.PHP utiliza su propio sistema de administración de recursos y dispone de un sofisticado método de manejo de variables, conformando un sistema robusto y estable.
3. Seguridad: El sistema debe poseer protecciones contra ataques. PHP permite diferentes niveles de seguridad, estos pueden ser configurados desde el archivo.
4. Simplicidad: Se les debe permitir a los programadores generar código productivamente en el menor tiempo posible. Usuarios con experiencia en C y C++ podrán utilizar PHP rápidamente. [9]
1.4.2.4 ¿Por qué usar PHP?
La Comunidad PHP
PHP tiene una comunidad muy grande de desarrolladores. Existen diversidad de lugares donde se pueden encontrar: documentación, tutoriales, ejemplos de código y foros. Si se tiene un problema con este, se puede encontrar la respuesta en muchos sitios donde los usuarios comparten el conocimiento adquirido en el proceso de desarrollo.
Aprender PHP es fácil
Este lenguaje es fácil de aprender comparado con otros lenguajes de programación. Es semejante a C y Java pues la sintaxis primaria está basada en Perl. Además; si se conoce Java script o ActionScript verás la semejanza entre estos lenguajes por ejemplo en sus estructuras de control. Tiene librerías especializadas en determinados trabajos por lo cual solo necesitas conocer la sintaxis, aplicarla y lograrás grandes resultados.
Rendimiento
El rendimiento de PHP es bueno y eficiente, utilizando un servidor modesto se puede atender múltiples peticiones al día.
Bajo Costo
PHP es gratuito y se puede descargar desde www.php.net.
Es Open Source, se puede modificar
PHP es Open Source, se tiene acceso al código fuente. Si se desea agregar o modificar algo para obtener un funcionamiento de acuerdo a sus necesidades puede hacerlo con total libertad. Teniendo
Capítulo # 1 Fundamentación Teórica
12
acceso al código, los desarrolladores detectan bugs, corrigen y perfeccionan PHP. Logrando tener una aplicación segura y constantemente renovada.Librerías Incluidas
PHP fue diseñada para trabajar sobre la web. Trae un conjunto amplio de funciones para ser utilizadas en diferentes tareas relacionadas con la web. Se puede conectar con bases de datos, conectar a web services, parsear XML, enviar email, generar PDFs, generar imágenes, etc.
Portabilidad
PHP está disponible para la mayoría de los sistemas operativos existentes. Desde Unix, Linux, Microsoft Windows, MAC, entre otros. Una vez desarrollada la aplicación PHP puede funcionar sobre cualquiera de estos sistemas operativos sin necesidad de modificar el código. [10]
1.4.3 Navegadores
Un Navegador o "Browser" está compuesto por una serie de estructuras programáticas que permiten desplegar y ejecutar documentos e instrucciones que son cargados en él. Este tipo de instrucciones pueden variar desde documentos estáticos (HTML), contenido dinámico (Java Script), contenido gráfico (Flash), hasta otro ambiente de navegación por separado al "Browser”. [11]
Uno de los navegadores más destacados por sus características es Mozilla Firefox, que es un navegador de código abierto, multiplataforma, con interfaz gráfica de usuario desarrollado por la Mozilla Corporation y voluntarios. Se ha convertido en el pilar fundamental de desarrollo de la Fundación Mozilla junto con el cliente de correo electrónico y lector de noticias.
1.4.3.1 ¿Por qué usar Mozilla y no Internet Explorer (IE)?
El navegador Mozilla Firefox, es un software que ofrece el poder hacer las cosas fácilmente y de una forma más eficaz que con cualquier otro. Este brinda las mejores combinaciones de características posibles hoy día, como pueden ser la navegación con pestañas o el bloqueo de ventanas emergentes, entre otras posibilidades. Firefox, destaca sobre cualquier otro navegador por diferentes razones o características que se exponen a continuación:
Capítulo # 1 Fundamentación Teórica
13
1. Navegar con pestañasEl navegador Mozilla Firefox facilita la navegación sobremanera y con ello consigue que cualquier usuario se encuentre cómodo en su utilización rápidamente. Esta mejora se debe en parte a la navegación con pestañas que se encuentran en su uso.
2. Bloquea las ventanas emergentes
Al usar Mozilla Firefox, se consigue parar los popups que tanto molestan, para llegar a navegar de una manera más amigable.
3. Mayor rapidez para encontrar las cosas
En general, gran parte del tiempo en que son usados los navegadores se emplea en la búsqueda de cosas. Con el Mozilla Firefox se dispone de un acceso directo a los buscadores más habituales. Integra un campo de texto para buscar en la propia barra de navegación.
4. Mayor espacio para las páginas
Mozilla Firefox proporciona mucho valor al espacio disponible para las páginas, por ello tiene más espacio dedicado a las páginas web que otros navegadores. Y se puede obtener más espacio si se reorganiza el contenido de las barras de herramientas. [12]
1.4.4 Servidores WEB
Un servidor Web es un programa que implementa el protocolo HTTP (hypertext transfer protocol), basado en arquitectura cliente/servidor. Este protocolo está diseñado para transferir hipertextos, páginas Web o páginas HTML, textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones o reproductores de sonidos.
Uno de los servidores Web más populares del mercado y el más utilizado actualmente, es Apache, de código abierto y gratuito, disponible para Windows y GNU/Linux, entre otros. Apache presenta entre otras características mensajes de error altamente configurables, bases de datos de autenticación y negociado de contenido. Apache tiene amplia aceptación en la red. En el 2005, se convirtió en el más usado, siendo el servidor HTTP del 70% de los sitios Web en el mundo y creciendo aún su cuota de mercado. [13]
1.4.5 Estilos de arquitecturas y patrones
Los patrones son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces. La dinámica incontenible de la producción de patrones en la práctica de la arquitectura de software, hace que se acepte la existencia de diversas clases de patrones: análisis, arquitectura (divididos en estructurales, sistemas distribuidos,
Capítulo # 1 Fundamentación Teórica
14
sistemas interactivos, sistemas adaptables), diseño (conductuales, creacionales, estructurales), organización o proceso, programación y los llamados idiomas, entre otros.Un patrón de arquitectura de software describe un problema particular y recurrente del diseño, que surge en un contexto específico. Presenta un esquema genérico y probado de su solución. Dentro de las soluciones estudiadas, el patrón más recomendado por especialistas para aplicaciones como la propuesta en el trabajo, es el Modelo Vista Controlador (MVC). [14]
1.4.5.1 Elementos del patrón:
Para el diseño de aplicaciones con sofisticadas interfaces se utiliza el patrón de diseño Modelo-Vista- Controlador. La lógica de una interfaz de usuario cambia con más frecuencia que los almacenes de datos y la lógica de negocio. Si se realiza un diseño ofuscado, que mezcle los componentes de interfaz y de negocio, entonces la consecuencia será que, cuando se necesita cambiar el interfaz, hay que modificar trabajosamente los componentes de negocio. Mayor trabajo y más riesgo de error.
Un diagrama sencillo que muestra la relación entre el modelo, la vista y el controlador. Nota: las líneas sólidas indican una asociación directa, y las punteadas una indirecta.
Modelo: Contendrá una lista de usuarios autorizados junto con sus contraseñas, la base de datos sobre la que se va a efectuar las consultas y los módulos que se encarguen de realizar las operaciones (comprobar la información del usuario, construir, y efectuar la consulta).
Vista: Muestra la información del modelo al usuario y no requiere de código. Puede ser desarrollada por un equipo de diseñadores independiente del de programadores.
Capítulo # 1 Fundamentación Teórica
15
Controlador: Gestiona las entradas del usuario y sirve de "pegamento". Recoge las órdenes y datos que el usuario envía desde la vista, las traduce en operaciones del modelo de negocio y, en base a los resultados, muestra los resultados en uno u otro formulario de la vista. [15]1.4.5.2 ¿Por qué MVC?
Un problema muy común para los programadores es la reutilización del código. Cuando hay que resolver un problema como: mejorar el aspecto de un programa, mejorar su algoritmo, etc. Se facilita, si a la hora de programar, se tiene la precaución de separar el código en varias partes que sean susceptibles de ser reutilizadas sin modificaciones, de manera que al aplicar este patrón se logra separar el modelo de negocios de la presentación usada, así la información podrá ser vista en múltiples formatos. Esta separación permite diversas vistas para una misma lógica de negocios.
1.4.5.3 Modelo Cliente Servidor de tres Capas (Three Tier).
La programación por capas es un estilo de programación en la que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño. Un ejemplo básico es separar la capa de datos de la capa de presentación al usuario.
La ventaja principal de este estilo, es que el desarrollo se puede llevar a cabo en varios niveles. En caso de algún cambio solo se ataca al nivel requerido sin tener que revisar entre código mezclado.
1.- Capa de presentación: es la que ve el usuario (hay quien la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario dando un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). Esta capa se comunica únicamente con la capa de negocio.
Capítulo # 1 Fundamentación Teórica
16
2.- Capa de negocio: es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) pues es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, con la capa de datos, para solicitar al gestor de base de datos para almacenar o recuperar datos de él.3.- Capa de datos: es donde residen los datos y es la encargada de acceder a los datos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos. Reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio. [16]
1.5 Webservices (servicios Web).
1.5.1 ¿Qué son los Servicios Web?
Existen múltiples definiciones sobre lo que son los Servicios Web, lo que muestra su complejidad a la hora de dar una adecuada definición que englobe todo lo que son e implican. Una posible definición sería hablar de ellos como un conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre sí con el objetivo de ofrecer servicios. Los proveedores ofrecen sus servicios como procedimientos remotos y los usuarios lo solicitan llamando a estos procedimientos a través de la Web. [17]
1.5.2 ¿Para qué sirven?
Estos servicios proporcionan mecanismos de comunicación estándares entre diferentes aplicaciones, que interactúan entre sí para presentar información dinámica al usuario. Para proporcionar interoperabilidad y extensibilidad entre estas aplicaciones, y que al mismo tiempo sea posible su combinación para realizar operaciones complejas. Es necesaria una arquitectura de referencia estándar. [18]
1.6 Gestores de base datos
Los gestores de base de datos son sistemas formados por un conjunto de datos y un paquete de software para la gestión del mismo. Se controla el almacenamiento de datos redundantes. Los datos resultan independientes de los programas que los usan, se almacenan las relaciones entre los datos junto con éstos y se puede acceder a los datos de diversas formas.
Capítulo # 1 Fundamentación Teórica
17
Para la construcción de aplicaciones de gestión se destacan por su eficiencia gestores como: Oracle, considerado uno de los más potentes, MySQL, un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones y PostgreSQL, considerado un Sistema de Gestión de Bases de Datos de código abierto (gratuito y con código fuente disponible) siendo uno de los más avanzado del mundo. [19]MySQL: es una base de datos rápida y fiable que se integra a la perfección con PHP y que resulta muy adecuada para aplicaciones dinámicas basadas en Internet.
Ventajas:
Mayor rendimiento.
Mejores utilidades de administración.
Integración perfecta con PHP.
Sin límites en los tamaños de los registros.
Mejor control de acceso de usuarios.
1.7 Metodologías de desarrollo del software
Todo desarrollo de software es riesgoso y difícil de controlar, pero si no se lleva una metodología adecuada, lo que se obtiene son clientes insatisfechos con el resultado y desarrolladores aún más insatisfechos. Dentro de las más utilizadas se destacan: Rational Unified Process (RUP), Extreme Programing (XP) y Microsoft Solution Framework (MSF). Lo más importante antes de elegir la metodología que se usará para la implementación de un software, es determinar el alcance que tendrá y ver cual es la que más se acomoda a la aplicación.
1.7.1 ¿Por qué usar RUP?
El Proceso Unificado de Desarrollo Software (RUP) es un marco de desarrollo software iterativo e incremental. Está compuesto por cuatro fases denominadas Inicio, Elaboración, Construcción y Transición. Estas iteraciones ofrecen como resultado un incremento del producto desarrollado que añade o mejora las funcionalidades del sistema en desarrollo. Es un marco de trabajo extensible que puede ser adaptado a organizaciones o proyectos específicos.
Capítulo # 1 Fundamentación Teórica
18
1.7.2 Características de RUP. Dirigido por los casos de uso: En el Proceso Unificado los casos de uso se utilizan para capturar los requisitos funcionales y para definir los contenidos de las iteraciones. Cada iteración toma un conjunto de casos de uso o escenarios y desarrolla todo el camino a través de las distintas disciplinas: diseño, implementación, prueba, etc.
Centrado en la arquitectura: El Proceso Unificado, asume que no existe un modelo único que cubra todos los aspectos del sistema. Existen múltiples modelos y vistas que definen la arquitectura software de un sistema.
Iterativo e incremental: RUP divide el proceso en cuatro fases, dentro de las cuales se realizan varias iteraciones en número variable según el proyecto y las cuales se definen según el nivel de madurez que alcanzan los productos que se van obteniendo con cada actividad ejecutada. La terminación de cada fase ocurre en el hito correspondiente a cada una, donde se evalúa que se hayan cumplido los objetivos de la fase en cuestión. [20]
1.7.3 Herramientas CASE
Las herramientas CASE son un conjunto de métodos, utilidades y técnicas que dan asistencia a los analistas, ingenieros de software y desarrolladores, durante todos los pasos del ciclo de vida de desarrollo de un software y facilitan el mejoramiento del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases. CASE es una sigla, que corresponde a las iniciales de: Computer Aided Software Engineering; y en su traducción al Español significa Ingeniería de Software Asistida por Computación.
1.7.4 UML
El éxito de los proyectos de desarrollo de aplicaciones o sistemas se debe a que sirven como enlace entre quien tiene la idea y el desarrollador. El UML (Lenguaje Unificado de Modelado) es una herramienta que cumple con esta función, ya que le ayuda a capturar la idea de un sistema para comunicarla posteriormente a quien esté involucrado en su proceso de desarrollo. Se lleva a cabo mediante un conjunto de símbolos y diagramas. Este lenguaje se ha convertido en el estándar para definir, organizar y visualizar los elementos que configuran la arquitectura de una aplicación. De forma general las principales características son:
Capítulo # 1 Fundamentación Teórica
19
Lenguaje unificado para la modelación de sistemas.
Corrección de errores viables en todas las etapas.
Aplicable para tratar asuntos de escala inherentes a sistemas complejos de misión crítica, tiempo real y cliente/servidor.
Los modelos permiten la comunicación con el cliente en todas las etapas.
Es importante resaltar que UML es para especificar y no para describir métodos o procesos. Es modelado orientado a objetos estándar. Se utiliza para definir un sistema de software, detallar los artefactos en el sistema, documentar y construir. En él está descrito el modelo. Se aplica en una gran variedad de formas para dar soporte a una metodología de desarrollo de software, tal como el Proceso Unificado Racional. (RUP) [21]
1.8 Herramientas utilizadas en el desarrollo
Las herramientas de desarrollo de software ayudan al equipo de desarrollo a diseñar y construir la aplicación. Estas son de vital importancia para el buen desempeño de la aplicación. La selección está determinada por las tecnologías en que se desarrolla la aplicación, en este caso las herramientas usadas fueron:
1.8.1 Dreamweaver 8
Dreamweaver 8 es la herramienta de desarrollo Web líder del mercado. Permite diseñar, desarrollar y mantener de forma eficaz sitios y aplicaciones Web basados en normas. Abarca desde la creación y mantenimiento de sitios Web básicos hasta aplicaciones avanzadas, compatibles con las mejores prácticas y las tecnologías más recientes.
1.8.2 ZendStudio 5.2.0
Se trata de un programa de la casa Zend, impulsores de la tecnología de servidor PHP, orientada a desarrollar aplicaciones web en lenguaje PHP. El programa, además de servir de editor de texto para páginas PHP, proporciona una serie de ayudas que pasan desde la creación y gestión de proyectos hasta la depuración de código.
Capítulo # 1 Fundamentación Teórica
20
En este capítulo se realizó un estudio relacionado con las diferentes metodologías y tecnologías existentes y de todos los avances que se han obtenido a la hora de desarrollar este tipo de aplicaciones.La decisión tomada estuvo basada en la política de uso de herramientas con soporte multiplataforma y licencias de utilización libre, teniendo en cuenta las restricciones existentes en el país, para el desarrollo de software debido al bloqueo y las exigencias de los clientes.
Además en el capítulo, se determinaron las herramientas y tecnologías para el desarrollo: como gestor de base datos: MySQL, navegador: Mozilla Firefox. Como lenguajes de programación, del lado del servidor: PHP, y del lado del cliente: HTML y Java Script. Para el desarrollo de la documentación: la metodología RUP con notación UML, la herramienta CASE con modelado UML y para apoyar el proceso de implementación del software se utilizaron herramientas de desarrollo como Dreamweaver, ZendStudio y de diseño Adobe PhotoShop y Fireworks.
Capítulo # 2 Características de Sistema
21
CAPÍTULO 2: CARACTERÍSTICAS DEL SISTEMAEste capítulo aborda lo referente a las características del sistema. Contiene todo lo relacionado con el objeto de estudio y los procesos principales teniendo en cuenta las necesidades del cliente además de las actividades que serán objeto de automatización. Se realizó un estudio mostrado a través del modelo de negocio. Se definen los requisitos funcionales y no funcionales que debe cumplir y se realiza una descripción del sistema propuesto.
2.1 Objeto de estudio 2.1.1 Situación Problémica
Actualmente en los hospitales y policlínicos del país en el área de odontología se le realiza al paciente diagnóstico, tratamiento y prevención de las enfermedades del aparato estomatognático. Todo este trabajo se realiza de forma manual, lo que resulta un tanto difícil y engorroso transportar información de un lugar para el otro, así como el registro y control de los datos de cada uno de los pacientes que son atendidos en la especialidad de estomatología, donde se les crea una historia clínica en la que se recogen los datos personales así como las enfermedades que padecen. Se realiza un examen bucal donde se señalan las afectaciones que el mismo puede tener y finalmente un diagnóstico a partir del cual se le pone al paciente el plan de tratamiento.
Ocurre de igual forma en la clínica estomatológica de la Universidad de las Ciencias Informáticas. Para ser atendido en esta área se necesita un turno, el cual sólo puede ser proporcionado por la secretaria o la doctora que se encuentre en ese momento, lo que trae como consecuencia la demora en el cumplimiento de su trabajo en el tiempo establecido. En muchas ocasiones, suele suceder que la espera del paciente por la llegada del turno es muy larga para que al final no cumpla con su objetivo de ser atendido en el tiempo deseado.
2.2 Objeto de Automatización
En la Universidad de las Ciencias Informáticas, el policlínico que se encuentra situado dentro de esta institución, no cuenta con una aplicación que permita controlar y gestionar de manera dinámica los datos de los pacientes, ya sean estudiantes o trabajadores que son atendidos en la clínica estomatológica, así como el proceso de reservación de los turnos para ser atendidos teniendo en cuenta que todas las acciones a realizar estén creadas de una manera uniforme acorde con las necesidades requeridas.
Capítulo # 2 Características de Sistema
22
2.3 Información que se ManejaLa herramienta gestiona, maneja, y controla la información relacionada con los pacientes que son atendidos. Esta información se recoge en la historia clínica a la cual podrán tener acceso cada uno de los usuarios según el privilegio que tengan dentro de la aplicación, además de los reportes diarios que brinda cada médico en una jornada laboral.
2.4 Propuesta del Sistema
El sistema que se propone elaborar, consta de una aplicación web que brindará servicios bajo el dominio UCI a través de la cual todos los usuarios ya sean trabajadores o estudiantes, secretarias y médicos estomatólogos podrán tener acceso a la aplicación en dependencia del rol que desempeñen en el momento de loguearse. El sistema cuenta con tres páginas conectadas a una página controladora que se encargará de enviar las solicitudes de cada una de estas interfaces. A continuación se muestra un esquema sobre como funcionará la aplicación:
Capítulo # 2 Características de Sistema
23
2.5 Modelo del NegocioA través del modelo de negocio, se pretende comprender la estructura y dinámica del flujo de procesos, que tiene lugar en el desarrollo del software. Obtener una visión de la organización que permita definir los procesos, roles y responsabilidades en modelos de casos de usos del negocio y modelos de objetos que se encuentran desarrollados en el Anexo 1.
2.6 Especificación de los Requisitos del Software 2.6.1 Requisitos Funcionales
Los requerimientos funcionales son capacidades o condiciones que el sistema debe cumplir.
R1. Autenticar usuario al sistema.
R2. Reservar turno médico.
2.1. Mostrar los médicos disponibles.
2.2. Mostrar los turnos disponibles de estos médicos.
2.3. Insertar los datos del turno médico.
2.4. Cancelar turno médico.
R3. Actualizar datos de la Historia Clínica de un paciente.
3.1. Mostrar Historia Clínica del paciente.
3.2. Insertar nuevos datos a la Historia Clínica.
3.3. Buscar Historia Clínica de un paciente.
R4. Gestionar usuarios del sistema.
4.1. Registrar un nuevo usuario.
4.2. Asignar rol y nivel de acceso al nuevo usuario a registrar.
4.3. Eliminar un usuario existente.
R5. Generar reportes.
5.1. Crear reporte diario.
5.2. Buscar reporte.
5.3. Imprimir Reporte PDF.
Capítulo # 2 Características de Sistema
24
2.6.2 Requisitos No Funcionales.Los requisitos no funcionales son propiedades o cualidades que el producto debe tener. Para el desarrollo de este sistema se definen los siguientes requisitos no funcionales:
Usabilidad.
El sistema podrá ser utilizado por cualquier persona con diferentes formaciones y aptitudes. Contará con una ayuda para documentar al usuario en su utilización. También cubre la facilidad de instalación, de operación y de supervisión.
Eficiencia.
El sistema permitirá dar una respuesta rápida y eficiente a las consultas que se realizan a la base de datos. Debe exigir la menor cantidad posible de recursos hardware, tales como tiempo de procesador y espacio ocupado en memoria interna y externa o ancho de banda utilizado en los dispositivos de comunicación.
Rendimiento.
El sistema deberá ser rápido ante las solicitudes de los usuarios y en el procesamiento de la información. La eficiencia de la aplicación estará determinada en gran medida por el aprovechamiento de los recursos que se disponen en el modelo Cliente/Servidor y la velocidad de las consultas a la base de datos. Se realizará la validación de los datos en el cliente y en el servidor aquellas que por cuestiones de seguridad, o de acceso a los datos lo requieran. Lográndose así un tiempo de respuesta más rápido, una mayor velocidad de procesamiento y un mayor aprovechamiento de los recursos.
Requerimiento de ayuda y documentación
Se documentará la aplicación con una ayuda dirigida a los diferentes tipos de usuarios para garantizar el soporte del sistema. Se realizará mantenimiento al sistema a fin de aumentar las funcionalidades del mismo a través de versiones posteriores.
Requerimientos de Software.
MySQL versión 5.0 o cualquier otra que soporte trabajo con procedimientos almacenados y vistas.
PHP versión 5.0 o superior que soporte el trabajo orientado a objetos.
Capítulo # 2 Características de Sistema
25
Apariencia o Interfaz externaEl sistema debe tener una interfaz agradable, sencilla y de fácil uso. El contenido será fácil de leer, mostrado de manera comprensible para los usuarios.
Soporte.
Se requiere un servidor de bases de datos que soporte grandes volúmenes de datos y velocidad de procesamiento, con un tiempo de respuesta rápido. Por parte del cliente se requiere un navegador capaz de interpretar código Java Script.
Seguridad.
La información estará protegida contra accesos no autorizados utilizando mecanismos de autenticación y autorización, que puedan garantizar su cumplimiento: usuario, contraseña y nivel de acceso dado por la asignación de roles, de manera que cada uno tenga datos de acceso propios. Se crearán usuarios con diferentes niveles de acceso al sistema.
Se usarán mecanismos de encriptación de los datos que por cuestiones de seguridad no deben viajar al servidor en texto claro, como es el caso de las contraseñas. Se guardará encriptada esta información en la base de datos.
Se harán validaciones de la información tanto en el cliente como en el servidor. No obstante, los usuarios accederán de manera rápida y operativa al sistema sin que los requerimientos de seguridad se conviertan en un retardo para ellos.
2.7 Definición de los casos de usos del sistema
Un diagrama de casos de usos del sistema representa gráficamente las funcionalidades y su interacción con los actores. La descripción del modelado del sistema del problema en cuestión se encuentra descrita y representada en diagramas de casos de usos del sistema en el Anexo 2.
En este capítulo, después del análisis del negocio modelado en términos de casos de usos según las responsabilidades determinadas y teniendo en cuenta las características del sistema, quedaron identificados los actores y trabajadores. Se realizó la captura de requisitos a partir del estudio del negocio y de las entrevistas con los clientes. Se definieron los actores y requerimientos de la aplicación. Se integraron los procesos para dar solución al problema tratado.
Capítulo # 3 Análisis, Diseño e Implementación
26
CAPÍTULO 3: ANÁLISIS, DISEÑO E IMPLEMENTACIÓN DEL SISTEMAEl presente capítulo está dedicado al Análisis, Diseño e Implementación a partir de la descripción y definición de las funcionalidades que se trataron en el capítulo anterior. Se analiza la fase de implementación a partir de los resultados del análisis y diseño, describiendo el estado actual del sistema en términos de componentes.
RUP define el análisis y el diseño, como un único flujo de trabajo en el que hay actividades que se realizan desde la fase de Inicio. Es importante destacar que aunque están incluidas en un único flujo, por estar muy relacionadas, son actividades con artefactos y objetivos diferentes.
En esta etapa se definen diagramas de clases del análisis de la aplicación, especificando qué clases toman parte del caso de uso y las relaciones entre ellas, clasificándolas en clases interfaz, entidad y controladoras. En la etapa de diseño a través de los diagramas de interacción se muestra una descripción gráfica de la interacción entre los actores y el sistema. También se describen las clases que se representan en el diseño, se obtiene el Diagrama Entidad-Relación de la base de datos y la descripción de sus tablas. Posteriormente en la etapa de implementación se muestra la estructura del sistema en términos de componentes a través de los diagramas de componentes.
3.1 Análisis
3.1.1 Definición del modelo de análisis. Modelo de clases del análisis.
El Modelo de Análisis puede considerarse como una primera aproximación al Modelo de Diseño.
Utilizado fundamentalmente por los desarrolladores para comprender cómo debería darse forma al sistema. Los principales propósitos son:
• Conseguir una comprensión más precisa de los requisitos, refinarlos y estructurarlos.
• Utilizar el lenguaje de los desarrolladores para analizar con profundidad los requisitos funcionales.
• Proporcionar una visión general del sistema.
Capítulo # 3 Análisis, Diseño e Implementación
27
3.1.2 Diagrama de clases del análisisFigura 3.1. Diagrama de clases del análisis CU Autenticar Usuario.
Figura 3.2. Diagrama de clases del análisis CU Gestionar Usuario.
Capítulo # 3 Análisis, Diseño e Implementación
28
Figura 3.3. Diagrama de clases del análisis CU Asignar Turno Médico.Figura 3.4. Diagrama de clases del análisis CU Gestionar Consulta.
Capítulo # 3 Análisis, Diseño e Implementación
29
Figura 3.5. Diagrama de clases del análisis CU Gestionar Historia Clínica.Capítulo # 3 Análisis, Diseño e Implementación
30
Figura 3.6. Diagrama de clases del análisis CU Gestionar Turnos.Figura 3.7.Diagrama de clases del análisis CU Crear Reporte.
Capítulo # 3 Análisis, Diseño e Implementación
31
Figura 3.8 .Diagrama de clases del análisis CU Buscar Reporte.Figura 3.9 .Diagrama de clases del análisis CU Realizar Consulta Urgencia.
Capítulo # 3 Análisis, Diseño e Implementación
32
Figura 3.10 .Diagrama de clases del análisis CU Realizar Consulta TPR.3.2 Diseño
En la etapa de diseño se modela el sistema en construcción, de forma que soporte todos los requisitos, incluyendo los no funcionales y las restricciones que se le suponen. Se define una estructura del sistema que se debe conservar lo más fielmente posible durante el ciclo de vida completo del software.
3.2.1 Diagramas de interacción. Diagrama de secuencia.
En los diagramas de interacción (secuencia) se representan las interacciones entre las diferentes clases, que interactúan en la realización de un caso de uso. En los diagramas presentados a continuación se muestran las principales relaciones dentro de cada caso de uso, asociadas con el flujo principal de eventos.
Capítulo # 3 Análisis, Diseño e Implementación
33
Figura1. Diagrama de colaboración CU Crear Reporte.Capítulo # 3 Análisis, Diseño e Implementación
34
Figura 2. Diagrama de colaboración CU Gestionar Usuario.Capítulo # 3 Análisis, Diseño e Implementación
35
Figura 3. Diagrama de colaboración CU Gestionar Turnos.Capítulo # 3 Análisis, Diseño e Implementación
36
Figura 4. Diagrama de colaboración CU Gestionar Historia Clínica.Capítulo # 3 Análisis, Diseño e Implementación
37
Figura 5. Diagrama de colaboración CU Buscar Reporte.Capítulo # 3 Análisis, Diseño e Implementación
38
Figura 6. Diagrama de colaboración CU Asignar Turno Médico.Capítulo # 3 Análisis, Diseño e Implementación
39
Figura 7. Diagrama de colaboración CU Autenticar Usuario.Capítulo # 3 Análisis, Diseño e Implementación
40
Figura 8. Diagrama de colaboración CU Gestionar Consulta (Urgencia).Capítulo # 3 Análisis, Diseño e Implementación
41
Figura 9. Diagrama de colaboración CU Gestionar Consulta.Capítulo # 3 Análisis, Diseño e Implementación
42
3.2.2 Diagrama de clases del diseño3.2.3 Descripción de las clases Nombre: CE_Consulta
Tipo de clase: Entidad
Atributo Tipo
idC Varchar
ID_Consulta Varchar
ID_Paciente Varchar
Diagnóstico Varchar
Examen_Físico Text
Examen_Bucal Text
Fecha Date
Id_trabajador Varchar
Num_HC Varchar
planTratamiento text
Para cada responsabilidad:
Nombre:
Descripción:
Nombre: CE_Historia_Clínica Tipo de clase: Entidad
Atributo Tipo
Num_HC Varchar
Sexo Char
idEscolaridad int
Historia_enfermedad Varchar
Antedecentes_patológicos Varchar
Edad Int
Fecha Date
Unidad Char
Num_Consultorio Integer
Dirección Varchar
Capítulo # 3 Análisis, Diseño e Implementación
43
Para cada responsabilidad:Nombre:
Descripción:
Nombre: CE_Paciente Tipo de clase: Entidad
Atributo Tipo
ID_Paciente Varchar
Num_HC Varchar
user Varchar
Nombre Varchar
Para cada responsabilidad:
Nombre:
Descripción:
Nombre: CE_TurnoMédico Tipo de clase: Entidad
Atributo Tipo
Id_turno Integer
Id_Paciente Varchar
Id_trabajador Varchar
Num_de_Turno Integer
Causa_del_turno Varchar
Fecha_turno date
sección Varchar
Para cada responsabilidad:
Nombre:
Descripción:
Nombre: CE_Trabajador Tipo de clase: Entidad
Atributo Tipo