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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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; #
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`),
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);
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);
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);
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">
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
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">
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 -->
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'); }
Página 77