Departamento de Sistemas y Computación
Ingeniería en Informática
Reporte Final de Residencia Profesional
“Sistema para la elaboración y control de expedientes
médicos en el CERESO de Colima”
Residente:
Juan Pablo González Ramírez 10460714
Jaime Brizuela Amezcua 11460675
Asesor interno:
M.C. Ana Claudia Ruiz Tadeo
Página 4
AGRADECIMIENTOS
A Dios:
Por permitirme por estar siempre conmigo caminando juntos y superando cada obstáculo, sobre todo por permitir llegar a esta etapa tan importante en mi vida.
A mis Padres
Primeramente por la vida y su amor incondicional, también el apoyo y la confianza absoluta, gracias a ustedes por ser el soporte que necesite durante mi carrera y que hoy en día culmino.
A mis Profesores
A cada uno de mis maestros le agradezco por que fueron parte de mi formación, a base de sus enseñanzas y exigencias fueron participe de mis conocimientos y desarrollo académico.
A M.C Ana Claudia Ruiz Tadeo
Primeramente gracias por aceptarnos como alumnos residentes, y muchas gracias por darme la confianza y apoyo para el desarrollo de este proyecto.
A mis Amigos y Compañeros
Agradezco a mis compañeros y amigos que caminamos junto estas carreras y que me brindaron su apoyo durante todo el curso, pero sobre todo su amistad y confianza, que me dieron la oportunidad de vivir momentos inolvidables.
Página 5
Datos Fiscales
Centro Estatal de Readaptación Social RFC: IIC070302Q77
Dirección: Prolongación Av. Gonzalo de Sandoval No. 2000 Colima, Colima.
Teléfono: 01 (312) 312 55 15
Correo electrónico: [email protected]
Datos del Asesor Externo Nombre: Dr. Martin Medina Ramos
Dirección: Prolongación Av. Gonzalo de Sandoval No. 2000 Colima, Colima.
Teléfono: 01 (312) 312 55 15 Ext. 121 Móvil: 044 3121077501
Correo electrónico: [email protected]
Datos de los Residentes No. Control: 10460714
Nombre: Juan Pablo González Ramírez Carrera: Ingeniería en Informática
Dirección: Ávila Camacho #4, Colonia Lázaro Cárdenas, Comala, Colima Móvil: 3121173067
Correo electrónico: [email protected]
No. Control: 11460675
Nombre: Jaime Brizuela Amezcua Carrera: Ingeniería en Informática
Dirección: Agustín Santa Cruz #575, Colonia Jardines Vista Hermosa, Colima Col. Móvil: 312 154 15 67
Página 6 Firmas
_________________________________________________ Juan Pablo González Ramírez
Residente
_________________________________________________ Jaime Brizuela Amezcua
Residente
_________________________________________________ Dr. Martin Medina Ramos
Asesor externo
_________________________________________________ M.C. Ana Claudia Ruiz Tadeo
Asesor interno
________________________________________________ M. C. Pedro Rocha Medrano
Primer revisor
__________________________________________________ Segundo revisor
Página 7
Contenido
CAPTULO 1: CONTEXTO DEL PROYECTO ... 11
1.1 Introducción ... 12 1.2 Justificación ... 13 1.3 Hipótesis... 14 1.4 Objetivos ... 14 1.4.1 Objetivo General ... 14 1.4.2 Objetivos Específicos ... 14
1.5 Caracterización en el área que se participo ... 15
1.6 Problemas a resolver ... 16 1.7 Alcances y Limites ... 16 1.8 Estudio de factibilidad ... 17 1.8.1 Factibilidad económica ... 17 1.8.2 Factibilidad técnica ... 17 1.8.3 Factibilidad operativa ... 17 1.8.4 Factibilidad legal... 17
1.9 Análisis Costos – Beneficios ... 18
1.10 Ventajas competitivas ... 19
CAPTULO 2: FUNDAMENTO TEORICO... 20
2.1 Ciclo de vida del desarrollo de sistemas ... 21
2.2 Lenguaje de programación ... 24
2.3 Lenguaje de programación web ... 25
2.4 MySql ... 25
2.5 PHP ... 26
2.6 HTML ... 27
2.7 CSS ... 27
2.8 JavaScript ... 28
CAPTULO 3: PROCEDIMIENTO Y DESCRIPCIÓN DE LAS ACTIVIDADES ... 29
3.1 Metodología ... 30
3.2. Requerimientos de usuarios ... 30
3.3 Análisis del sistema ... 31
Página 8
3.3.2 Diagrama de estados ... 36
3.3.3 Diagramas Entidad – Relación ... 39
3.3.4 Diccionario de datos... 40
3.4 Diseño de interfaces ... 44
3.5 Desarrollo ... 52
3.6 Pruebas ... 56
CAPITULO 4: CONCLUSIONES ... 58
4.1 Cumplimientos de los objetivos ... 59
4.2 Trabajos a futuros ... 60
4.3 Conclusión... 60
Bibliografia ... 61
Anexos ... 63
Creación de Base de Datos ... 64
Código Registro de Interno ... 66
Código de Registro de Medico ... 67
Código creación de Consulta ... 68
Página 9
Contenido de Tablas
Tabla 1: Costos del Proyecto ... 18
Tabla 2: Lenguajes de Programación ... 24
Tabla 3 Diccionario de tablas de interno ... 41
Tabla 4 Diccionario de consulta... 41
Tabla 5 Diccionario de expediente clínico ... 42
Tabla 6 Diccionario de tabla consulta ... 42
Tabla 7 Diccionario de medico ... 43
Tabla 8 Diccionario de diagnostico ... 43
Página 10
Contenido de Figuras
Figura 1: Ubicación del Ce.Re.So ... 12
Figura 2: Organigrama del Centro de Inserción Social ... 15
Figura 3: Fases del ciclo de vida del desarrollo de sistemas ... 21
Figura 4: Arquitectura de los lenguajes de programación web... 25
Figura 5: Diferencia entre la Programación del lado del servidor y del cliente ... 26
Figura 6: Contenido HTML detrás de una página web ... 27
Figura 7 Fases de la Cascada ... 30
Figura 8: Creación del historial medico ... 32
Figura 9: Autentificación de usuario ... 33
Figura 10: Diagrama Caso de uso "Consulta rápida". ... 34
Figura 11: Agregar usuario ... 35
Figura 12: Diagrama de estados "Autentificación de usuario" ... 36
Figura 13: Registro de un usuario ... 37
Figura 14: Nota de valoración medica ... 38
Figura 15: Diagrama de Entidad - Relación ... 39
Figura 16: Iniciar Sesión... 44
Figura 17: Bienvenida al sistema ... 45
Figura 18: Creación de nuevo interno ... 46
Figura 19: Búsqueda de internos ... 47
Figura 20: Ejemplo de registro de medico ... 48
Figura 21: Buscar médicos ... 49
Figura 22: Pantalla de consulta ... 50
Página 11
CAPTULO 1: CONTEXTO DEL
Página 12
1.1 Introducción
Las instituciones son mecanismos de orden social y cooperación que procuran normalizar el comportamiento de un grupo de individuos. Las instituciones en dicho sentido trascienden las voluntades individuales al identificarse con la imposición de un propósito en teoría considerado como un bien social, es decir: normal para ése grupo. Su mecanismo de funcionamiento varía ampliamente en cada caso, aunque se destaca la elaboración de numerosas reglas o normas que suelen ser poco flexibles y moldeables. La Dirección General de Prevención y Reinserción Social, es la dependencia encargada de organizar y supervisar el sistema penitenciario del Estado, ejecutar las sentencias dictadas por las autoridades judiciales penales en la entidad, así como de administrar los centros de readaptación social de Colima, Manzanillo y Reclusorio de Tecomán. En el Centro Estatal de Readaptación Social Colima nos dedicamos a la readaptación social de los sentenciados, procurando la no desadaptación de los procesados; comprometidos con la satisfacción del usuario y la mejora continua a través de la profesionalización de nuestro personal y la actualización de nuestros procesos, con base en la normatividad aplicable y la norma ISO 9001:2008.
Página 13 Esta institución se encuentra ubicada en Av. Prolongación Gonzalo de Sandoval No. 2000, colonia la estancia, colima, colima. Como se muestra en la figura 1; Dentro de esta institución se encuentra la clínica del centro, la cual está conformada por varios departamentos, entre ellos se encuentra el departamento Médico.
El Departamento Médico del Ce.Re.So tiene un sistema manual de generar expediente médicos, y notas de seguimientos médicos del interno. Por lo que este proyecto propone un sistema de control de expedientes clínico electrónico.
Con este proyecto se realizara un sistema que controla y maneja el expediente clínico único de los internos del Centro de Reinserción Social Colima (CeReSo).
1.2 Justificación
Con el desarrollo de este sistema para el Departamento Medico del Centro de Reinserción del Estado de colima, se pretende que tenga una mejor accesibilidad en los expedientes médicos de los pacientes, para diversos objetivos, como llevar un registro fiel de la atención medica que se proporciona a cada interno, facilitando el seguimiento de los padecimientos que se vayan presentando, además generar los diferentes reportes tales como las de internos, nota médicas, médicos y medicamentos, para el fin de una buena y mejor toma de decisión.
Asimismo se podrá agilizar y mejorar la forma actual de cómo se lleva a cabo el control del expediente clínico del interno, teniendo la disponibilidad de la información de dicho expediente. Permitiendo organizar el historial clínico de cada paciente, y a la vez llevar un control de medicamentos, del mismo modo controlar las agendas de los médicos asignados.
Página 14
1.3 Hipótesis
El uso de un sistema de administración digital para el área médica, permitirá disminuir los tiempos de consultas médicas a los pacientes así como aumentar la eficacia para controlar los expedientes médicos del CERESO.
1.4 Objetivos
1.4.1 Objetivo General
Desarrollar e implementar un sistema para automatizar y controlar los procesos del Departamento Médico del CERESO Colima.
1.4.2 Objetivos Específicos
Realizar un análisis de la manera en la que se integra y genera actualmente la información
Diseñar el modelo conceptual del sistema a desarrollar.
Diseñar la base de datos en donde se va almacenar el expediente del paciente, los datos de los medicamentos y de los doctores.
Determinar los reportes y formatos de la información del usuario final.
Implementar las medidas de seguridad requeridas para el equipo en el que se almacenará la información.
Página 15
1.5 Caracterización en el área que se participo
En la figura 1 se muestra el organigrama que representa las jerarquías de diferentes departamentos del Centro de Inserción Social Colima, en la cual se resalta El departamento médico, que actualmente es responsable el Dr. Martin Medina y con el que estoy trabajando de manera indirecta.
Página 16
1.6 Problemas a resolver
El problema principal es la falta de automatización en los diferentes procesos que se realizan en el Departamento Medico del Centro de Reinserción Social Colima. En esta área se contralan los expedientes de los internos en papel y los reportes en hojas de cálculo y procesador de textos, por lo cual se complica controlar, consultar y administrar medicamentos, así como la falta de estadísticas y reportes por diferentes conceptos.
1.7 Alcances y Limites
Se pretende que con el desarrollo del sistema en el Departamento Medico del Centro de Reinserción del Estado de colima, tenga una mejor accesibilidad en los expedientes médicos de los pacientes, para diversos objetivos, todo esto con el fin de tener un control más exacto en cuanto a que internos se les atiende porque doctor, así como para saber que tratamiento se les dio.
Este sistema cubre las necesidades del Departamento Medico, y esta será operado por los usuarios que estén registrados en el sistema por el coordinador, estos podrán acceder al sistema por medio de la red del Gobierno del Estado.
El proyecto solo abarca un departamento dentro del Centro de Reinserción Social Colima, que es el Departamento Medico y no tiene accesibilidad a la base de datos de todo el centro. Cada uno de ellos le puede dar un enfoque diferente según sea el requerido o sus necesidades.
Página 17
1.8 Estudio de factibilidad
1.8.1 Factibilidad económica
El proyecto es económicamente viable por los requerimientos para su desarrollo que se mostró anteriormente. Además se cuenta con el equipo y eso no generara ningún gasto externo. Asimismo debido a que el proyecto se desarrollará como residencia el costo que genere de programación será nulo.
1.8.2 Factibilidad técnica
El proyecto es técnicamente factible debido a que se cuenta con el equipo necesario para su desarrollo e implementación, ya que es accesible, así también se cuenta con la experiencia en el manejo de programas de software que se utilizara para la realización de los diversos módulos que se requiere para el proyecto.
1.8.3 Factibilidad operativa
El proyecto es posible operativamente ya que se cuenta con la asesoría de maestros especializados en la materia, con la disponibilidad para brindar apoyo y aclarar cualquier tipo de duda para el proyecto, además se cuenta con la disponibilidad del usuario para poder operar el sistema.
1.8.4 Factibilidad legal
En el desarrollo de este proyecto se cuentan con licencias originales. En conclusión se puede afirmar que este proyecto es legamente factible para su desarrollo.
Página 18
1.9 Análisis Costos – Beneficios
Todo el equipo necesario para la realización y puesta en operación del proyecto es otorgado por el residente y los asesores, el cual facilitara su desarrollo. Algunos de los costos necesarios para la creación e implantación son los siguientes:
Materiales: Los gastos se reducen en caso de ser necesaria alguna licencia.
Gastos de Programación: Es el costo promedio de los programadores al realizar el sistema. Los gastos de la etapa programación están basados en un salario de $50.00 pesos/hra. Tomando en cuenta que se trabajan 8 hrs. al día. Mientras que las etapas de Análisis y diseño son consideradas a un costo de $55.00 pesos/hra, la implementación en $30 pesos/hra. y finalmente, la documentación se definió a un costo de $25 pesos/hra.
Internet: Conexión a Internet necesaria para la investigación en línea y la implementación del sistema.
En la siguiente tabla 1, se muestra los costos aproximados que se genera con este proyecto. En la cual se pueden apreciar los gastos de materiales y gastos de programación.
Tabla 1: Costos del Proyecto MATERIALES
Descripción Cantidad Precio Unitario SubTotal Total
Hojas Blancas 500 $0.08 $40.00 CD 3 $3.83 $11.49 Copias 100 $0.25 $25.00 Engargolados 3 $14 $42.00 Total Materiales $118.49 GASTOS PROGRAMACION
Cantidad Horas Precio Horas Subtotal Total
Análisis (1 personas) 160 55 $8,800.00
Diseño (1personas) 120 55 6,600.00
Programación (1 personas) 480 50 24,000.00
Implementación (1 personas) 120 30 3,600.00
Documentación (1 personas) 80 25 2,000.00
Total Gastos de Programación $45,000.00
Página 19
1.10 Ventajas competitivas
Es una ventaja debido a que es una aplicación exclusivamente para las diversas funcionalidades del Departamento Medico del Centro de Readaptación del Estado. Esto le dará mayor fortalecimiento y la competitividad necesaria para desarrollar cualquier tipo de proyecto dentro del área.
Página 20
CAPTULO 2:
Página 21
2.1 Ciclo de vida del desarrollo de sistemas
Es importante destacar el ciclo de vida del desarrollo de sistemas puesto que es la guía que nos servirá para concluir de manera organizada un proyecto, para esto se describen a continuación las siguientes 7 fases que lo conforman.
En la figura 3 se muestra cómo se lleva a cabo las fases del ciclo de vida del desarrollo de sistemas.
Figura 3: Fases del ciclo de vida del desarrollo de sistemas
2.1.1.- identificación de problemas, oportunidades y objetivos:
La primera fase requiere que el analista observe honestamente lo que está sucediendo en un negocio. Luego, junto con los demás miembros de la organización, el analista hace resaltar los problemas. Frecuentemente estos ya han sido vistos por los demás, y son la razón por la cual el analista fue llamado inicialmente. Las personas involucradas en la primera fase son los usuarios, analistas y administradores de sistemas que coordinan el proyecto. Las actividades de esta fase consisten en entrevistas a los administradores de los usuarios, sumarización del conocimiento obtenido, estimación del alcance del proyecto y documentación de los resultados. La salida de esta fase es un
Página 22 estudio de factibilidad que contiene una definición del problema y la sumarización de los objetivos. (Hernández, 1998)
2.1.2.- Determinación de los requerimientos de información:
El aspecto del análisis es comprender todas las facetas de la empresa que están bajo estudio y estas tienen como prioridad responder a las siguientes preguntas, ¿Qué es lo que hace?, ¿Cómo se hace?, ¿Con qué frecuencia se presenta?, ¿Qué tan grande es l volumen de transacciones o decisiones?, ¿Cuál es el grado de eficiencia con el que se efectúan las tareas?, ¿Existe algún problema?, ¿Qué tan serio es? Y ¿cuál es la causa que lo origina? (Senn, 1992)
Esta etapa está enfocada a que el analista comprenda la información y para ello participan los usuarios, los administradores de las operaciones y los trabajadores de la operación.
2.1.3.-Análisis de las necesidades del sistema:
En esta etapa el analista de sistemas se auxilia de herramientas ya creadas para determinar los requerimientos, por ejemplo diagramar la entrada, proceso y salida de las funciones del negocio en forma gráfica y estructurada, desarrollar diccionarios de datos, y dar una estructura a las bases de datos como el diagrama entidad relación, ya que este nos ayudará a trabajar con objetos de manera independiente.
2.1.4.- Diseño del sistema recomendado:
El diseño de un sistema de información produce los detalles que establecen la forma en la que el sistema cumplirá con los requerimientos identificados durante la fase de análisis. Los especialistas en sistemas se refieren, con frecuencia, a esta etapa como diseño lógico en contraste con la del desarrollo del software, a la que denominan diseño físico. (Senn, 1992)
2.1.5.-Desarrollo y documentación del software:
En la quinta fase del ciclo de vida del desarrollo de sistemas el analista trabaja con los programadores para desarrollar cualquier software original que se necesite. Durante esta
Página 23 fase, el analista también trabaja con los usuarios para desarrollar documentación efectiva para el software, incluyendo manuales de procedimientos. La documentación le dice al usuario la manera de usar el software y también qué hacer si se suceden problemas con el software. (Hernández, 1998)
2.1.6.- Pruebas y mantenimiento del sistema:
Durante la prueba de sistemas, el sistema se emplea de manera experimental para asegurarse de que el software no tenga fallas, es decir, que funciona de acuerdo con las especificaciones y en la forma en que los usuarios esperan que lo haga.
2.1.7.- Implementación y evaluación del sistema:
En esta fase del desarrollo del sistema el analista ayuda a implementar el sistema de información. Esto incluye el entrenamiento de los usuarios para que manejen el sistema. Algún entrenamiento es hecho por los proveedores, pero la supervisión del entrenamiento es responsabilidad del analista de sistemas. Adicionalmente, el analista necesita un plan para una conversión suave del sistema antiguo al nuevo. (Hernández, 1998)
Una vez concluidos los 7 pasos del desarrollo de sistemas, se procede al continuo mejoramiento ya que conforme avanza el tiempo pueden requerirse nuevos componentes al sistema y esto lo hace cada vez más completo.
Página 24
2.2 Lenguaje de programación
Según Wilson la definición de lenguaje de programación se la siguiente:
“Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana”.
En la actualidad existe una diversidad de lenguajes de programación, el cual, cada uno de ellos tienen características, aplicación y propósito distinto. En la tabla 2 se muestran los principales lenguajes de programación.
Tabla 2: Lenguajes de Programación
Lenguaje Área de aplicación
ADA Tiempo real
BASIC Programación para fines
educativos
C++ Programación orientada
a objetos
COBOL Administración
Java Programación orientada
a internet
Pascal Educación
PHP Desarrollo de sitios web
dinámicos
Perl Procesamiento de
Página 25
2.3 Lenguaje de programación web
Actualmente existen diferentes lenguajes de programación para desarrollar en la web, estos han ido surgiendo debido a las necesidades que han surgido en la programación. Los lenguajes de programación web generalmente siguen un proceso, en la figura 4 se muestra su arquitectura general.
Figura 4: Arquitectura de los lenguajes de programación web
2.4 MySql
MySql es un manejador de bases de datos que se utiliza en aplicaciones Web, es compatible con el popular lenguaje de programación PHP y con muchos más pero en nuestro caso será este el que le de soporte a nuestro proyecto, y es el ideal puesto que es para plataformas Linux
Página 26
2.5 PHP
PHP, es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools) es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+.
En la figura 5 se representa la diferencia entre la programación del lado del cliente y la del servidor.
Puede ser desplegado en la mayoría de los servidores web y en casi todos los sistemas operativos y plataformas sin costo alguno. El lenguaje PHP se encuentra instalado en más de 20 millones de sitios web y en un millón de servidores, el número de sitios en PHP ha compartido algo de su preponderante sitio con otros nuevos lenguajes no tan poderosos desde agosto de 2005. (Cobo, Gómez, 2005)
Página 27
2.6 HTML
El HTML es el lenguaje de la Web, tras cada página visitada al azar durante una exploración por la web se oculta su código fuente, En efecto, el navegador, Microsoft Internet Explorer o Firefox no hace más que mostrar en pantalla la página diseñada por su autor mediante un lenguaje, a priori bastante hermético, como es el lenguaje HTML. En la siguiente figura 6 se presenta un ejemplo de una muestra de las etiquetas que conforman una página Web.
Figura 6: Contenido HTML detrás de una página web
2.7 CSS
Hojas de Estilo en <Cascada (Cascading Style Sheets), es un mecanismo simple que describe cómo se va a mostrar un documento en la pantalla, o cómo se va a imprimir, o incluso cómo va a ser pronunciada la información presente en ese documento a través de un dispositivo de lectura. Esta forma de descripción de estilos ofrece a los desarrolladores el control total sobre estilo y formato de sus documentos.
Página 28
2.8 JavaScript
Es un lenguaje de programación interpretado dialecto del estándar ECMAScript. Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador Web permitiendo mejoras en la interfaz de usuario y páginas Web dinámicas, aunque existe una forma de Javascript del lado del servidor (Server-side Javascript o SSJS).
Página 29
CAPTULO 3: PROCEDIMIENTO Y
DESCRIPCIÓN DE LAS
Página 30
3.1 Metodología
La metodología usada en el desarrollo para este sistema es un modelo de cascada (Royce, 2011) que es un enfoque metodológico que ordena rigurosamente las etapas de forma que cada fase debe de iniciar solamente al terminar la anterior, de esta forma cualquier los errores son fácilmente detectados.
Figura 7 Fases de la Cascada
3.2. Requerimientos de usuarios
3.2.1 Funcionales:
El sistema crea el expediente clinico del intermo a su ingreso.
El sistema tiene una base de datos para el control del expediente.
El sistema crea el historial de cada doctor
El sistema no modifica las consulta diaria
El sistema lleva el control del historial clinico del interno.
El sistema guarda todos los expediente del interno a su reingresion.
El sistema calcula la edad de cada interno
Página 31 3.2.2 No funcionales:
El sistema cuenta con seguridad de usuario.
El sistema cuanta con rápidez.
El sistema es amigable para los usuarios.
El sistema no cuenta con datos duplicados.
3.3 Análisis del sistema
En este apartado se realizan los pasos necesarios para la elaboración correcta del sistema, en primer punto se muestra el análisis ya que este es uno de los más importantes para el desarrollo del proyecto informático. Se recopila los datos necesarios que el cliente y los usuarios finales requieren para el sistema, en el siguiente punto se muestra el diseño técnico, tal como la programación, en esta parte se detalla la parte técnica del sistema, y el resultado final. Por último se realiza las pruebas necesarias para el buen funcionamiento del sistema.
Página 32
3.3.1 Diagramas de casos de usos
En la figura 8 se muestra el proceso en el que se hace el historial del interno por medio de un diagrama caso de uso.
Página 33 En la figura 9 se muestra el diagrama caso de uso de la autentificación del usuario y lo procesos que los usuarios realizan.
Figura 9: Autentificación de usuario
uc Autentificacion de ususario Usuario Sistema Pide Autentificacion Ingresa Login y Passw ord Realiza v alidacion de usuario Ingresa al sistema Realiza Operaciones Finaliza sesion
Página 34 En la figura 10 se muestra otro diagrama de caso de uso consulta rapida, en donde los usuarios o pueden visualizar las consultas que se han realizado por dia, asi como el plan de manejo que se emite.
Figura 10: Diagrama Caso de uso "Consulta rápida".
uc consulta rapida usuario Sistema Ingresa al sistema Autentifica usuario selecciona consulta rapida Selecciona tipo de cosulta ej ecuta la consulta Ingresa a la BD Muestra los Datos seleccionados imprime reporte
Página 35 En la figura 11 se muestra el diagrama en donde interactua el usuario con el sistema, para la creacion de un nuevo usuario.
Figura 11: Agregar usuario uc agregar interno Doctor sistema agrega usuario v erifica los datos agrega interno a la BD inserta datos del inetrno Genera Expediente medico
Página 36
3.3.2 Diagrama de estados
En este diagrama de la figura 12, se muestra los estados que se realiza al autentificar un usuario en el sistema. Este usuario tiene un nombre de usuario y una contraseña para poder entrar al sistema, este los ingresa y el programa se encarga de validar si el nombre y contraseñas son correctos.
Figura 12: Diagrama de estados "Autentificación de usuario"
stm Autentificacion Inicio Introducir datos Validar Datos Ingresa al modulo requerido Fin
Página 37 Para poder ingresar al sistema, primeramente se tiene que registrar y tener una cuenta dentro de la misma, el registro lo hace el doctor responsable o jefe, en la figura 13 se muestra los estados que intervienen para el registro de un nuevo usuario.
Figura 13: Registro de un usuario
stm Registro de un usuario inicio Responsable entra al sistema ingresa al modulo correspondiente
Introduce los datos
v alida datos
Guarda datos
Se registra usuarios
Página 38 Después de que el usuario sea registrado en el sistema podrá hacer uso del mismo y así mismo podrá crear una nueva nota médica, para la generación de historial clínico del interno, como la siguiente figura 14 se muestra el diagrama de estado para la creación de la nota de valoración médica.
Figura 14: Nota de valoración medica stm crear notav aloracion medica
inicio
usuario ingresa al sistema
ingresa al modulo correspondientes
introduce los datos correctos del paciente
guarda datos
v alida que los datos sean correctos
se guarda los datos en la BD
se genera el reporte plan de manej o
Página 39
3.3.3 Diagramas Entidad – Relación
Para la creación del sistema se necesita una Base de Datos para la inserción de información, por lo que se genera un diagrama de Entidad –Relación como se muestra en la figura 15.
Página 40
3.3.4 Diccionario de datos
Nomenclatura: Primeramente en el diccionario de datos se define la nomenclatura utilizada en la base de datos para los distintos datos contenidos en ella.
Claves Primarias: Son definidas utilizando el prefijo “id” seguido por el nombre de la tabla o en su defecto por el nombre del campo si este está ya definido.
Claves Foráneas: Son definidas utilizando como primer componente el nombre de la tabla que la contiene seguida por un guion bajo y complementada por el nombre de su correspondiente clave primaria, es semejante a la llave primaria.
Nombres de tablas principales: Es decir las aquellas que son indispensables para nuestro proyecto como la de interno se les llaman tal cual solo utilizando mayúscula al principio. Interno
Tablas de relación: son aquellas que son resultado de 2 o más tablas estas tienen como nombre los nombres de las tablas que las contienen separados por un guion bajo.
Página 41 A continuacion se muestra el diccionario de datos para cada tabla generada en nuestro proyecto.
En la tabla 3 se muestra las caracteristicas de la tabla alias en donde este se relaciona con la tabla interno.
Tabla 3 Diccionario de tablas de interno
interno
Campo Tipo Nulo Predeterminado
Id_interno Entero No
nombre Varchar(60) No
Fecha_nac date No
Fecha_ingreso date No
edificio Varchar(40)
La tabla 4 muestra la tabla de los tipos de consulta existentes para el sistema.
Tabla 4 Diccionario de consulta
consulta
Campo Tipo Nulo Predeterminado
Id_tipo_consulta Entero No
Página 42 En el siguiente diccionario habla del expediente clínico que es una recopilación de todas las consultas que un interno ha tenido.
Tabla 5 Diccionario de expediente clínico
Exp_clinico
Campo Tipo Nulo Predeterminado
Id_exp_clinico entero No Id_consulta Entero No
En la tabla 6 muestra los campos necesarios para realizar una consulta a un interno.
Tabla 6 Diccionario de tabla consulta
consulta
Campo Tipo Nulo Predeterminado
Id_consulta entero No Id_interno entero No Id_medico entero No Id_tipo_consulta entero No Id_tratamiento entero No Id_diagnostico entero No Fecha_consulta datetime no
Página 43 En la tabla 7 hace mención a los datos del médico necesarios para darlos de alta.
Tabla 7 Diccionario de medico
Medico
Campo Tipo Nulo Predeterminado
Id_medico Entero No Nombre varchar(60) No Horario varchar(20) No
telefono entero no
En el diccionario siguiente se habla de la tabla de la impresión diagnostica y almacena los datos evaluados por el médico al interno cuando ingresa.
Tabla 8 Diccionario de diagnostico
diagnostico
Campo Tipo Nulo Predeterminado
Id_diagnostico Entero No
nombre Varchar(20) No
En la tabla 9 se muestra los campos que va tener el diccionario de tratamiento que es donde se guardara que tipo de seguimiento se le puede dar a un interno.
Tabla 9 Diccionario de interno
Id_tratamiento
Campo Tipo Nulo Predeterminado
Id_tratamiento Entero No
Página 44
3.4 Diseño de interfaces
En la figura 16 se muestra el inicio del sistema, con el inicio de sesión, este verifica que sea usuario del sistema.
Página 45 En la figura 17 muestra la bienvenida del sistema, aquí se muestra el menú para operar las aplicaciones del sistema y además cuenta con un banner con ligas a páginas de gobierno.
Página 46 En la figura 18 se muestra la pantalla para el registro de un nuevo interno, donde se pondrá el nombre, la fecha de nacimiento así como la de ingreso y el edificio donde se queda.
Página 47 En la figura 19 es donde se hacen búsquedas de internos y en esta misma parte se pueden modificar en caso de que se requiera o borrar.
Página 48 En la figura 20 se muestra la pantalla para dar de alta un nuevo médico con los datos correspondientes.
Página 49 En la figura 21 se muestra la página de buscar médico, que además de poder visualizar los datos del usuario se podrá modificar en lo caso de que lo requiera o borrarlo.
Página 50 En la figura 22 se muestra la pantalla de la consulta que es donde el doctor registrara los datos necesarios para llenar el tipo de consulta que se está haciendo en ese momento.
Página 51 En la figura 23 se muestra pantalla de las estadísticas, que es donde el administrador podrá visualizar que ha hecho cada doctor especificando un tiempo determinado para la búsqueda.
Página 52
3.5 Desarrollo
Como se dijo anteriormente el desarrollo de este proyecto fue con el lenguaje de programación PHP sin utilizar ningún framework, se utilizó también MYSQL como gestor de base de datos y se le dio un diseño al sistema haciendo uso de bootstrap. Para ver el código completo de desarrollo ir a Anexos.
Para empezar a trabajar se hizo una conexión a mysql
Figura 24 Conexión a base de datos
En este código (figura 24) le decimos al sistema a que base de datos se tiene que enlazar, además del usuario y contraseña que se necesita, cuenta también con fallo de errores en caso de que no se puede realizar la conexión correctamente.
En la figura 25 vemos el código correspondiente para el inicio de una sesión en el sistema, como se puede apreciar, los campos del usuario y contraseña se almacenan en sus respectivas variables y se hace una validación con la base de datos para saber que si se tienen los datos correctos y entonces una vez verificada la sesión se puede acceder a la página de inicio.
Página 53 La figura 26 tiene el código correspondiente para que una vez iniciada la sesión el usuario pueda navegar por todas las páginas del sistema sin que la sesión se cierre o tenga que refrescar
Figura 26 Sesión de usuario
En la figura 27 tenemos una parte del código para generar el PDF que sale de una consulta, al presionar el botón de generar PDF este código le da el formato necesario y manda a llamar a MYSQL la información de los campos correspondientes y cuando ya está la estructura de este, el sistema lo crea y permite su visualización.
Página 54 En la figura 28 está el código correspondiente a la terminación de una sesión que es cuando un medico deja de usar el sistema, cuando la sesión se termina el sistema redirige automáticamente a la página principal donde iniciar de nuevo.
Figura 28 Terminación de sesión
En la figura numero 29 vemos una parte del código para agregar un nuevo registro a la base de datos, en este caso son los datos de un nuevo interno. Ya que se llenaron los campos necesarios en el sistema esta es la consulta que se encarga de almacenar todo en la base de datos más específicamente en la tabla de los internos.
Para el momento de agregar a un nuevo medico el funcionamiento es similar.
Página 55
Figura 30 Consulta frontend
En la figura 30 está plasmado el código que conforma la parte visual de las consultas, los campos y los estilos que tienen, en esta parte del sistema existen varios campos que no se pueden modificar como la fecha, el médico, etc.
Por ultimo en la figura 31 tenemos la también código de la consulta pero la parte que expresa la funcionalidad, una vez que los campos están con información todas las variables se almacenan para poderlas manipular y enviarlas a la base de datos.
Página 56
3.6 Pruebas
Se realizaron pruebas de compatibilidad para cerciorarnos de una buena respuesta por parte de los navegadores web (Mozilla, Google Chrome, Internet Explorer).
“Las pruebas de compatibilidad son muy importantes para mostrar una calidad adecuada en tu software y así verificar que funcionará con normalidad en todos los navegadores o se podrá instalar en todos los sistemas operativos que veas necesario.” (Testing, 2015).
En la figura 32 se muestra la respuesta del sistema abriéndolo con Chrome, como se puede ver es totalmente responsivo a los tamaños, acepta bien html5 y no hay problemas con estilos.
Figura 32 Sistema ejecutándose en Chrome
En la figura 33 está trabajando el sistema bajo Explorer, los estilos y html5 trabajan correctamente y además está en una pantalla de menor tamaño, lo que significa que el sistema responsivo corre perfectamente.
Página 57
Figura 33 Sistema ejecutándose en Explorer
Además de pruebas de funcionamiento para asegurar que no existan fallas al momento de operar el sistema. Estas pruebas se realizaron en el departamento médico del Centro de Readaptación Social de Colima, durante 2 semanas y los resultados fueron que el sistema trabaja correctamente aun con usuarios finales sin muchos conocimientos en TI.
Página 58
Página 59
4.1 Cumplimientos de los objetivos
Se ha desarrollado un sistema de información que elabora y controla el expediente clínico de los internos del Centro de Reinserción Social Colima, este permite abrir un expediente sistematizado de cada uno de los reos de la institución. Posteriormente se implementó en el servidor del mismo plantel, para su ejecución.
Se realizó un análisis de cómo se lleva a cabo los procesos manuales de creación de expedientes y consultas médicas.
Se diseñó el modelo conceptual del sistema haciendo uso del programa Enterpise Architect.
Se diseñó y se creó la base de datos en donde se almacena la información recabada de los expedientes y consultas, como también la información de los doctores y usuarios que operan el sistema.
Se determinó los reportes y formatos de la información del usuario final. Los cuales fueron:
Consultas
Expedientes clínicos PDF’s
Estadísticas
Se implementó las medidas de seguridad que requiere el sistema para la protección de la información. Como fue el uso de las sesiones para cada usuario protegidas con contraseña, además de respaldos a la base de datos para no perder la información en casi de un imprevisto.
Página 60
4.2 Trabajos a futuros
A la creación de este sistema ayuda al Departamento Medico para el control de sus expedientes y a la toma de decisiones, con esto queda abierto el sistema para la aplicación de todo la Clínica del Ce. Re. So, como es el área de Psicología, Trabajadoras Social, Psiquiatría, Nutrición, etc.
4.3 Conclusión
El sistema de control de expedientes es de gran importancia para el Departamento Medico del Ce. Re. So, ya que optimiza los proceso de la evaluación del interno y creación del expediente a su ingreso, y permite una mejor confiabilidad en la información. Por otra parte contiene la seguridad de los datos proporcionados por el paciente.
Página 61
Página 62
Bibliografía
1. Hernández, Sampieri. Roberto. Metodología de la investigación 2a. Edición. Editorial McGraw-Hill, México, 1998.
2. Ángel Cobo y Patricia Gómez, Php y mysql tecnologías para el desarrollo web, ed. Diaz de Santos, España 2005
3. SENN James A. (1992) Análisis y Diseño de Sistemas de Información. Segunda Edición. Editorial McGrawHill. México
4. Gallego, J. C. (2010). Mantenimiento de Sistemas Microinformaticos. Editex. 5. L.Winblad, A., D., E. S., & R., K. D. (1990). Software orientado a objetos.
ADDISON-WESLEY.
6. Secretaria de Salud 2008, consultada en Septiembre 2012, http://www.saludtab.gob.mx/index.php?option=com_content&view=article&id=
706:norma-oficial-mexicana-nom-004-ssa3-2012-del-expediente-clinico&catid=44:calidad-y-educacion
7. Royce, W. (2011). Recuperado el 2015, de http://blog.iedge.eu/tecnologia- sistemas-informacion/desarrollo/pablo-almunia-ciclo-de-vida-en-el-desarrollo-de-software-primera-parte/
Página 63
Página 64
Creación de Base de Datos
# SQL Manager 2010 for MySQL 4.5.0.9 # --- # Host : localhost # Port : 3306 # Database : cereso /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES latin1 */;SET FOREIGN_KEY_CHECKS=0; CREATE DATABASE `cereso` CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci'; USE `cereso`;
#
# Structure for the `diagnostico` table : #
CREATE TABLE `diagnostico` ( `id_diagnostico` int(11) NOT NULL, `nombre` varchar(20) default NULL, PRIMARY KEY (`id_diagnostico`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; #
# Structure for the `interno` table : #
CREATE TABLE `interno` (
`id_interno` int(11) NOT NULL auto_increment, `nombre` varchar(60) NOT NULL,
`fecha_nac` date NOT NULL, `fecha_ingreso` date NOT NULL, `edificio` varchar(40) NOT NULL, `estatus` tinyint(1) NOT NULL, PRIMARY KEY (`id_interno`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; #
# Structure for the `medico` table : #
CREATE TABLE `medico` (
`id_medico` int(11) NOT NULL auto_increment, `nombre` varchar(60) NOT NULL,
`horario` varchar(20) default NULL, `telefono` int(11) default NULL, `estatus` tinyint(1) NOT NULL, PRIMARY KEY (`id_medico`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; #
# Structure for the `tipo_consulta` table : #
Página 65
CREATE TABLE `tipo_consulta` ( `id_tipo_consulta` int(11) NOT NULL, `nombre` varchar(20) default NULL, PRIMARY KEY (`id_tipo_consulta`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; #
# Structure for the `tratamiento` table : #
CREATE TABLE `tratamiento` ( `id_tratamiento` int(11) NOT NULL, `nombre` varchar(20) default NULL, PRIMARY KEY (`id_tratamiento`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; #
# Structure for the `consulta` table : #
CREATE TABLE `consulta` ( `id_consulta` int(11) NOT NULL, `id_interno` int(11) NOT NULL, `id_medico` int(11) NOT NULL, `id_tipo_consulta` int(11) NOT NULL, `id_tratamiento` int(11) NOT NULL, `id_diagnostico` int(11) NOT NULL, `fecha_consulta` datetime NOT NULL, PRIMARY KEY (`id_consulta`), KEY `id_interno` (`id_interno`), KEY `id_medico` (`id_medico`),
KEY `id_tipo_consulta` (`id_tipo_consulta`), KEY `id_tratamiento` (`id_tratamiento`), KEY `id_diagnostico` (`id_diagnostico`),
CONSTRAINT `consulta_fk` FOREIGN KEY (`id_interno`) REFERENCES `interno` (`id_interno`), CONSTRAINT `consulta_fk1` FOREIGN KEY (`id_medico`) REFERENCES `medico` (`id_medico`),
CONSTRAINT `consulta_fk2` FOREIGN KEY (`id_tipo_consulta`) REFERENCES `tipo_consulta` (`id_tipo_consulta`),
CONSTRAINT `consulta_fk3` FOREIGN KEY (`id_tratamiento`) REFERENCES `tratamiento` (`id_tratamiento`), CONSTRAINT `consulta_fk4` FOREIGN KEY (`id_diagnostico`) REFERENCES `diagnostico` (`id_diagnostico`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
#
# Structure for the `exp_clinico` table : #
CREATE TABLE `exp_clinico` ( `id_exp_clinico` int(11) NOT NULL, `id_consulta` int(11) NOT NULL,
PRIMARY KEY (`id_exp_clinico`,`id_consulta`), KEY `id_consulta` (`id_consulta`),
CONSTRAINT `exp_clinico_fk` FOREIGN KEY (`id_consulta`) REFERENCES `consulta` (`id_consulta`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Página 66
Código Registro de Interno
<? include_once("cabezera.php"); ?> <div class="container"> <div align="center"> <h2>Registro de internos</h2> </div>
<form name="forma1" id="forma1" method="post" class="8 col-lg-offset-2">
<div class="jumbotron">
<label>Nombre:</label><input type="text" class="form-control" name="nombre" id="nombre" value=" "><br>
<label>Tipo de sangre:</label>
<select size="1" class="form-control" name="sangre" id="sangre"> <option value="AB+">AB+</option> <option value="AB-">AB-</option> <option value="A+">A+</option> <option value="A-">A-</option> <option value="A+">B+</option> <option value="A+">B-</option> <option value="A+">O+</option> <option value="A+">O-</option> </select>
<label>Fecha de nacimeinto:</label><input type="date" class="form-control" name="fecha_nac" id="fecha_nac" value=" "><br>
<label>Fecha de ingreso:</label><input type="date" class="form-control" name="fecha_ing" id="fecha_ing" value=" "><br>
<label>Edificio:</label><input type="text" class="form-control" name="edificio" id="edificio" value=" "><br>
<input type="submit" class="btn btn-success" name="envia" id=""> </div> </form> <? if(isset($_POST['nombre'])) { error_reporting(0);
$llega= "INSERT INTO interno
(nombre,fecha_nac,fecha_ingreso,edificio,estatus,tipo_sangre) VALUES ('".trim($_POST['nombre'])."','".trim($_POST['fecha_nac'])."','".trim($_POST['fecha_ing']). "','".trim($_POST['edificio'])."',1,'".trim($_POST['sangre'])."')"; $resultado = mysql_query($llega); $completo = mysql_fetch_object($resultado);
Página 67 } ?> </div> ?> </body> </html>
Código de Registro de Medico
<?php include_once("cabezera.php"); ?> <div class="container"> <div align="center"> <h2>Registro de Medicos</h2> </div>
<form name="forma1" id="forma1" method="post" class="8 col-lg-offset-2">
<div class="jumbotron">
<label>Nombre:</label><input type="text" class="form-control" name="nombre" id="nombre" value=" "><br>
<label>Horario:</label>
<select size="1" class="form-control" name="horario" id="horario"> <option value="Matutino">Matutino</option> <option value="Vespertino">Vespertino</option> <option value="Nocturno">Nocturno</option> </select>
<label>Telefono:</label><input type="text" class="form-control" name="telefono" id="telefono" value=" "><br>
<input type="submit" class="btn btn-primary" name="envia" id=""> </div> </form> <? if(isset($_POST['nombre'])) { error_reporting(0);
$llega= "INSERT INTO medico
(nombre,horario,telefono,estatus) VALUES ('".trim($_POST['nombre'])."','".trim($_POST['horario'])."','".trim($_POST['telefono'])."',1) "; $resultado = mysql_query($llega); $completo = mysql_fetch_object($resultado); }
Página 68 ?> </div> ?> </body> </html>
Código creación de Consulta
<?
include_once("cabezera.php");
$yolo = "select nombre from medico where username = '".$_SESSION['session_username']."'";
$coge = mysql_query($yolo); $muuu = mysql_fetch_array($coge); //listas de nombres de internos
$sentencia = "select * from interno order by nombre asc"; $queryblop=mysql_query($sentencia);
$medico = "select * from medico order by nombre asc"; $querymedico=mysql_query($medico);
$sentenciatip_consulta = "select * from tipo_consulta order by nombre asc"; $querytip_cons=mysql_query($sentenciatip_consulta);
$edi = "select * from interno order by edificio asc"; $querytip_cons=mysql_query($sentenciatip_consulta);
$diagnostico = "select * from diagnostico order by nombre asc"; $querydiag=mysql_query($diagnostico);
$tratamiento = "select * from tratamiento order by nombre asc"; $querydiag1=mysql_query($tratamiento);
$time = time();
$alfh = date("Y-m-d", $time); ?>
<div class="container"> <div align="center">
<h2>Registro de Consulta</h2> </div>
<form name="forma1" id="forma1" method="post" class="10 col-lg-offset-1">
<div class="jumbotron"> <div class="row">
Página 69 <label>Medico</label><input type="text" class="form-control" name="medico" id="medico" readonly="readonly" value="Dr. <? echo $muuu['nombre'];?>"><br>
<label>Nombre del interno:</label>
<select name="catalogo_internos" id="cat_inter" class="form-control">
<? while ($inter=
mysql_fetch_array($queryblop)){?>
<option value="<? echo $inter['nombre']; ?>"> <? echo $inter['nombre']; ?></option> <? } ?> </select><br> <label>Fecha:</label><input type="text" class="form-control" name="fecha" id="fecha" value="<? echo $alfh; ?>"><br>
<label>Ubicacion</label>
<!--<input type="text" class="form-control" name="ubicacion" id="ubicacion" value=" ">-->
<select name="ubicacion" id="ubicacion" class="form-control"> <option value="A">Edificio A</option> <option value="B">Edificio B</option> <option value="C">Edificio C</option> <option value="D">Edificio D</option>
<option value="E">Edificio E</option> <option value="F">Edificio F</option> <option value="G">Edificio G</option>
<option value="H">Edificio H</option>
<option value="I">Edificio I</option> <option value="J">Edificio J</option> </select>
<br>
<label>Diagnostico</label>
<select name="diagnostico" id="diagnostico" class="form-control">
<? while ($diag=
Página 70 <option value="<? echo $diag['nombre']; ?>"><? echo $diag['nombre'];?></option>
<? } ?> </select>
<!-- <input type="text" class="form-control" name="diagnostico" id="diagnostico" value=" "><br> -->
</div>
<div class="col-lg-6">
<label>Nota Medica</label><textarea rows="5" class="form-control" name="descripcion" cols="20" id="lol"></textarea><br>
<label>Tratamiento</label>
<select name="tratamiento" id="tratamiento" class="form-control">
<? while ($diag=
mysql_fetch_array($querydiag1)){?>
<option value="<? echo $diag['nombre']; ?>"><? echo $diag['nombre'];?></option>
<? } ?> </select>
<label>Tipo de consulta</label><select size="1" class="form-control" name="dia">
</div>
<? while ($tpcon=
mysql_fetch_array($querytip_cons)){?>
<option value="<? echo $tpcon['nombre']; ?>"><? echo $tpcon['nombre'];?></option>
<? } ?> </select> <br>
<input class="btn btn-success" type="submit" name="envia" id=""> </div> </div> </form> <? if(isset($_POST['catalogo_internos'])) { //error_reporting(0);
$q_inter = "select * from interno where nombre = '".trim($_POST['catalogo_internos'])."'";
$q_inter1 = mysql_query($q_inter);
$q_inter2 = mysql_fetch_object($q_inter1); echo "interno: ",$q_inter2->id_interno;
// $q_medico = "select * from medico where nombre = '".trim($muuu['nombre'])."'";
Página 71 // $q_medico2 = mysql_fetch_object($q_medico1);
// echo "medico: ",$q_medico2->id_medi;
$q_tcon = "select * from tipo_consulta where nombre = '".trim($_POST['dia'])."'";
$q_tcon1 = mysql_query($q_tcon);
$q_tcon2 = mysql_fetch_object($q_tcon1);
echo "tipoconsulta: ",$q_tcon2->id_tipo_consulta;
$q_trata = "select * from tratamiento where nombre = '".trim($_POST['tratamiento'])."'";
$q_trata1 = mysql_query($q_trata);
$q_trata2 = mysql_fetch_object($q_trata1); echo "tratamiento: ",$q_trata2->id_tratamiento;
$q_diag = "select * from diagnostico where nombre = '".trim($_POST['diagnostico'])."'";
$q_diag1 = mysql_query($q_diag);
$q_diag2 = mysql_fetch_object($q_diag1); echo "diagnostico: ",$q_diag2->id_diagnostico;
$id_med = "select id_medico from medico where username = '".$_SESSION['session_username']."'";
$medi = mysql_query($id_med); $med = mysql_fetch_object($medi); echo "id del medico: ",$med->id_medico;
$llega= "INSERT INTO consulta
(id_interno,id_medico,id_tipo_consulta,id_tratamiento,id_diagnostico,fecha_consulta,nota_ medica,ubicacion) VALUES ('".trim($q_inter2- >id_interno)."','".trim($med->id_medico)."','".trim($q_tcon2- >id_tipo_consulta)."','".trim($q_trata2->id_tratamiento)."','".trim($q_diag2->id_diagnostico)."','".trim($_POST['fecha'])."','".trim($_POST['descripcion'])."','".trim($_P OST['ubicacion'])."')"; $resultado = mysql_query($llega); $completo = @mysql_fetch_object($resultado); echo $llega;
// $cti = "select * from internet where nombre = '".trim($_POST['catalogo_internos'])."'";
// $ctm = mysql_query($cti);
// $yolo = mysql_fetch_object($mando); // echo $cti;
Página 72 // echo $yolo;
// $pop = "select id_interno from interno where nombre = '".."'"; } ?> </div> </body> </html>
Código Estadísticas
<? include_once("cabezera.php");$yolo = "select nombre from medico where username = '".$_SESSION['session_username']."'";
$coge = mysql_query($yolo); $muuu = mysql_fetch_array($coge); //listas de nombres de internos
$sentencia = "select * from interno order by nombre asc"; $queryblop=mysql_query($sentencia);
$medico = "select * from medico order by nombre asc"; $querymedico=mysql_query($medico);
$sentenciatip_consulta = "select * from tipo_consulta order by nombre asc"; $querytip_cons=mysql_query($sentenciatip_consulta);
$edi = "select * from interno order by edificio asc"; $querytip_cons=mysql_query($sentenciatip_consulta);
$diagnostico = "select * from diagnostico order by nombre asc"; $querydiag=mysql_query($diagnostico);
$tratamiento = "select * from tratamiento order by nombre asc"; $querydiag1=mysql_query($tratamiento);
$time = time();
$alfh = date("Y-m-d", $time); ?>
<div class="container"> <div align="center">
<h2>Estadisticas</h2> </div>
<form name="forma1" id="forma1" method="post" class="6 col-lg-offset-3">
<div class="jumbotron"> <div class="row">
Página 73 <div> <label>Por interno:</label> <select name="catalogo_internos" id="cat_inter" class="form-control"> <? while ($inter= mysql_fetch_array($queryblop)){?>
<option value="<? echo $inter['nombre']; ?>"> <? echo $inter['nombre']; ?> </option> <? } ?> </select><br> <label>Fecha de inicial:</label><input type="date" class="form-control" name="fecha_iniciala" id="fecha_i" value=" "><br>
<label>Fecha de final:</label><input type="date" class="form-control" name="fecha_finala" id="fecha_f" value=" "><br>
</div>
<input class="btn btn-success " type="submit" name="envia" id=""> </div> </form> </div> <? if(isset($_POST['fecha_iniciala'])) {
$q_diag = "select * from interno where nombre = '".trim($_POST['catalogo_internos'])."'";
$q_diag1 = mysql_query($q_diag); $q_diag2 = mysql_fetch_array($q_diag1); $query="select COUNT(*) as veces
from consulta join interno on
consulta.`id_interno`=interno.`id_interno`
where interno.`id_interno` =
'".trim($q_diag2['id_interno'])."'";
$line = mysql_query($query); $line1 = mysql_fetch_array($line);
$query2="select interno.`nombre` as interno,medico.`nombre` as medico,consulta.`fecha_consulta` as fecha
from `consulta` join `interno` on consulta.`id_interno`=interno.`id_interno`
Página 74
join medico on
consulta.`id_medico`=medico.`id_medico` where
interno.id_interno=".trim($q_diag2['id_interno'])." and fecha_consulta between '".trim($_POST['fecha_iniciala'])."' and '".trim($_POST['fecha_finala'])."'";
$line2 = mysql_query($query2);
// $line3 = mysql_fetch_array($line2);
$consultam = "select * from consulta where id_interno = ".trim($q_diag2['id_interno']).""; $consu = mysql_query($consultam); $con = mysql_fetch_array($consu); ?> <? if(mysql_num_rows($line2)>0) { ?>
<table class="table table-hover table-bordered"> <tr> <th>Interno</th> <th>Medico</th> <th>Fecha de la consulta</th> <th>Ver consulta</th> </tr> <? while($line3 = mysql_fetch_object($line2)) { ?> <tr> <td><?=htmlentities($line3->interno);?></td> <td><?=htmlentities($line3->medico);?></td> <td><?=htmlentities($line3->fecha);?></td> <td> <button type="button" class="btn btn-default" data-toggle="modal" data-target="#myModal">
<span class="glyphicon glyphicon glyphicon-list-alt" aria-hidden="true">
</span> </button>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
Página 75 <div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Consulta al paciente</h4> </div>
<div class="modal-body">
<h4>Interno: <?=htmlentities($line3->interno);?></h4>
<p style="color:black">Cantidad de veces que ha ido a consulta: <?=htmlentities($line1['veces']);?></p> <p style="color:black">Nota Medica:</p> <p style="color:black; text-align:justify;"><?=htmlentities($con['nota_medica']);?></p> </div> <div class="modal-footer"> <button onclick="pdf_page('<?=base64_encode($con['id_consulta']);?>')" class="btn btn-default">Generar PDF</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">No</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> </td> </tr> <? } ?> </table> <? }
Página 76 else
{
?>
<div class="col-lg-6 col-lg-offset-3" style="text-align:justify;" id="alerta" align="center">
<font color="#FF0000"> <h3>
NO SE
ENCONTRARON CONSULTAS DEL INTERNO EN EL PERIODO ASIGNADO!! </h3>
</font> </div>
<? }
//***** aqui termina la parte de internos } ?> </body> <script lenguage="javascript"> function pdf_page(idconsulta) { open('gen_pdf.php?nct='+idconsulta,'_self'); } </script> </html>
Página 77