DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el...

81
DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA EN ELECTRONICA AREA DE CONCENTRACION: COMPUTACION PROYECTO TERMINAL DE INGENIERIA ELECTRONICA AUTOMATIZACI~N HOSPITALITARIA DESARROLLADO PARA EL HOSPITAL DEL VALLE DE CHALCO. ASESOR: M. en I.B. DAVID UZZIEL LOPEZ ILLEZCAS ALUMNO: BRISEÑO SAQUEDO CALOS ARMANDO MAT. 87222373

Transcript of DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el...

Page 1: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

DEPARTAMENTO DE INGENIERIA ELECTRICA

INGENIERIA EN ELECTRONICA

AREA DE CONCENTRACION: COMPUTACION

PROYECTO TERMINAL DE INGENIERIA ELECTRONICA

AUTOMATIZACI~N HOSPITALITARIA DESARROLLADO PARA EL HOSPITAL DEL VALLE DE CHALCO.

ASESOR:

M. en I.B. DAVID UZZIEL LOPEZ ILLEZCAS

ALUMNO:

BRISEÑO SAQUEDO CALOS ARMANDO MAT. 87222373

Page 2: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

UNIDAD

DIVISION

CARRERA

MATERIA

TITULO

FECHA

ALUMNO

:IZTAPALAPA.

:CIENCIAS BASICAS E INGENERIA.

:ING. ELECTRONICA EN COMPUTACI~N

:PROYECTO TERMINAL

:AUTOMATIZACIóN DE HOSPITAL.

:5 DE ENERO DE 2000.

:BRISEÑO SAQUEDO CARLOS ARMANDO.

MATRICULA 537222373. a i

ASESOR : M en I.B. DAVID UZ EL LOPEZ ILLESCAS. 7 ASESOR EXTERNO : M en T.E. ROSALBA GARCÍA RODRÍGUEZ.

Page 3: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

INTRODUCCION.

LA COMPUTADORA ES REALMENTE UNA MAQUINA ASOMBROSA. POCAS HERRAMIENTAS TE PERMITEN REALIZAR TANTAS TAREAS DIFERENTES. YA SEA QUE QUIERAS DAR SEGUIMIENTO A UNA INVERSION, PUBLICAR UN PERIODICO, DISEÑAR UN EDIFICIO O ASUMIR LA PERSONA DE INDIANA JONES Y EXPLORAR CAVERNAS EN SUDAMERICA PODRAS HACERLO CON UNA COMPUTADORA.

EN 1982, LA REVISTA TIME NOMBRO “HOMBRE DEL AÑO’ A UNA COMPUTADORA, DESDE ENTONCES, ESTAS COMPLEJAS MAQUINAS (CONSTRUIDAS CON SILICIO, METAL Y PLASTICO) HAN VENIDO A INFLUIR EN CASI TODOS LOS ASPECTOS DE NUESTRAS VIDAS.EN DONDE QUIERA QUE COINCIDAN EL INTELECTO HUMANO Y LA TECNOLOGIA, AHI ENCONTRAS COMPUTADORAS.

EN LA MEDICINA Y CUIDADO DE LA SALUD.

ACTUALMENTE, SE USAN LAS COMPUTADORAS PARA TODO EN MEDICINA, DESDE DIAGNOSTICOS DE ENFERMEDADES HASTA EL MONITOREO DE PACIENTES DURANTE CIRUGIA Y EL CONTROL PERMENENTE DE PROTESIS.

ALGUNAS APLICACIONES MEDICAS INTERESANTES USAN PEQUEÑAS COMPUTADORAS DE PROPOSITO ESPECIFICO QUE OPERAN DENTRO DEL CUERPO HUMANO PARA AYUDARLE A FUNCIONAR MEJOR.UN EJEMPLO SERIAN LOS MARCAPASOS; OTRO ES ÉL IMPLANTE DE COCLEA, UN APARATO ESPECIAL PARA EL OIDO QUE PERMITE ESCUCHAR A PERSONAS CON MARCADA DEFICIENCIA AUDITIVA. PARTE DEL DISPOSITIVO ES UNA PEQUEÑA COMPUTADORA QUE TRANSFORMA EL SONIDO EN IMPULSOS ELECTRICOS QUE SON TRANSMITIDOS AL CEREBRO MEDIANTE UN DISPOSITIVO INSTALADO EN EL OIDO.OTR0 USO DE LAS COMPUTADORAS EN HOSPITALES ES LA AUTOMATIZACION DE TECNICAS PARA CREAR IMÁGENES, LAS CUALES PRODUCEN IMÁGENES COMPLETAMENTE

Page 4: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

DIMENSIONALES CON MUCHO MAYOR DETALLE Y MENOR RIESGO QUE LAS PELICULAS COMUNES DE RAYOS X. EL PRIMER USO EXTENDIDO DE LA CREACION DE IMÁGENES FUE CON LOS BARRIDOS DE TOMOGRAFIA AXIAL COMPUTARIZADA(CAT).

QUIZA EL EJEMPLO MAS DRAMATIC0 DE LA FORMA EN QUE LAS COMPUTADORAS PERSONALES ESTAN MEJORANDO LA VIDA DE LAS PERSONAS TIENEN QUE VER CON INDIVIDUOS CON IMPEDIMENTOS FISICOS. ANTES DE LAS COMPUTADORAS PERSONALES, LAS PERSONAS CON DISCAPACIDADES FISICAS CON FRECUENCIA ENCONTRABAN MUCHOS PROBLEMAS PARA REALIZAR TAREAS DIARIAS Y TEMAN OPOTUNIDADES LIMITADAS PARA CONSEGUIR EMPLEO. ACTUALMENTE, UNA AMPLIA VARIEDAD DE SOFTWARE Y HARWARE, ESTA DISPONIBLE PARA AYUDAR A PERSONAS CON DIVERSOS IMPEDIMENTOS FISICOS. AUNQUE LA COMPUTADORA NO ES LA PANACEA, SI ESTA AYUDANDO YA QUE CUALQUIER PERSONA QUE TENGA UN MUSCULO BAJO SU CONTROL PODRA UTILIZAR UNA COMPUTADORA.

EN SU MAYOR PARTE, LAS COMPUTADORAS SON MAQUINAS DE USO GENERAL, MUCHAS PUEDEN SER USADAS CON LA MISMA EFICIENCIA PARA TRABAJAR CON NUMEROS, QUE PARA CREAR DOCUMENTOS, PARA CONTROLAR MAQUINAS o PARA AUTOMATIZAR HOSPÍTALES

LAS COMPUTADORAS SE HAN VUELTO TAN IMPORTANTES PARA LA MAYORIA DE LOS HOSPITALES QUE SE HAN TOMADO AMPLIAS PRECAUCIONES PARA ASEGURARSE DE QUE LOS SISTEMAS Y LOS DATOS ESTEN DISPONIBLES TODO EL TIEMPO, INCLUSO DURANTE GUERRAS, DESASTRES NATURALES U OTRAS CRISIS NACIONALES. HAN SURGIDO ELABORAJIAS ORGANIZACIONES INTERNAS PARA HACERSE CARGO DE LAS OPERACIONES QUE SE LLEVAN ACABO.

EN OCASIONES, LAS TECNOLOGIAS QUE HACEN LA DIFERENCIA MÁS GRANDE SON AQUELLAS QUE RECIBEN LA MENOR COBERTURA DE PRENSA.UNA TECNOLOGIA MUY SENSILLA LLAMADA ED1 (INTERCAMBIO ELECTRONIC0 DE DATOS), ESTA CAMBIANDO LA MANERA EN QUE LAS COMPAÑIAS LLEVAN A CABO NEGOCIOS, ELIMINANDO CASI POR COMPLETO LAS FORMAS DE ORDENES EN PAPEL Y SE MANIFIESTA EN COME'mIAS GRANDES POR DOQUIER.

Page 5: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

EL ED1 ES UN PROCESO EN EL QUE DIFERENTES COMPUTADORAS COMPARTEN INFORMACION INDEPENDIENTEMENTE QUIEN LAS FABRIQUE, DONDE SE ENCUENTRE O QUE TAN RAPID0 CORRAN. NO ES UNA TECNOLOGIA ATRACTIVA RARA VEZ ES DISCUTIDA EN EL MEDIO PERO EL ED1 ESTA AYUDANDO A MUCHOS NEGOCIOS A BAJAR COSTOS ASOCIADOS CON ENBARQUES, ENTREGAS Y ALMACENAMIENTO DE PARTES Y SUMINISTROS.

EN EL HOSPITAL EVANSTON COW, EN EVANSTON, ILLINOIS, EL ED1 A CAMBIADO LA MANERA EN QUE ESTE HOSPITAL ORDENA SUMISTROS Y EN EL PROCESO, HA DEFINIDO NUEVAMENTE LA FORMA EN QUE LA COMPAÑÍA MANEJA SUS INVENTARIOS Y LA COMUNICACIóN CON SUS PROVEEDORES.

LOS CAMBIOS SON TAN DRAMATICOS QUE, EN UN SOLO AÑO, EL HOSPITAL AHORRO MÁS 2 MILLLONES DE DOLARES. EL ED1 PERMIT10 A LAS COMPUTADORAS DEL HOSPITAL ORDENAR Y PROGRAMAR LA ENTREGA DE UN AMPLIO GRUPO DE SUMISTROS EN FORMA AUTOMATICA, CONFORME SE NECESITABAN ESOS PRODUCTOS.

DESCRIPCION DEL PROYECTO.

EL OBJETIVO DE ESTE PROYECTO SERÁ EL DE AUTOMATIZAR UN HOSPITAL, Y GENERAR LAS CITAS DE PACIENTES, EL LABORATORIO Y EL CARNET DEL PACIENTE EN FORMA AUTOMÁTICA, EL SISTEMA DEBE TENER LA CAPACIDAD DE MANEJAR TODO TIPO DE CONSULTAS EN CUANTO A LOS PACIENTES Y QUIMICOS, REALIZAR las INSCRIPCIONES, BAJAS Y

REGISTRO DE LOS PACIENTES EN EXISTENCIA ASÍ COMO EL MANTENIMIENTO SOBRE ESTOS.

MODIFICACIONES DE LOS PACIENTES, TAMBIÉN DEBE DE LLEVAR UN

Page 6: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

EL SISTEMA DEBE DE PROPORCIONAR LAS SIGUIENTES CARACTER~STICAS:

0 SEGURIDAD: LA INFORMACIÓN DELICADA SOLO DEBE PODER SER MANEJADA POR LA PERSONA INDICADA.

0 CONFIABILIDAD: EL SISTEMA DEBE DE PROPORCIONAL INFORMACI~N VERÍDICA.

FUNCIONALIDAD: DEBE DE CUMPLIR CON LOS REQUISITOS ESTABLECIDOS AL INICIO DEL PROYECTO.

ESTE TAMBIÉN PROPORCIONARA UN SUBSISTEMA DE AYUDA EN LÍNEA Y UNA BARRA DE MENSAJES QUE INDICARAN LAS FUNCIONES DISPONIBLES A EJECUTAR Y EL CóMO HACERLO, TODO ESTO CON EL .FIN DE HACER MÁS FÁCIL su MANEJO.

Page 7: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

ENTREVISTAS.

EL PRIMER PASO EN EL DESARROLLO DEL PROYECTO SON LAS ENTREVISTAS CON LOS USUARIOS. UN USUARIO ES AQUEL (O AQUELLOS) PARA QUIENES SE CONSTRUYE EL SISTEMA; DE ESTAS SE ESTAJ3LECI6 LO SIGUIENTE PARA

EL DEPARTAMENTO DE ARCHIVO:

0 ALTAS DE PACIENTES QUE TENDRAN DERECHO AL USO DE LOS SERVICIOS HOSPITALARIOS.

o MODIFICAR DATOS DE LOS PACIENTES COMO EL CAMBIO DE DIRECCION, TELBFONO ETC.

EL DEPARTAMENTO DE LABORATORIO

0 AÑADIR REACTIVOS AL LABORATRIO

0 EQUIPOS 0 NUEVOS 0 MODIFICAR 0 BAJAS

PROGRAMAR CONSULTAS

0 GENERAL 0 OBSTETRICIA 0 GINECOLOGIA

QUIROFANO PERINATOLOGIA

Page 8: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

DESARROLLO DEL PROYECTO

EL DESARROLLO DE UN SISTEMA DE COMPUTACI~N IMPLICA VARIAS ETAPAS Y DIVERSOS ESPECIALISTAS PARA CADA UNA DE ESTAS, S E N D 0 EL ESTABLECIMIENTO DE LOS TIEMPOS DE TERMINO POSTERIOR AL ANALISIS.

LA GRÁFICA DE GANT SIGUIENTE MUESTRA LOS TIEMPOS PARA EL DESARROLLO DE ESTE PROYECTO

TIEMPO MESES

ACTIVIDAD

Investigación y estudio de las herramientas

Entrevistas con usuarios

Anfdisis y Requerimientos de prueba

DiseAo y programación

Pruebas

Documentación

Generación de Manuales

Generación del Reporte

Presentación

Instalación y pruebas del usuario

Liberación del sistema

O 1 2 3 4 5 6

m

O

Page 9: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

CONSULTAS A LA BASE DE DATOS.

0 PACIENTES 0 PORNOMBRE 0 POR CLAVE

0 REACTIVOS 0 TIPO

0 DOCTORES 0 HORARIOS 0 ESPECIALIDADES

GRABAR TODOS LOS DATOS ACERCA DEL HOSPITAL

GENERAR LOS REPORTES

o DEL AREA DE RECURSOS HUMANOS o DE LA AERA ADMINISTRATIVA o DE LOS DOCTORES o DE LOS REACTIVOS DE LABORATORIO o DE LOS PACIENTES 0 DE BODEGA

EL SIGUIENTE PASO ES EL MODELADO DEL SISTEMA QUE DESEA EL USUARIO. UN SISTEMA DE PROCESO DE DATOS INVOLUCRA TANTO DATOS COMO EL PROCESO.

LA HERRAMIENTA QUE UTILIZAMOS PARA DESCRIBIR LA TRANSFORMACIóN DE ENTRADAS A SALIDAS DE UN DIAGRAMA DE FLUJO DE DATOS.

LOS DIAGRAMAS DE FLUJOS DE DATOS CONSISTEN EN PROCESOS, AGREGADOS DE DATOS, FLUJOS Y TERMINADORES:

0 LOS PROCESOS SE REPRESENTAN POR MEDIO DE CÍRCULOS O “BURBUJAS”, EN EL DIAGRAMA. REPRESENTAN LAS DIVERSAS FUNCIONES INDIVIDUALES QUE EL SISTEMA LLEVA A CABO. LAS FUNCIONES TRANSFORMAN ENTRADAS EN SALIDAS.

Page 10: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

LOS FLUJOS SE MUESTRAN POR MEDIO DE FLECHAS CURVAS. SON LAS CONEXIONES ENTRE LOS PROCESOS(FUNCI0NES DEL SISTEMA) Y REPRESENTAN LA INFORMACIóN QUE DICHOS PROCESOS REQUIEREN COME ENTRADA O LA INFORMACIÓN QUE GENERAN COMA SALIDA.

0 LOS AGREGADOS DE DATOS SE REPRESENTAN POR MEDIO DE DOS LhEAS PARALELAS O MEDIANTE UNA ELIPSE. MUESTRAN COLECCIONES (O AGREGADOS) DE DATOS QUE EL SISTEMA DEBE RECORDAR POR UN PERIODO DE TIEMPO.

0 LOS TEMINADORES MUESTRAN LAS ENTIDADES EXTERNAS CON LAS QUE EL SISTEMA SE COMUNICA.

A CONTINUACIóN SE MUESTRAN LOS DIAGRAMAS DE FLUJOS DE DATOS PARA LOS DEPARTAMENTOS:

Page 11: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

LISTA DE EVENTOS

EVENTOS DE PROCESO

Citas Generación de reportes

EVENTOS DE MANTENIMIENTO

Inventario Altas, bajas de pacientes Cambio de situación del paciente:

Baja temporal 0 Especialidad o Domicilio 0 Resello

PROCESO DE CONSULTA

Búsqueda de pacientes Búsqueda de doctores Búsqueda de reactivos

Page 12: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

HOSPITAL.

Informacion de Pacientes

Informacion de Doctores

Informacion de Reactivos

Informacion de Citas

Page 13: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

altas

Inf. Eouino ~ Bodega - Bodega Cambios

altas

Inf. Doctores . Base doc. ___L

Base doc. Cambios ~

Nuevo Paciente Archivo Archivo

Page 14: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

DIAGRAMAS DE FLUJOS DE DATOS

EVENTOS DE PROCESO

Inf. Pacientes Cita Archivo

Inf. Paciente - Inf. Laboratori-

Estudios Clinicos

EVENTOS DE MANTENIMlENTO

altas

l n f Reactivos - Cambios

Laboratorio

Page 15: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

A continuación se presenta el diagrama de flujo de datos para el sistema bibliotecario

Altas b

Bajas

Cambios +

pacientes

doctores ______,

Pacientes

Laboratorio _____*

Nombre Paciente ~

N Folio Archivo

Apellidos

Reactivos T . Inf. Doctores

Actualuacion de reactivos

Mantenimieto Actualizacion de inf. - de doctores

Page 16: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

- Nuevos Datos . Hodificacih - (-) ( carnet

Archivo Del Paciente \ -

Paciente 7. N Folio

Apellido -b Búsquedas

Buscar Reactivos -- Laboratori

Page 17: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Por ultimo tenemos las consultas, que tienen el siguiente diagrama

N Folio Busqueda

Reactivo

doctor Archivo Resultado de consulta

Reporte

Estos diagramas aunque útiles, solo resaltan un aspecto principal de un sistema: sus hnciones. Necesitamos conocer a detalle la información que debe contener el sistema, y no solo eso, sino también la relación que existe entre los agregados de información. Para esto necesitamos lo que se conoce como diagrama de entidad-relacion. En base a nuestros diagramas anteriores podemos obtener nuestras entidades que son las que se muestran a continuación.

Page 18: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Para el caso del mantenimiento del laboratorio tenemos el siguiente diagrama.

Infomacion del Reactivo

__I_____)

Eliminar

Laboratorio

Infomacion del Reactivo

Reactivo ___)

t

E Laboratorio

Page 19: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Como puede verse este proceso se encargara de dar de alta, de bajq hacer cambios y consultar datos referentes a los Pacientes.

Proceso Citas:

Datos de Paciente N-Folio Validar

Fecha de Citas y Consultorios Registrar

Cita

Colocacion - Doctores

Consultorio

Page 20: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Para tener una mejor visión del sistema, es necesario desglosar cada burbuja de tal forma que la fbnción que cada proceso realiza sea perceptible. Se muestran a continuación la “explosión” de cada una de ellas. Para la esfera titulada paciente tenemos el siguiente diagrama.

Infomacion del nuevo paciente

Insertar

E Paciente N-Folio ___)

Infonnacion del paciente

4

Page 21: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Lista de entidades:

Paciente. N Folio Nombre Dirección Teléfono Enfermedad Fecha de cita

Fecha de hospitalización Consultorios Reactivos Recursos humanos administración

Doctor Nombre teléfono

especialidad

Con base en las entidades anteriores y en los diagramas de flujos de datos podemos obtener las relaciones entre las distintas entidades:

Relaciones y cardinalidad Las líneas que atraviesan las líneas de unión entre las diferentes entidades representan relaciones 1 a 1 y las 2 líneas oblicuas indican relaciones de muchos.

Doctores I t t

t Paciente I

Notamos en este diagrama que existen relaciones uno a muchos entre la entidad doctor y la entidad cita, y la relación paciente cita es uno a uno.

Page 22: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

f

S c. - ,

L

ff

. . .

Page 23: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

PLANTEAMIENTO DEL PROBLEMA.

AUTOMATIZACION DEL HOSPITAL.EN EL HOSPITAL ISEM DEL VALLE DE CHALCO SÉ ENCONTRO UNA DUPLICACION DE DATOS; AS1 COMO UNA LENTITUD Y FALTA DE CONTROL EN LOS RECURSOS MATERIALES y HUMANOS.

ESTUDIOS DE FACTIBILIDAD.

SE LLEVO A CABO UN ESTUDIO DE LAS POSIBILIDADES TANTO DE RECURSOS HUMANOS (QUE TANTO CONOCIMIENTO SÉ TENIA CON COMPUTADORAS. QUE TANFACTIBLE ES QUE LA GENTE SE PRESTARA PARA ENSEÑARLE Y NO BIERAN CON MIEDO EL CAMBIO) Y MATERIALES(C0NQUE EQUIPOS SE CONTABA QUE PRESUPUESTO SÉ HIV ADESIGNAR), POR LO QUE SE LLEGO A LA CONCLUSION QUE SÉ COLOCARIA UNA RED EN TODO EL HOSPITAL UN SISTEMA BASADO EN VISUAL BASIC.

ANALISIS Y DISEÑO

SÉ ANALISO LAS PARTES DEL SISTEMA Y COMO SE RELACIONAN ENTRE SIPOR LO QUE; EL SISTEMA ESTA COMPUESTO POR UN CONJUNTO DE SUBSISTEMAS, LOS CUALES ESTARAN CONTROLANDO CADA AREA COMO POR EJEMPLO LABORATORIO, CITAS, ARCHIVO Y CONTROL DE REACTIVOS; AVIENDO DENTRO DE ESTOS SUBSISTEMAS OTROS SUBSISTEMAS. POR EJEMPLO CITAS. QUE CONTIENE, CITAS GINECOLOGIA, HURGENCIAS Y ECT.

Page 24: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

CON ESTO SE LOGRARA UN MAYOR CONTROL DEL SISTEMA NO PERDIENDO DE VISTA LA INTERRELACION CON LAS DISTINTAS PARTES QUE LO COMPONEN.

EL SISTEMA SE LLEVARA A CAE30 CON UN SISTEMA CELULAR, ES DECIR PUDEN TENER MAS DE DOS NODO LAS BASES DE DATOS.

FUNCION DEL DBA(S0FWARE) SEGURIDAD DEL SISTEMA

0 INTEGRIDAD DE LA BASE DE DATOS 0 CONTROL DE CONCURRENCIA Y SINCRO NIZACION FUNCION DEL DBA(PERS0NA)

DEFONE LOS ESQUEMAS DE LA B.D. DA MANTENIMIENTO DE LOS ESQUEMAS

0 DEFINE LOS NIVELES DE SEGURIDAD PARA CADA USUARIO 0 DEFINE LOS PROCEDIMIENTOS DE RESPALOD DE LA INFORMACION

CODIFICACION.

SE ANEXA EL PROGRAMA CON ALGUNAS DE LAS IMÁGENES DESARROLLADAS PARA EL SISTEMA

Page 25: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

USO Y MANTENIMIENTO.

PARA MINIMIZAR EL COSTO DEL CICLO DE VIDA DEL SOFWARE ES NECESARIO A) LAS PARTES DEL SISTEMA CORRESPONDAN CON LAS PARTES DEL

PROBLEMA. B) LA FORMA ESTRUCTURADA EN LA QUE SE RELACIONAN LAS PARTES

DEL SISTEMA SE CORRESPONDA CON LA FORMA EN QUE SE RELACIONA LAS PARTES DEL PROBLEMA

PARA LOGRAR ESTOS OBJETIVOS SE NECESITA TENER UN DISENO LOGICO Y FISICO BIEN ELABORADO.

EL DISEÑO LOGICO: SE DETERMINA A UN NIVEL GENERAL EXCLUSIVAMENTE A PARTIR DE LA ESTRUCTURA DEL PROBLEMA, DANDO EL MODELO LOGICO.

DISEÑO FISICO: SE SACA APARTIR DEL MODELO LOGICO EJEMPLO

PROBLEMA

LOGICO

DISEÑO FISICO

MODELO FISICO

Page 26: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

#”----

1

1 I

# # #

Page 27: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant
Page 28: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

DATOS BEHERALES DEL PAUEHTE

Nombre

Page 29: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant
Page 30: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant
Page 31: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

3 3

3

3 3

3 3

JJ

Page 32: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant
Page 33: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant
Page 34: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

6 8

1 3

H

cp I d -.

8 o a

-.L

w N

c

Page 35: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

1

11

Page 36: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

I

f f-

k

k

7 ? x

Page 37: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Y

11

"

Y

I I g G ' Y - 9

Page 38: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

k 1

Page 39: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant
Page 40: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

HOSPITAL.VBP

Código de modulo uno. Private Sub Abrir-Click() Form2.Show End Sub

Private Sub Nuevo-Click() 'FRMLAB.Data1 .Recordset.MoveLast 'FRMLAFlDatal .Recordset.AddNew FRMLAB.Show 1

End Sub

Código datos personales.

Private Sub Textl-Change()

End Sub

Private Sub Commandl-Click()

folio = FRMLAB.Text5.Text

Form2.Text44.Enabled = False Datal .Recordset.Update FRMLAB.Hide 'Call h-TipoExamen.inicia1iza1-2

b-TipoExamen.Show 1 End Sub

Private Sub Comand2_Click() End End Sub

Private Sub Fom-Initialize0 FRMLAB.Data1.Recordset.MoveLast FRMLAB.Data1 .Recordset.AddNew

Page 41: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

End Sub

Private Sub Text2-LostFocus() Dim nombre As String nombre = Text2.Text If nombre = "" Then MsgBox "el nombre no ha sido llenado" Text2.SetFocus End If

End Sub

Private Sub Text5-LostFocus() Dim folio As String, Y As Boolean folio = Text5.Text Y = IsNumeric(fo1io)

If Y = False Then MsgBox "el numero de folio es incorrecto" Text5.SetFocus End If

End Sub

Public Sub inicializar() FRMLAB.Data1 .Recordset.MoveLast FRMLAB.Data1 .Recordset.AddNew

End Sub

Código de examen de orina.

Private Sub Conunand-SI-Click() Datal .Recordset.Update frm - Ex-orina.Hide

End Sub

Public Sub inicio() h-Ex-orina.Data1 .Recordset.MoveLast frm-Ex-orina.Data1 .Recordset.AddNew h-Ex-orina.Text1 .Enabled = True k-Ex-orina.Text1 .Text = folio h-Ex-orina.Text1 .Enabled = False

End Sub

Page 42: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Código tipo de examen.

Private Sub Commandl-Click() Dim respuesta As Integer

respuesta = MsgBox("¿Desea agregar otro registro?", vbYesNo) If respuesta = 6 Then Me.Hide Call FRML,AB.inicializar Unload fnn-TipoExamen FRMLAB.Visible = True

Else Unload h-TipoExamen Unload FEWLAB End If

End Sub

Private Sub Checkl-Click() Call Frm-Hematl .inicio

Frm-Hemat 1 .Show 1

Check1 .Enabled = False

End Sub

Private Sub Check2_Click() Call h-Hemat2.inicio frm-Hemat2.Show 1 Check2.Enabled = False End Sub

Private Sub Check3_Click() Call fm-Hemat3.inicio h-Hemat3 .Show 1 Check3 .Enabled = False

End Sub

Private Sub Check4_Click() Call fnn-Ex-orina.inicio h-Ex-orina.Show 1 Check4.Enabled = False

End Sub

Private Sub CheckS_Click()

Page 43: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Call h-q-clinica.inicio fi-m q_clinica.Show 1 Che<kS.Enabled = False

End Sub

Public Sub inicializar20

Checkl .Enabled = True Check2.Enabled = True Check3.Enabled = True Check4.Enabled = True Check5.Enabled = True 'Checkl .Value = O 'Check2.Value = O 'Check3.Value = O 'Check4.Value = O 'Check5.Value = O

End Sub

Private Sub Form-Initialize0 Checkl .Enabled = True Check2.Enabled = True Check3.Enabled = True Check4.Enabled = True Check5.Enabled = True Checkl .Value = O Check2.Value = O Check3 .Value = O Check4.Value = O Check5.Value = O

End Sub

C6digo de biometria.

Private Sub Command-SI-Click() Datal .Recordset.Update Unload Fm-Hemat 1 'Frm - Hemat 1 .Hide

End Sub

Private Sub Checkl-Click() Text1 .Enabled = True

Page 44: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Text2.Enabled = True End Sub

Private Sub Check2_Click() Text3 .Enabled = True Text4.Enabled = True Text5 .Enabled = True Text6.Enabled = True Text7.Enabled = True Text8.Enabled = True Text9.Enabled = True TextlO.Enabled = True Textl 1 .Enabled = True Textl2.Enabled = True

End Sub

Private Sub SSTabl-Click(PreviouTab As Integer) Dim X As Integer X = SSTab1.Tab I f X = l O r X = 2 O r X = 3 O r X = 4 T h e n

Textl .Visible = False Text2.Visible = False Text3.Visible = False Text4.Visible = False Text5.Visible = False Text6.Visible = False Text7.Visible = False Text8,Visible = False Text9.Visible = False Textl 0.Visible = False Textl 1 .Visible = False Textl2.Visible = False

End I f

If X = O Then Textl .Visible = True Text2.VisibLe = True Text3 .Visible = True Text4.Visible = True Text5.Visible = True Text6.Visible = True Text7.Visible = True Text8.Visible = True Text9.Visible = True TextlO.Visible = True Textl 1 .Visible = True Textl2.Visible = True

End If

Page 45: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

End Sub

Private Sub Form_Initialize() ' Frrn Hematl .Datal .Recordset.MoveLast ' FmIHematl .Datal .Recordset.AddNew ' Fm-Hematl .Text44.Enabled = True ' Fm-Hematl .Text44.Text = folio 'Frrn-Hematl .Text44.Enabled = False End Sub

Public Sub inicio() Fm-Hematl .Datal .Recordset.MoveLast Fm-Hematl .Datal .Recordset.AddNew Frm-Hematl .Text44.Enabled = True Frm-Hematl .Text44.Text = folio Fm-Hematl .Text44.Enabled = False

End Sub

Código química clínica.

Private Sub Command-SI-Click() Datal .Recordset.Update frm_eclinica.Hide

End Sub

Public Sub inicio() h-q_clinica.Datal .Recordset.MoveLast b-q_clinica.Datal .Recordset.AddNew h-q_clinica.Textl .Enabled = True h-q-clinica.Text1 .Text = folio h-q_clinica.Textl .Enabled = False

End Sub

Código para transfuncionales.

Private Sub Command-SI-Click()

Datal .Recordset.Update frm-Hemat3.Hide End Sub

Page 46: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Public Sub inicio() h-Hemat3.Datal .Recordset.MoveLast h-Hemat3.Datal .Recordset.AddNew h-Hemat3.Textl .Enabled = True fm-Hemat3.Textl .Text = folio h-Hemat3.Textl .Enabled = False

End Sub

Código de prueba de hematología.

Private Sub Command-SI-Click() Datal .Recordset.Update Unload h-Hemat2 'h-Hemat2.Hide

End Sub

Public Sub inicio() h-Hemat2.Datal .Recordset.MoveLast h-Hemat2.Datal .Recordset,AddNew h-Hemat2.Textl .Enabled = True h-Hemat2.Textl.Text = folio fm-Hemat2.Textl .Enabled = False

End Sub

HOSPITAL.VBP

Page 47: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

W C o n t r o I de Expedientes b 1

Page 48: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

ARCHIVOYBP CODIGO DE HISTORIA CLINICA PERINATAL. Option Explicit Private Sub Fom-Load() 'NOTA: PARA CARGAR UNA FORMA NO SE REQUIERE SU NOMBRE If Not Conectar-Base-Datos Then MsgBox "No se puede conectar a la base de datos. Verifique la ruta", -

Else 'El Datacontrol se enlaza a la consulta de selección Obste 'creada en la base de datos en Access Set datHCP.Recordset = bdArchivo.OpenRecordset("SELECT * from HCP")

vbcritical + vbOKOnly, "ERROR

End If End Sub Private Sub cmdNuevo-Exp-Click() 'El evento Click del control cmdAlta

End Sub 'en la base de datos 'Al crear un Nuevo Expediente se invoca a la Función que 'Limpia o reemplaza todos los campos del registro actual- 'por campos vacíos Private Sub cmdNuevo-Click() txtFolio.Enabled = False 'Deshabilita el cuadro de texto del folio

Limpia 'Se llama a la bnción que renova todos los cuadros de texto, 'los botones de opción y selección

End Sub Private Sub cmdEliminar-Exp-Click() If txtFolio = '"' Then 'No se puede eliminar un registro si se

MsgBox "Debe especificar un número de 'FOLIO"', vbCritical, "Error"

Alta 'invoca la función que crea nuevos registros

'para evitar que el usuario lo pueda modificar

'desconoce su Folio

Else Baja txtFolio.Text 'Llama a b c i ó n de eliminación de registros Exit Sub

End If End Sub Private Sub cmdAbrir-Exp-Click() If txtFolio = '"' Then 'No se puede elimiiar un registro si se

MsgBox "Debe especificar el número de 'FOLIO"', vbcritical + vbOKOnly, "Error" Exit Sub Else Consulta txtFolio.Text 'Llamada a la bnción Consulta Exit Sub

'desconoce su Folio

End If End Sub 'Guarda cualquier cambio realizado al registro actual Private Sub cmdGuardar-Exp-Click() If txtFolio = '"' Then 'No se puede eliminar un registro si se

Page 49: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

'desconoce su Folio MsgBox "Debe especificar un número de 'FOLIO"', vbcritical, "Error"

Else Modificacion txtFolio.Text Exit Sub

End If End Sub 'Esta hnción solo es temporal ya que se utilizara 'Crystal Reports para imprimir los informes de las consultas Private Sub cmdlmprimir-Click()

On Error GoTo ErrorHandler Configura el controlador de errores. Debug.Print "Datos en la tabla actual antes de ejecutar la consulta 'I

Exit Sub ErrorHandler: MsgBox "NO se puede Imprimir el expediente. Verifique conexiones y configuración de seu impresora" - , vbcritical + vbOKCance1, "Error de Impresión" Resume Next 'i? End Sub 'Procedimiento que termina la ejecución del programa Private Sub cmdSalir-Click() Dim Mensaje, Estilo, Título, Respuesta, MiCadena Mensaje = "¿Desea Guardar los cambios realizados antes de salir?" Define el mensaje. Estilo = vbYesNoCance1 + vbcritical + vbDefaultButton1 Defííe los botones. Título = "Importante" Define el título. Respuesta = MsgBox(Mensaje, Estilo, Título) If Respuesta = vbYes Then

MiCadena = "Sí" Modificacion txtFolio.Text

ElseIf Respuesta = vbNo Then MiCadena = "No"

Unload fi-mHCP Base 'Descarga el formulario actual fimMenuFormas&how 'Muestra el formulario principal Else: Respuesta = vbCancel 'Regresa al formulario actual MiCadena = Tancelar" Exit Sub

End If End Sub Private Sub datHCP-Reposition()

End Sub 'Esta función controla mediante el DATA CONTROL 'el despliegue del contenido de los campos del registro actual 'traidos desde las tablas específicas de este formulario. Sub Muestra-HCP() If datHCP.Recordset.RecordCount <= O Then

datHCP.Caption = "No existe tal registro" MsgBox "No existe tal registro" Limpia

Muestra-HCP

Page 50: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Exit Sub End If datHCP.Caption = I' Registro It & datHCP.Recordset.Abso1utePosition + 1 & I t de 'I & - datHCP.Recordset.RecordCount

'Tabla 1 : Datos Generales (HCP-Dat-Gen) txtFolio.Text = datHCP.Recordset("hcp-dat-gen.folio") txtNom-Pac.Text = Format(datHCP.Recordset("Nomqac"), It>")

txtApe-Pat-Pac.Text = Format(datHCP.Recordset("apeqatgac"), 'I>")

txtApe-Matgac.Text = Format(datHCP.Recordset("ape_rnatgac"), If>'')

Msk-Fecha-Nac(O).Text = IIf(IsNull(datHCP.Recordset("Fecha--Nac")), - 'I " / /-I1, Format(datHCP.Recordset("Fecha-Nac"), "MM/DD/YYYY''))

txtCalle.Text = IIf(IsNull(datHCP.Recordset("Cal1e-No")), - "'I, Format(datHCP.Recordset("Cal1e-No"), ">"))

txtCol.Text = IIf(IsNull(datHCP.Recordset("Col")), - "", Fonnat(datHCP.Recordset("Col"), ">"))

txtLoc.Text = IIf(IsNull(datHCP.Recordset("Loc")), - "", Fonnat(datHCP.Recordset("Loc"), Ir>"))

txtMun(l).Text = IIf(IsNull(datHCP.Recordset("Mun")), - "", Format(datHCP.Recordset("Mun"), ">"))

txtTel.Text = IIf(IsNull(datHCP.Recordset("Tel")), - "", datHCP.Recordset("Te1"))

comEst.Text = Fonnat(datHCP.Recordset("Est"), ">") comEdo-Civ.Text = Format(datHCP.Recordset("Edo-Civ"), ">")

'Tabla 2: Antecedentes (HCP-Ante)

txtFam(O).Text = IIf(IsNull(datHCP.Recordset("F-otros")), -

txtPer(l).Text = IIf(IsNull(datHCP.Recordset("P-otros")), -

txt0 Ges.Text = IIf((IsNull(datHCP.Recordset("0-Ges")), -

txtO-Ab.Text = IIf(IsNull(datHCP.Recordset("O_Ab")), -

txt0 - Vag.Text = IIf(IsNull(datHCP.Recordset("O~Vag")), -

txtO_Nac-v.Text = IIf(IsNull(datHCP.Recordset("0-Nac-v")), _.

txtO-viv.Text = IIf(IsNull(datHCP.Recordset("0-Viv")), -

txtO-Par.Text = IIf(IsNull(datHCP.Recordset("0-Par")), -

txtO-Ces.Text = Ilf(IsNull(datHCP.Recordset("O_Ces")), -

txt0 - Nac-m.Text = IIf(IsNull(datHCP.Recordset("O-Nac_m")), -

cW-Diab.Value = IIf(IsNull(datHCP.Recordset("F-Diab")), O, 1) cW-Gem.Value = IIf(IsNull(datHCP.Recordset("F-Gem")), O, 1)

"", datHCP.Recordset("F-otros"))

"", datHCP.Recordset("p-otros"))

"", datHCP.Recordset("0-Ges"))

"", datHCP.Recordset("O_Ab"))

"", datHCP.Recordset("0-Vag"))

'"', datHCP.Recordset("0-Nac-v"))

"", datHCP.Recordset("0-Viv"))

"", datHCP.Recordset("O_Par"))

"", datHCP.Recordset("0-Ces"))

"", datHCP.Recordset("0-Nac-m"))

-

Page 51: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

chkF-Hip.Value = IIf(IsNull(datHCP.Recordset("F_Hip")), O, 1) chkF-TBC.Value = IIf(IsNull(datHCP.Recordset("F-TBCPulm")), O, 1) chW-CirPU.Value = IIf(IsNull(datHCP.Recordset("P-Ck-PU")), O, 1) cW-Diab.Value = IIf(IsNull(datHCP.Recordset("P-Diab")), O, 1) cW-1nf.Value = IIf(IsNull(datHCP.Recordset("P-Inf')), O, 1) chkP_TBC.Value = IIf(IsNull(datHCP.Recordset("P-TBC")), O, 1) chkP-Hip.Value = IIf(IsNull(datHCP.Recordset("P-Hip")), O, 1) cW-Inf.Value = IIf(IsNull(datHCP.Recordset("P-Id')), O, 1) chk0-nin-3p.Value = IIf(IsNull(datHCP.Recordset("O~nin~3p")), O, 1) chkO-rn2500.Value = IIf(IsNull(datHCP.Recordset("O_m2S00")), O, 1) chkO_gem.Value = IIf(IsNull(datHCP.Recordset(~'O~em")), O, 1) chk0-m-alsem.Value = IIf(IsNull(datHCP.Recordset("O~m~alsem")), O, 1) chkO-m-dl sem.Value = IIf(IsNull(datHCP.Recordset("O~m~d1 sem")), O, 1) mskEmb-ant.Text = IIf(IsNull(datHCP.Recordset("0-fin-aEmb")), -

".A-/- 'I, Format(datHCP.Recordset("O_fin_aEmb"), "MM/DDNYYY"))

'Tabla 3: Embaraza Actual (HCP-Emb-Act)

txtP-Ant.Text = IIf(IsNull(datHCP.Recordset("P-Ant")), -

txtTalla.Text = IIflIsNull(datHCP.Recordset("Talla")), -

mskFUM(O).Text = IIf(IsNull(datHCP.Recordset("FUM')), -

mskFPP( l).Text = IIf(IsNull(datHCP.Recordset("FPP")), -

mskVDRL,(O).Text = IIf(IsNull(datHCP.Recordset("VDRL")), -

mskHb( l).Text = IIf(IsNull(datHCP.Recordset("Hb")), -

"", datHCP.Recordset("P-Ant"))

"", datHCP.Recordset("Tal1a"))

" / /-It, Format(datHCP.Recordset("FUM"), "MM/DDIYYYY")l)

"AL." 'I, Format(datHCP.Recordset("FPP"), "MM/DDRYYYI'))

'I " I /-'I, Format(datHCP.Recordset("VDRL"), "MMIDDNYYY"))

".-L!" 'I, Format(datHCP.Recordset("Hb"), "MM/DDNYYY"))

chkEx-cn.Value = IIf(IsNull(datHCP.Recordset("Ex-cn")), O, 1) chkEx-mn.Value = IIf(IsNull(datHCP.Recordset("Ex-mn")), O, 1) chkEx-0d.Value = IIf(IsNull(datHCP.Recordset("Ex-od")), O, 1) chkPelv-n.Value = IIfOsNull(datHCP.Recordset("Pelv_n")), O, 1) cWap-n.Value = IIf(IsNull(datHCP.Recordset("Pap_n")), O, 1) chkColp-n.Value = IIf(IsNull(datHCP.Recordset("Co1p-n")), O, 1) chkCerv-n.Value = IIf(IsNull(datHCP.Recordset("Cerv-n")), O, 1) chkAntqre.Value = IIf(IsNull(datHCP.Recordset("Ant~re")), O, 1) chkSen.Value = IIf(IsNull(datHCP.Recordset("Sen")), O, 1) chkFum.Value = IIf(IsNull(datHCP.Recordset("Fuma")), O, 1) chkHosp(O).Value = IIqIsNull(datHCP.Recordset("Hosp")), O, 1) chkTras(O).Value = IIf(IsNull(datHCP.Recordset("Tras't)), O, 1)

comMes-la-ant(O).Text = IIf(IsNull(datHCP.Recordset("Ant-1 a")), -

comMes;?a-ant( l).Text = IIf(IsNull(datHCP.Recordset("Ant~2a")), -

comLug.Text = IIf(IsNull(datHCP.Recordset("Lug")),

"", Format(datHCP.Recordset("Ant-la"), ' Y ) )

"", Format(datHCP.Recordset("Ant-2a"), '5"))

"", Format(datHCP.Recordset("Lug"), " S ' ) ) -

Page 52: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

End Sub 'Esta función simplemente reemplaza todos los campos del registro 'actual por espacios vacios. Public Sub Limpia()

'Tabla HCP-Dat-Gen (Datos Generales) txtFolio.Text = '"' txtNom-Pac.Text = ""

txtApe-Pat-Pac.Text = "" txtApe-Matgac.Text = ""

txtCalle.Text = "" txtCol.Text = ""

txtLoc.Text = "" txtMun( l).Text = "I'

txtTel.Text = 'I"

comEst.Text = ""

comEdo-Civ.Text = "" Msk-Fecha-Nac(O).Text = " / / "

'TabIa HCP Ante (Antecedentes) chkF-Diab.%alue = False chkF-Gem.Value = False chkF-Hip.Value = False chkF"I'J3C.Value = False chkP_CirPU.Value = False chkP-Diab.Value = False chkP-1nf.Value = False cW-Tl3C.Value = False chkP Hip.Value = False chkP-1nf.Value = False chkO~nin-3p.Value = False chkO-m2500.Value = False chkO_gem.Value = False chk0 - - m alsem.Value = False chkO-m-dl sem.Value = False txtFam(O).Text = "" txtPer(l).Text = ""

txt0 Ges.Text = '"' txtOIAb.Text = "" txtO-Vag.Text = ""

txtO-Nac-v.Text = ""

txtO viv.Text = "" txtOIPar.Text = "" txtO-Ces.Text = "" txtO-Nac-m.Text = "" mskEmb-ant.Text = 'I / / "

'Limpia la tabla Embarazo Actual (HCP-Emb-Act) txtP-Ant.Text = "" txtTalla.Text = '"' mskFUM(O).Text = " / / 'I

Page 53: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

mskFPP(l).Text = / / mskVDRL(O).Text= " / / Ir

mskHb(l).Text = / / I'

chkEx-cn.Value = False chkEx-mn.Value = False chkEx-0d.Value = False chlcPelv-n.Value = False chkPap-n.Value = False chkColp-n.Value = False chkAntJre.Value = False chkSen.Value = False chkFum.Value = False chkHosp(O).Value = False chkTras(O).Value = False comMes-la-ant(O).Text = ''" comMes_2a_ant( l).Text = "" comLug.Text = It'' End Sub Function Alta() As Boolean Dim SQL As String 'Variable de Texto para armar las consultas Dim RS As Recordset Dim Folio As Integer On Error GoTo Cap-Error 'Antes de insertar los valores de los campos del nuevo registro 'en la tabla específica se obtiente el valor del último registro 'existente para que el nuevo registro tenga el último valor

Set RS = bdArchivo.OpenRecordset("se1ect max(foli0) as new-folio fiom HCP-DAT-GEN") Folio = RS("NEW-FOLIOtt) + 1 'Incremento sobre el valor numérico del último registro txtFolio.Text = Folio RS.Close 'Validación de algunos campos nulos cuando se da de ALTA If IsNull(txtFolio.Text) Or IsNull(txtNom-Pac.Text) - Or IsNull(txtApe-Pat-Pac.Text) Or IsNull(txtApe-Matgac.Text) Then Ms@ox "Debe proporcionar el FOLIO, el NOMBRE y los APELLIDOS del paciente", - vbInformation + vbOKOnly, "Error en de Actualización" Exit Function Else 'Tabla1 (Datos Generales) SQL = "Insert into HCP-DAT-GEN ('I 'Estos son los CAMPOS en los que SQL = SQL & "Folio 'I 'se incertarán los datos SQL = SQL & It7 Nom-Pac" SQL = SQL & 'I, Ape-Pat-Pac 'I

SQL = SQL & It, Ape-Mat-Pac I'

SQL = SQL & It7 Te1 I' SQL = SQL & It, Est I' SQL = SQL & It, Edo Civ SQL = SQL & It, FecGa-Nac "

SQL = SQL & 'I, Calle-No It

SQL = SQL & ", Col SQL = SQL & It, LOC

Page 54: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

SQL = SQL & 'I, Mun ) 'I

SQL = SQL & I' VALUES ('I 'Datos proporcionados por el usuario SQL = SQL & & Folio & 'I' I'

SQL = SQL & 'I , I" & fi-mHCPBase.txtNom-Pac & 'I' 'I SQL = SQL & , & fi-mHCP-Base.txtApe-Pat-Pac & 'I

SQL = SQL & 'I , "' & fr-mHCP-Base.txtApe-Matqac & "' 'I

SQL = SQL & 'I , "' & IIf(frmHCP-Base.txtTel.Text = "", "null", frmHCP-Base.txtTel) & "' 'I

SQL = SQL & 'I , ' I ' & fi-mHCP-Base.comEst.Text & 'I' 'I

SQL = SQL & 'I , 'I1 & WCP-Base.comEdo-Civ.Text & 'I1

SQL = SQL & 'I , 'I1 & IIf(frmHCP-Base.Msk-Fecha-Nac(0) = / / ' I , -

SQL = SQL & I t , I " & IIf(hnHCP-Base.txtCalle = -

SQL = SQL & , "' & IIf(frmHCP-Base.txtCo1 = "", -

SQL = SQL & 'I , ' I ' & IIf(fimHCP-Base.txtLoc = "", -

SQL = SQL & 'I , 'I1 & IIf(frmHCP-Base.txtMun( 1) = -

"NULL", Format(frmHCPBase.Msk-Fecha-Nac(O), "MM/DD¡YYYY")) & 'I

"Null", fi-mHCP-Base.txtCalle) & 'I1

"Null", frmHCPBase.txtCo1) & I" 'I

"Null", frmHCP-Base.txtLoc) & '"

"Null", frmHCP-Base.txtMun( 1)) & "I )"

bdArchivo.Execute SQL, dbFailOnError

'Tabla2 HCP-Ante (Antecedentes) SQL = "Insert into HCP-ANTE (I' 'Estos son los CAMPOS en los que SQL = SQL & "Folio It

SQL = SQL & 'I, F-Diab 'I 'se incertarán los datos SQL = SQL & ", F-TBC-Pulm SQL = SQL & , F-Hip SQL = SQL & ' I , F-Gem 'I

SQL = SQL & I' , P-Diab 'I

SQL = SQL & 'I , P-TBC SQL = SQL & 'I , P-Hip 'I

SQL = SQL & , P-Ck-PU SQL = SQL & , P-Inf 'I

SQL = SQL & I' , O-nin-3p 'I

SQL = SQL & , O-m2500 'I

SQL = SQL & 'I , O-gem 'I

SQL = SQL & 'I , O-m-alsem 'I

SQL = SQL & 'I y O-m-dl sem I'

SQL = SQL & 'I , F-otros I'

SQL = SQL & , P-otros I'

SQL = SQL & 'I , O-Ges I t

SQL = SQL & 'I , O-Ab 'I

SQL = SQL & y O-Vag 'I

SQL = SQL & , O-Par" SQL = SQL & 'I , O-Ces SQL = SQL & 'I , O-Nac-v 'I

SQL = SQL & I t , O-viv 'I

SQL = SQL & I' , O-Nac-m 'I

SQL = SQL & 'I , O-fin-aEmb )"

Page 55: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

SQL = SQL & 'I VALUES ('I 'Datos proporcionados por el usuario SQL = SQL & Folio SQL = SQL & I' , "' & frmHCP-Base.chkF-Diab & SQL = SQL & 'I , & frmHCP Base.chkF-TBC & "' I' SQL = SQL & 'I , & frmHCPIBase.chkF-Hip & I" 'I

SQL = SQL & , It' & frmHCP-Base.chkF Gem & "' " SQL = SQL & It ,"' & frmHCP-Base.chkPIDiab & 'I1 'I

SQL = SQL & 'I , 'I' & fmHCP-Base.chkP-TBC & "I I'

SQL = SQL & , ' I ' & frmHCP-Base.chkP-Hip & 'I' 'I

SQL = SQL & " , ''I & fimHCP-Base.chkP-CirPU & "I I'

SQL = SQL & 'I , "I & hnHCP-Base.chkP-Inf & "' SQL = SQL & 'I , 'I1 & frmHCP-Base.chkO-nin-3p & It' 'I SQL = SQL & 'I , & frmHCP-Base.chkO-rrl500 & ' Ir I'

SQL = SQL & 'I , "' & frmHCPBase.chk0-gem & 'I' SQL = SQL & 'I , "' & frmHCPBase.chk0-m-alsem & 'I

SQL = SQL & It , I" & WCP-Base.chk0-m-dlsem & I'

SQL = SQL & 'I , 'I1 & fimHCP-Base.txtFam(0) & "I It

SQL = SQL & , '" & MCPBase.txtPer(1) & "' SQL = SQL & 'I , & IIf(fimHCP-Base.txtO-Ges = "", "null", frmHCP Base.txt0-Ges) & I t 'I

SQL = SQL & 'I , 'I & IIf(frmHCP-Base.txt0 Ab = "", "NULL", frmHC%-Base.txtO-Ab) & I' 'I

SQL = SQL & 'I , & IIf(frmHCP-Base.txtO~Vag = "", "null", frmHCP-Base-txtO-Vag) & 'I

SQL = SQL & , I' & IIf(frmHCP-Base.txt0-Par = "", "null", fimHCP-13ase.txtO Par) & I t I'

SQL = SQL & , 'I & IIf(frmHCP-Base.tx@-Ces = "", "null", frmHCP-:Base.txtOICes) & 'I SQL = SQL & I' , I' & IIf(fmHCP-Base.tx@-Nac-v = '"', "null", frmHCP-Base.txtO-Nac_v) & I' 'I

SQL = SQL & , 'I & IIf(frmHCP-Base.txt0-viv = "", "null", frmHCP-Base.txtO-viv) & 'I I'

SQL = SQL & 'I , If & IIf(fimHCP-Base.tx~-Nac-m = "", ''null", frmHCP-Base.txt0-Nac-m) & I' 0

bdArchivo.Execute SQL, dbFailOnError

'Tabla 3: Embarazo Actual (HCP Emb-Act) SQL = ll1nsex-t into HCP-Emb-Act ('I

SQL = SQL & 'I Folio 'I

SQL = SQL & 'I, P-Ant 'I

SQL = SQL & 'I, Talla 'I SQL = SQL & ' I , FUM SQL = SQL & , FPP It

SQL = SQL & ' I , VDRL 'I SQL = SQL & ' I , Hb 'I

SQL = SQL & I' , Ex-CN 'I

SQL = SQL & , Ex-MN" SQL = SQL & ' I , Ex-Od I'

SQL = SQL & , Pelv-n 'I

SQL = SQL & 'I , Pap-n SQL = SQL & 'I , Colp-n SQL = SQL & 'I , Cerv-n It

SQL = SQL & ' I , Antqre 'I

SQL = SQL & , Ant-la

Page 56: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

SQL = SQL & 'I , Ant-2a 'SQL = SQL & 'I , VDK-Pos-Neg 'SQL = SQL & 'I , RH-Pos-Neg I'

SQL = SQL & 'I , Sen SQL = SQL & I' , Fuma" SQL = SQL & , Hosp 'I

SQL = SQL & It , Tras I'

SQL = SQL & 'I , Lug )I'

SQL = SQL & I' VALUES ('I 'Datos proporcionados por el usuario SQL = SQL & Folio SQL = SQL & , & IIf(fimHCP_Base.txP-Ant = "", "NULL", frmHCP-Base.txtP-Ant) & 'I

SQL = SQL & 'I , & IIf(frmHCP-Base.txtTa1la = '"', "NULL", fmHCP Base.txtTalla) & 'I

SQL = SQL & 'I , 'I & IIf(fbmHCP-Base.mskFUM(0) = I' / / , & Format(frmHCP-Base.mskFUM(O), ""/DD/YYYY") & ""') &. I'

SQL = SQL & I t , 'I & IIf(frmHCP-Base.mskFPP(1) = I ' / / 11 , llNullll, IIIII & Format(fimHCP-Base.mskFPP( l), ""IDDNYYY") & ""') & I' It

SQL = SQL & , 'I & IIf(frmHCP-Base.mskVDRL(0) = I' / / 11 , llNullll, 111ll & Format(fnnHCP-Base.rnskVDRL(O), "MM/DD/YYYY") & ""') & 'I 'I

SQL = SQL & 'I , & IIf(hHCP-Base.mskHb(1) := / / 'I "Null", '''" & Format(fmHCP-Base.mskHb( l), '"M/DD/YYYY") & '"") & 'I I'

SQL = SQL & 'I , 'I1 & frmHCP-Base.chkEx-cn & "' SQL = SQL & 'I , 'I' & frmHCP-Base.chkEx mn & 'I1 'I

SQL = SQL & I' , 'I' & frmHCP-Base.chkExIOd & "I

SQL = SQL & 'I , I " & MCP-Base.chkPelv-n & "' I' SQL = SQL & I t , "* & fi-mHCP-Base.chkPap-n & "' SQL = SQL & I' , "' & frmHCP-Base.chkColp-n & I'

SQL = SQL & 'I , '" & UCP-Base.chkCerv-n & I'

SQL = SQL & 'I , 'I1 & hnHCP-Base.chkAntgre & 'I' It

SQL = SQL & 'I , 'I & IIf(fhnHCP-Base.comMes-la-_ant(O) = ' I" , "NULL", ''''' & hHCP-Base.comMes-la-ant(0) & "'") SQL = SQL & 'I , & IIf(frmHCP-Base.comMes-2a~-ant(l) = "", "NULL", 11111 & frmHCP-Base.comMes-2a-ant( 1) & ""') 'SQL = SQL & 'I , 'I' & IIf(frmHCP-Base.optPos-VD=( l), False, True) & 'SQL = SQL & I' , 'I1 & IIf(frmHCPBase.optPos-RH(O), False, True) & "' SQL = SQL & 'I , & frmHCP-Base.chkSen & "' SQL = SQL & I' , 'I1 & frmHCP-Base.chkFum & "' 'I

SQL = SQL & I' , & frmHCP-Base.chkHosp(0) & 'I

SQL = SQL & , "' & fimHCP-Base.chkTras(0) & 'I1

SQL = SQL & I' , I' & IIf(frmHCP-Base.comLug = 'I1', -

- II llNullll, IIIII

"-.."-,

llNull)ll, 1111l & hHCP_Base.comLug & "')")

bdArchivo.Execute SQL, dbFailOnError 'Ejecuta instrucciones SQL de Acciones(Altas, Bajas)

MsgBox "Registro dado de ALTA", vbOKOnly, "Hoja Obstetrica" datHCP.Refresh 'Recupera el control el Datacontrol Exit Function

IfNot Err = 3022 Then MsgBox Err-Description, vbcritical, "ERROR@ Else

Cap Error: 'Captura de posibles errores en tiempo de ejecuación

Page 57: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

MsgBox "El Expediente ya existe (RECTIFIQUE...)", vbCritical, "ERROR" Exit Function

End If End If

End Function 'Recupera y muestra un registro Function Consulta(Fo1io As Integer) As Boolean txtFolio.Enabled = True 'El Datacontrol recupera el valor de todos los campos contenidos 'en la consulta OBSTE disefíada en Access para el registro especificado 'por HCP-DAT-GEN-FOLIO Set datHCP.Recordset = bdArchivo.OpenRecordset("SEL1ECT * from HCP WHERE HCP-BAT-GEN.FOLIO=" & Folio) End Function 'Esta función actualiza (modifica) el registro actual Function Modificacion(Folio As Integer) As Boolean Dim resultado As Recordset Dim bdkchivo As Database Dim SQL As String 'Validación de campos que no puede estar vacíos If IsNull(txtFo1io.Text) Or JsNull(txtNom-Pac.Text) - Or IsNull(txtApe-Pat-Pac.Text) Or IsNull(txtApe-Mht~ac.Text) Then MsgBox "Debe proporcionar el FOLIO, el NOMBRE y los APELLIDOS del paciente", -

Exit Function Else

vbhformation + vbOKOnly, "Error de Actualizacih"

'TABLA1 HCP-Dat-Gen (DATOS GENERALES) SQL = I' UPDATE HCP-DAT-GEN SQL = SQL & I' SET Nom-Pac = "' & fimHCP-Base.txtNom-Pac & "' 'I

SQL = SQL & ,Ape-Pat-Pac = 'I1 & smWCPBase.txtApe-Pat-Pac & "' I'

SQL = SQL & ,Ape-Mat-Pac = I t ' & fkmHCP-Base.txtApe-Matgac & 'I1

SQL = SQL & 'I ,Fecha-Nac = "' & Format(fmHCP-Base.Msk-Fecha-Nac(O), ""/DD/YYY Y 'I) & 'I'

SQL = SQL & *I ,Calle-No = "' & fimHCPBase.txtCal1e & 'I' 'I

SQL = SQL & 'I ,Col = "I & frmHCP-Base.txtCol& It' 'I

SQL = SQL & It ,Loc = 'I1 & fimHCP-Base.txtLoc & "' 'I

SQL = SQL & 'I ,Mun = It' & frmHCP-Base.txtMun( 1) & I" 'I

SQL = SQL & 'I ,Te1 = "' & frmHCPBase.txtTel8 "' SQL = SQL & 'I ,Est = 'I1 & fimHCP-Base.comEst & I" 'I

SQL = SQL & I' ,Edo-Civ = 'I' & fimHCP-Base.comEdo-Civ & '" I'

SQL = SQL & 'I Where HCP-DAT-GEN.Folio = 'I' & fknHCP-Base.txtFolio & I" I' 'Criterio de actualización

bdArchivo.Execute SQL, dbFailOnError

'Tabla 2 HCP-ANTE (Antecedentes)

SQL = "UPDATE HCP-ANTE 'I

SQL = SQL & "SET F-Diab = 'I1 & chkF-Diab.Va1ue & "I I'

Page 58: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

SQL = SQL & ",P Hip = "' & chkP-Hip-Value & "' I' SQL = SQL & ",PICirPU = I" & chW-CirPU.Value & '" 'I SQL = SQL & ",P-Inf = I" & cW-1nf.Value & 'I1 I'

SQL = SQL & ",O_nin_3p = ''I & chkO-nin-3p.Value & 'I1 'I

SQL = SQL & ",O-m2500 = "' & chkO-m2500.Value & 'I1

SQL = SQL & ",O gem = "' & chkO-gem.Value & SQL = SQL & vt,O~m-alsem = 111 & cW<O-m-alsem.\ralue 11t 1)

SQL = SQL & ",O-m-dlsem = "' & chk0-m-dlsern.Value & "" 'I SQL = SQL & ",F-otros = & txtFam(O).Text & "' 'I SQL = SQL & ",P-otros = 'I1 & txtPer(l).Text & 'I1

SQL = SQL & ",O-Ges= '" & txtO-Ges.Text & 'I' " SQL = SQL & ",O Ab= 'I1 & txtO-Ab.Text & 'I1 'I

SQL = SQL & '',OVag= & txtO-Vag.Text & SQL = SQL & ",O-Par= & bctOPar.Text & "' 'I SQL = SQL & ",O Ces= I" & txtO-Ces.Text & I'

SQL = SQL & ",OINac-v= 'I1 & txt0 Nac v.Text & 'I

SQL = SQL & ",O-viv= I" & txtO-viv.Text & "' 'I SQL = SQL & ",O-Nac-m= "' & txt0 Nac-m.Text & "' " SQL = SQL & ",O-fm-aEmb= "' & Format(mskEmb ant.Text, ""/DD/YYYY") & "' 'I SQL = SQL & "Where HCP - ANTE-Folio = " & txtF&o.Text &: 'I

"

bdArchivo.Execute SQL, dbFailOnError

SQL = "UPDATE HCP Emb Act SQL = SQL & SET P-AnF'l' & txtP-Ant.Text & It 'I

SQL = SQL & ",Talla="' & txtTalla.Text & "' I' SQL = SQL & ",FUM= "' & Format(mskFUM(O).Text, ""DDNYYY") & SQL = SQL & ",FPP= & Format(mskFPP( l).Text, ""/DD/YYYY") & "' SQL = SQL & ",VDRL = "' & Format(mskVDRL(O).Text, "MhWDD/YYYY") & ''I SQL = SQL & ",€I% = "' & Format(mskHb( l).Text, %4M/DD/YYYY") & "I "

SQL = SQL & ",Ex-cn= 'I' & chkEx-cn.Value & '" 'I SQL = SQL & ",Ex-mn = I" & chkEx-mn.Value & It

SQL = SQL & ",Ex-od = & chkEx 0d.Value & "' It SQL = SQL & ",Pelv-n= 111 & c w e l v n.Value & 111 11

SQL = SQL & ",pap-n= & cWap-i.Value & 11

SQL = SQL & ",Colp-n= *" & chkColp-n.Value & "I 'I

SQL = SQL & ",Antqre= If' & chkAntgre.Value & "' 'I SQL = SQL & ",Sen= & chkSen.Value & "' 'I SQL = SQL & ",Fum= "' & chkFum.Value & 'I

SQL = SQL & ",Hasp== 'I1 & chkHosp(O).Value & "' 'I SQL = SQL & ",Tras= I" & chkTras(O).Value & 'I' I' SQL = SQL & ",Ant-l a= ''I & comMes-1 a-ant(O).Text & ''I 'I SQL = SQL & ",Ant-2a= ''I & comMes-2a-ant( l).Text & "' 'I SQL = SQL & ",Lug= & comLug.Text & I" 'I

SQL = SQL & "Where HCP-EMB-ACT.Folio = I' & txtFolio.Text & I' 'I

bdArchivo.Execute SQL, dbFailOnError

MsgBox 'W'orme de Actualización: Registro Actualizado", vbInformation + vbOKOnly, - 'I Actualización de Expedientes Clinicos"

Page 59: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Exit Function End I f End Function 'Esta h c i ó n elimina permanentemente el registro actual Function Baja(Fo1io As Integer) As Boolean Dim SQL As String 'Variable de Texto para armar las consultas Dim Mensaje, Estilo, Título, Respuesta, MiCadena Mensaje = "Está seguro de querer ELIMINAR PERMANENTEMENTE este expediente" Defme el mensaje. Estilo = vbYesNo + vbcritical + vbDefaultButton2 Define los botones. Título = "Confirme ..." Define el título. Respuesta = Ms@ox(Mensaje, Estilo, Título) On Error GoTo Cap-Error I f Respuesta = vbYes Then El usuario eligid el b o t h Sí.

MiCadena = "Sí" Ejecuta las acciones siguientes

'Consultas de eliminación independientes para cada Tabla SQL = "DELETE FROM HCP-DAT-GEN WHERE Folio = & txtFolio & It

bdArchivo.Execute SQL, dbFailOnError

SQL = "DELETE FROM HCP-ANTE WHERE Folio = 'I & txtFolio & 'I bdArchivo.Execute SQL, dbFailOnError

SQL = "DELETE FROM HCP-EMB-ACT W E R E Folio = 'I & txtFolio & 'I bdArchivo.Execute SQL, dbFailOnError

MsgI3ox "Expediente Eliminado", vbInfonnation + vbOKOnly, - "Estado Actual del expediente"

datHCP.Refresh 'Recupera el control el Datacontrol Exit Function

Else El usuario eligió el botón No.

End If MiCadena = "No"

Exit Function

Cap-Error: I f Not Err = 3022 Then MsgBox Err.Description, vbcritical, "ERROR" Exit Function Else MsgBox "El Expediente no existe o ya fué eliminado (RECTIFIQUE...)", - vbhformation + vbOKOnly, "Intento de eliminacih" Exit Function

End If End Function Private Sub Fom-Unload(Cance1 As Integer) bdArchivo.Close 'Cierra la base de datos (la retira de la memoria) End Sub

Page 60: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

3 3

Page 61: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

HISTORIA OBTETRICIA

Option Explicit Private Sub Fom-Load() 'NOTA: PARA CARGAR UNA IFORMA NO SE REQUIERE SU NOMBRE If Not Conectar_Base-Datos Then

MsgBox "No se puede conectar a la base de datos. Verifique la ruta", - vbcritical + vbOKOnly, "ERROR"

Else 'El Datacontrol se enlaza a la consulta de selección Obste 'creada en la base de datos en Access Set datObste.Recordset = bdArchivo.OpenRecordset("SELECT * from Obste")

End If End Sub Private Sub cmdAlta-CLick() 'EL evento Click del control cmdAlta

Alta 'invoca la función que crea nuevos registros End Sub 'en la base de datos 'Al crear un Nuevo Expediente se invoca a la Función que 'Limpia o reemplaza todos los campos del registro actual- 'por campos vacíos Private Sub cmdNuevo-Exp-Click() txtFolio.Enabled = False 'Deshabilita el cuadro de texto del folio

Limpia 'Se llama a la función que renova todos los cuadros de texto, 'los botones de opción y selección

End Sub Private Sub cmdEliminar-Exp-Click() If txtFolio = '"I Then 'No se puede eliminar un registro si se

MsgBox "Debe especificar un número de 'FOLIO"', vbcritical, "Error"

'para evitar que el usuario lo pueda modificar

'desconoce su Folio

Else Baja txtFolio.Text 'Llama a función de eliminación de registros Exit Sub

End I f End Sub Private Sub cmdAbrir-Exp-Click() If txtFolio = I"' Then 'No se puede eliminar un registro si se

MsgBox "Debe especificar el número de 'FOLIO"', vbcritical -t. vbOKOnly, "Error" 'desconoce su Folio

Exit Sub Else

Consulta txtFolio.Text 'Llamada a la función Consultas de registros Exit Sub

End I f End Sub 'Guarda cualquier cambio realizado al registro actual Private Sub cmdGuardar-Exp-Click() I f txtFolio = "" Then 'No se puede eliminar un registro si se

Page 62: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

'desconoce su Folio MsgBox "Debe especificar un número de 'FOLIO"', vbcritical, "Error"

Modificacion txtFolio.Text Else

Exit Sub End I f

End Sub 'Esta función solo es temporal ya que se puede utilizar 'Crystal Reports para crear e imprimir los informes de las consultas Private Sub cmdImprimir-Click()

On Error GoTo ErrorHandler Configura el controlador de errores. Debug.Print "Datos en la tabla actual antes de ejecutar la consulta

Exit Sub ErrorHandler: MsgBox "No se puede Imprimir el expediente. Verifique conexiones y configuración de seu impresora" - , vbcritical + vbOKCancel, "Error de Impresión" Resume Next End Sub 'Procedimiento que termina la ejecución del programa Private Sub cmdSalir-Click() Dim Mensaje, Estilo, Título, Respuesta, MiCadena Mensaje = "¿Desea Guardar los cambios realizados antes de salir?" ' Define el mensaje. Estilo = vbYesNoCancel + vbcritical + vbDefaultButton1 ' Define los botones. Título = "Importante" Define el título. Respuesta = MsgBox(Mensaje, Estilo, Título) If Respuesta = vbY es Then

' Modificacion txtFolio.Text ElseIf Respuesta = vbNo Then

MiCadena = "Sí"

MiCadena = "NO"

Unload frm€Ioja-Obstetrica 'Descarga el formulario actual fimMenuFormas.Show 'Muestra el formulario principal Else: Respuesta = vbCancel 'Regresa al formulario actual MiCadena = "Cancelar" Exit Sub

End I f End Sub Private Sub datObste-Reposition0

End Sub 'Esta función es controla mediante el DATA CONTROL 'el despliegue del contenido de los campos del registro actual 'traidos desde las tablas específicas de este formulario. Sub Muestra-H-Obste() If datObste.Recordset.RecordCount <= O Then

datObste.Caption = "No existe tal registro" MsgBox "NO existe tal registro" Limpia

Muestra-H-Obste

Page 63: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Exit Sub End If 'Muestra el número de registro actual y el total existente datObste.Caption = Registro & dat0bste.Recordset.AbsoluteI'osition + 1 & -

de It & datObste.Recordset.RecordCount

'Tabla1 Obste-Dat-Gen (Datos Generales) txtFolio.Text = datObste.Recordset("OBSTE-DAT-GEN.folio")N txtNom-Pac.Text = Format(datObste.Recordset("Nomqac"), ">") txtApe-Pat-Pac.Text = Format(datObste.Recordset("apeqat_pac"), ">") txtApe-Matgac.Text = Format(datObste.Recordset("ape-matgac"), 'I>")

Msk-Fec-Nac.Text = IIfTIsNull(datObste.Recordset("Fecha-Nac")), - It " / I-", Fomat(datObste.Recordset("Fecha-Nac"), ""/DDIYYYY"))

txtCalle.Text = IIf(IsNull(datObste.Recordset("Calle~No")), - "", Format(datObste.Recordset("Cal1e-No"), ">"))

txtCol.Text = IIf(IsNull(datObste.Recordset("Col")), - "", Format(datObste.Recordset("Col"), ''>'I))

txtLoc.Text = IIfOsNull(datObste.Recordset("Loc")), - "", Format(datObste.Recordset("loc"), Ir>"))

txtMun( l).Text = IIf(IsNull(datObste.Recordset("Mun")), - "", Format(datObste.Recordset("Mun"), ">"))

'Tabla2 Obste-Exp-Urg (Exploraci6n en Urgencias) Msk-FecExp( 1) = IIf(IsNull(datObste.Recordset("Fecha_Exp")), -

MskYHoraExp(2).Text = IIf(IsNull(datObste.Recordset("Hora_E:x")), - ' I , Format(datObste.Recordset("Fecha-Exp"), "MMDDNYYY"))

t L ~ L "

"- 'I, Format(datQbste.Recordset("Hora-Exp"), "hh:mn~ WPM")) 11 .

txtInf-Exp(O).Text = IIf(IsNull(datObste.Recordset("1nf-Exp")),, -

txtTA.Text = IIf(IsNull(datObste.Recordset("TA")), -

txtPulso.Text = IIf(IsNull(datObste.Recordset("Pulso")), -

txtTemp.Text = IIf(IsNull(datObste.Recordset("Temp")), -

txtGesta.Text = IIf(IsNull(datObste.Recordset("Gesta")), -

txtPara.Text = IIf(IsNull(datObste.Recordset("Para")), -

txtAbort.Text = IIf(IsNull(datObste.Recordset("ab")),

txtCesa.Text = IIf(IsNull(datObste.Recordset("Ces")), -

txtEdad.Text = IIf(IsNull(datObste.Recordset("Edad)), -

txtICD.Text = IIf(IsNull(datObste.Recordset("Cont-Dol")), -

"", datObste.Recordset('Tnf-Exp"))

"", datObste.Recordset("TA"))

"", datObste.Recordset("Pu1so"))

"", datObste.Recordset("Temp"))

"", datObste.Recordset("Gesta"))

"", datObste.Recordset("Para"))

"", datObste.Recordset("Ab"))

"", datObste.Recordset("Ces"))

"", datObste.Recordset("Edad"))

"", datObste.Recordset("Cont-Dol"))

-

Page 64: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

mskFUM = IIf(IsNull(datObste.Recordset("HrsFUM")), -

"AL" ' I , Format(datObste.Recordset("HrsFUM"), "MWDDIYYYY"))

mskFPP = IIfTIsNull(datObste.Recordset("FPP")), - " " I I-", Format(datObste.Recordset("FPP"), "MMIDDNYYY"))

txtSem-Ges.Text = IIf(IsNull(datObste.Recordset("Gesta")), -

txtFon-Ut.Text = IIf(IsNull(datObste.Recordset("T Uter")), -

txtTon-Ut.Text = IIf(IsNull(datObste.Recordset("F-Uter")), -

"", datObste.Recordset("Gesta"))

"", datObste.Recordset("T-Uter"))

"", datObste.Recordset("F-Uter"))

-

chkEdema.Value = IIf(IsNull(datObste.Recordset("Ederna")), O, 1) chkSang.Value = IIf(IsNull(datObste.Recordset("Sang")), O, 1)

'Tabla3 Obste-Cerv-Memb (Cervix/membranas/ ) ' P e n d i e n t e

End Sub 'Esta función simplemente reemplaza todos los cuadros de texto 'del registro actual por espacios vacios. Public Sub Limpia()

'Tabla : Datos Generales (HCP-Dat-Gen) txtFolio.Text = "'I

txtNom-Pac.Text = ""

txtApe-Pat-Pac.Text = "" txtApe-Matqac.Text = ""

Msk-Fec-Nac.Text = I' I I "

txtCalle.Text = ""

txtCol.Text = "" txtLoc.Text = '"' txtMun( l).Text = ""

'Tabla 2: Exploraci6n en Urgencias Msk-FecExp(1) = " I I '' Msk_HoraExp(2).Text = " : I'

txtInf-Exp(O).Text = "" txtTA.Text = 'I"

txtPulso.Text = ""

txtTemp.Text = "" txtGesta.Text = "" txtPara.Text = "" txtAbort.Text = ""

txtCesa.Text = "" txtEdad-Text = "'I

txtICD.Text = "" mskFUM=" / I I'

mskFUM= '' I I I'

txtSem-Ges.Text = ""

Page 65: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

txtFon-Ut.Text = ""

txtTon-Ut.Text = '"' chkEdema.Value = False chkSang.Value = False

'Tabla3 Obste-Cew-Memb (Cervix/membranas/ ) ' P e n d i e n t e End Sub Function Alta() As Boolean Dim SQL As String 'Variable de Texto para mar las consultas Dim RS As Recordset Dim Folio As Integer On Error GoTo CapError 'Antes de insertar los valores de los campos del nuevo registro 'en la tabla específica se obtiente el valor del último registro 'existente para que el nuevo registro tenga el último valor

Set RS = bdArchivo.OpenRecordset("se1ect max(fo1io) as new-folio from OBSTE-Dat-Gen") Folio = RS("NEW FOLIO") + 1 'Incremento sobre el valor num&ico del último registro txtFolio.Text = Folio RS.Close 'Campos elegidos para que siempre tengan algún dato cuando se (da de ALTA If IsNull(txtFo1io.Text) Or IsNull(txtNom-Pac.Text) - Or IsNull(txtApe-Pat-Pac.Text) Or IsNull(txtApe-Matgac.Text) Then MsgBox "Debe proporcionar el FOLIO, el NOMBRE y los APELLIDOS del paciente", - vbInformation + vbOKOnly, "Error en de Actualización" Exit Function Else 'Tabla1 OBSTE-Dat-Gen SQL = "Insert into OBSTE-Dat-Gen ('I 'Datos proporcionados por el usuario SQL = SQL & " Folio SQL = SQL & 'I, Nom-Pac 'I

SQL = SQL & 'I, Ape-Pat-Pac 'I

SQL = SQL & 'I, Ape-Matqac I'

SQL = SQL & ' I , Fecha-Nac" SQL = SQL & 'I, Calle-No "

SQL = SQL & ", Col 'I

SQL = SQL & 'I, LOC SQL = SQL & ", Mun )"

SQL = SQL & It VALUES ('I 'Datos proporcionados por el usuario SQL = SQL & Folio SQL = SQL & I' , "I & Moja-ObstetricatxtNom-Pac & 'I' I'

SQL SQL & 'I , 'I1 & Moja-0bstetrica.txtApe-Pat-Pac & "' I'

SQL = SQL & I' , "I & smHoja-0bstetrica.txtApe-Matqac & *'I 'I

SQL = SQL & It , '" & IIf(hnHCP-Base.Msk-Fecha-Nac(0) = 'I- / / ", - "NULL", Format(fmHCP-Base.Msk-Fecha-Nac(O), "MM/DD/YYYY1')) & "' "

SQL = SQL & It , 'I' & 1IflfnnHCP-Base.txtCalle = "", - "Null", hHCP-Base.txtCalle) & ''I

Page 66: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

SQL = SQL & 'I , 'I1 & IIf(frmHCP-Base.txtCo1 = '"', - "Null", fmHCPBase.txtCo1) & 'It I'

SQL = SQL & 'I , 'I' & IIf(frmHCP-Base.txtLoc = "", -

SQL = SQL & 'I , "' & IIf(frmHCP-Base.txtMun( 1) = "", - "Null", fimHCP-Base.txtLoc) & ''I

"Null", fimHCP-Base.txtMun( 1)) & 'I1 )"

bdArchivo.Execute SQL, dbFailOnError 'Ejecuta instrucciones SQL de Acciones

'Tabla2 OBSTE-Exp-Urg SQL = Ynsert into OBSTE-Exp-Urg ('I 'Datos proporcionados por el usuario SQL = SQL & "Folio 'I

SQL = SQL & ' I , Fecha-Exp" SQL = SQL & ' I , Hora-Exp 'I

SQL = SQL & ", Inf-Exp" SQL = SQL & 'I, TA 'I SQL = SQL & 'I, Pulso 'I

SQL = SQL & 'I, Temp SQL = SQL & ", Gesta 'I

SQL = SQL & 'I, Para" SQL = SQL & 'I, Ab 'I SQL = SQL & 'I, Ces I r

SQL = SQL & It, Edad 'I SQL = SQL & 'I, Cont-Dol It

SQL = SQL & 'I, HrsFUM" SQL = SQL & ' I , FPP 'I SQL = SQL & 'I, TUter SQL = SQL & 'I, F-Uter 'I

SQL = SQL & 'I , Edema 'I

SQL = SQL & ' I , Sang )"

SQL = SQL & VALUES ('I 'Datos proporcionados por el usuario SQL = SQL & Folio

SQL = SQL & 'I , '" & IIf(fmHoja-0bstetrica.Msk-FecExp( 1) = 'I / / ' I , - "NULL", Format(fmHoja-0bstetrica.Msk - FecExp( I), "MU/B)D/YYYY")) & 111

SQL = SQL & , ''' & IIf(frmHoja~Obstetrica.Msk~HoraExp(2) = 'I : 'I, - "NULL", Format(fimHoja~Obstetrica.Msk~HoraExp(2), "hh:m AMPM")) & 'I' It

SQL = SQL & 'I , "' & fimHoja_Obstetrica.txtIxtInf_Exp(O) & "I I'

SQL = SQL & , & Moja-0bstetrica.txtTA & It SQL = SQL & 'I , & Moja-0bstetrica.txtPulso & I' 'I

SQL = SQL & 'I , 'I & hHoja-0bstetrica.txtTemp.Text & 'I 'I

SQL = SQL & I' , 'I & M o j a 0bstetrica.txtGesta.Text & 'I 'I

SQL = SQL & 'I , & frmHoja~Obstetrica.txtPara & 'I SQL = SQL & 'I , & Moja-0bstetrica.txtAbort & 'I

SQL = SQL & 'I , I' & Woja-Obstetrica.txtCesa & 'I 'I

Page 67: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

SQL = SQL & 'I , ''I & IIf(fmHoja-0bstetricatxtEdad.Text = "", "null", Moja-0bstetrica.txtEdad) & I" SQL = SQL & 'I , 'I & fimHoja-Obstetrica.MICD.Text & "' 'I

SQL = SQL & I' , "' & IIf(hHoja-0bstetrica.mskFUM = It / / 'I, - "NULL", Format(fimHoja-Obstetrica.mskFUM, "MMDDiY'lrTYy")) & '"

SQL = SQL & " , 'I' & IIf(€imHoja-Obstetrica.mskFPP = / i/ I), - "NULL", Format(fimHoja-Obstetrica.mskFPP, ""/DD/YYYY")) & "' "

SQL = SQL & " , & Woja-Obstetrica.txtFon-Ut & I' 'I SQL = SQL & I' , I' & IIf(fimHoja-Obstetrica..txtTon-Ut.Text = "", "null", fmHoja-0bstetrica.txtTon-Ut) & 'I 'I SQL = SQL & 'I , 'I1 & Moja-0bstetrica.chkEdema & "I 'I

SQL = SQL & " , "' & Moja-0bstetrica.chkSang & "' )"

bdArchivo.Execute SQL, dbFailOnError 'Ejecuta instrucciones SQL de AccionesfAltas, Bajas, etc.)

MSgSox "Registro dado de ALTA", vbOKOnly, "Hoja Obstetrica" datObste.Refresh 'Recupera el control el Datacontrol Exit Function

Cap-Error: 'Captura de posibles errores en tiempo de ejecuación If Not Err = 3022 Then MsgBox Err.Description, vbCritica1, "ERROR" Else

Exit Function End If End If

MsgBox "El Expediente ya existe (RECTIFIQUE...)", vbcritical, "ERROR"

End Function 'Recupera y muestra un registro Function Consulta(Fo1io As Integer) As Boolean txtFolio.Embled = True 'El Datacontrol recupera el valor de todos los campos contenidos 'en la consulta OBSTE disefiada en Access para el registro especificado 'en Obste-DAT-GEN.FOLI0 Set datObste.Recordset = bdArchivo.OpenRecordset("SELE:CT * from OBSTE WHERE Obste DAT-GEN.FOLIO=" & Folio) End Function 'Esta función actualiza los campos del registro actual Function Modificacion(Fo1io As Integer) As Boolean Dim bdArchivo As Database 'Variable para guardar el es reslutado de la consulta Dim SQL As String 'Variable para armar las consultas 'Validación de campos que no puede estar vacíos If IsNuH(txtFoIio.Text) Or IsNull(txtNom-Pac.Text) - Or IsNull(txtApe-Pat-Pac.Text) Or IsNull(txtApe-Matqac.Text) Then MsgBux "Debe proporcionar el FOLIO, el NOMBRE y los APELLIDOS del paciente", -

Exit Function EIse

vbInformation + vbOKOnly, "Error de Actualización"

Page 68: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

'TABLA1 HCP-Dat-Gen (DATOS GENERALES) SQL = "UPDATE OBSTE-DAT-GEN I'

SQL = SQL & It SET Nom-Pac = In & frmHoja-0bstetrica.txtNom-Pac & 'I' 'Conjunto de selección SQL = SQL & 'I, Ape-Pat-Pac = 'I' & Moja-ObstetricatxtAp-Pat-Pac & '" SQL = SQL & ", Ape-Mat-Pac = "' & fí"Ioja-Obstetrica.txtApe-Matgac & "' 'I SQL = SQL & ", Fecha-Nac = "I & Format(frmHoja-Obstetrica.Msk_Fec-Nac, "MMIDDNYYY") & 'IV I)

SQL = SQL & 'I, Calle = "' & fmHoja-0bstetrica.txtCalle & 'I1 "'

SQL = SQL & ", LOC = I" & fimHoja-Obstetrica.txtLoc & ''I 'I

SQL = SQL & 'I, Col = It' & fkmHoja-0bstetrica.txtCol & "I

SQL = SQL & It, Mun = '" & hHoja-Obstetrica.txtMun( 1) & ''I Ir SQL = SQL & " WHERE Folio = "' & fimHoja-Obstetricatolio & "' " 'Criterio de actualizacih

bdArchivo.Execute SQL, dbFaiIOnError 'Ejecución de la consulta

MsgBox "Informe de Actualización: Registro ActuaIizado", vbhformation + vbOKOnIy, - I' Actualizacibn de Expedientes Clínicos" Exit Function

End If End Function 'Esta función elimina permanentemente el registro actual Function Baja(Folio As Integer) As Boolean Dim SQL As String 'Variable de Texto para armar las consultas Dim Mensaje, Estilo, Título, Respuesta, MiCadena Mensaje = "E& seguro de querer ELIMINAR PERMANENTEMENTE este expediente" Define el mensaje. EstiIo = vbYesNo + vbcritical + vbDefaultButton2 Define los botones. Título = " C o n f í e ..." Define el titulo.

Respuesta = MsgBox(Mensaje, Estilo, Título)

On Error GoTo Cap-Error

If Respuesta = vbYes Then El usuario eligió el botón Si. MiCadena = "Sí" Ejecuta las acciones siguientes

'Consultas de eliminación independientes para cada Tabla SQL = "DELETE FROM OBSTE-DAT-GEN WHERE Folio = I' & txtFolio & 'I 'I

bdArchivo.Execute SQL, dbFailOnError

SQL = "DELETE FROM OBSTE-EXP_URG WHERE Folio = " & txtFolio & 'I " bdArchivo.Execute SQL, dbFailOnError

SQL = "DELETE FROM Obste-Gem-Memb WHERE Folio == 'I & txtFolio & 'I It

bdArchivo.Execute SQL, dbFailOnError

MsgBox "Expediente Eliminado", vbInformation + vbOKOnly, - "Estado Actual del expediente"

Page 69: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

datObste.Refresh 'Recupera el control el Datacontrol Exit Function

Else ' E1 usuario eligió el botón No.

End If MiCadena = "NO"

Exit Function

Cap-Error: If Not Err = 3022 Then MsgBox Err.Description, vbcritical, "ERROR' Exit Function Else MsgBox "El Expediente no existe o ya €ué eliminado (RECTIFIQUE...)", - vbInformation + vbOKOnly, "Intento de eliminación" Exit Function

End If End Function

Private Sub Form-Unload(Cance1 As Integer)

End Sub bdArchivo.Close 'Cierra la base de datos (la retira de la memoria)

Page 70: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

o

Page 71: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

LOGIN.

Option Explicit

Public LoginSucceeded As Boolean

Private Sub cmdCanceI-CIick() 'establece la variable global a false 'para indicar un fallo en el inicio de sesión LoginSucceeded = False End

End Sub

Private Sub cmdOK-Click() 'comprueba la contraseña correcta If txtPassword = " U M " Then

'sitúe cirdigo aquí para indicar que 'se conoce ¡a contraseña 'lo más fácil es establecer una variable global LoginSucceeded = True Unload Me

MsgBox "Contras&a no válida, vuelva a intentarlo", , "Inicio de sesi6n" txtPassword.SetFocus SendKeys "fHome)+(End)"

Else

End If End Sub

Page 72: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant
Page 73: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

3 2

3 z O

3 7

3 3

Page 74: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

9 z o

m $3

4 m o P F

3 3

1771

3 3 z o E

Page 75: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

MENU

Option Explicit 'Carga Ia Forma de la Hoja Obstetrica Private Sub cmdCargar-HO-Glick() MsgBOx "Base de Datos y Formulario en proceso de disefio", vbhformation + vbOKOnly, "Mensje del programador.. . 'I hMenuFormas.Hide frmHoja-0bstetrica.Show End Sub 'Carga la Forma de la Solicitud de Atención Médica Private Sub cmdCargar_SAM-CIick() MsgBox "Base de Datos y Formulario en proceso de diseiio", vbhformation + vbOKOnly, "Mensje del programador ..." fimMenuFomas.Hide hSoi-Atencion-Med.Show End Sub 'Carga la Forma de la Historia Clinica Perinatal Private Sub cmdcargar-HCP-Click() MsgElox "Base de Datos y Formulario en proceso de-diseiio", vbhfmat ion + vbOKOnly, "Mensje del programador ..." frmMenuFormas.Hide fimHCP-Base.Show End Sub Private Sub cmdFin-Click() Unload M e n u F o r m a s End End Sub

Option Explicit

Private Sub cmdAlta-Click() Alta End Sub

Private Sub Form-Load() 'NOTA: PARA CARGAR UNA FORMA NO SE REQUIERE SU

I f Not Conectar-Base-Ms Then 'Osea si Conectstr_&ase-Datos=False MsgEbx W O se puede conectar a la base de datos. Verifique la ruta", -

Else

NOMBRE

vbCritical+ vBOKOnly, "ERROR"

Page 76: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

'El Datacontrol se enlaza a la consulta de selección Obste 'creada en la base de datos en Access Set datSAM.Recordset = bdArchivo.OpenRecordset("SELECT * fkom SAM")

End I f End Sub Private Sub cmdNuevo-Exp-CIick() txtFolio,Enabled = False 'Deshabilita el cuadro de texto del folio

Limpia 'Se Hama a la fbnci6n que renova todos los cuadros de texto, 'los botones de opción y selección

End Sub Private Sub cmdElimínar-Exp-Click() If txtFolio = "" Then 'No se puede eliminar un registro si se

MsgBox "Debe especificar un número de 'FOLIO"', vbCritica1, ''Error"

'para evitar que el usuario lo pueda modificar

'desconoce su Folio

Else Baja txtFolio.Text 'Llama a función de eliminación de registros Exit Sub

End I f End Sub Private Sub cmdConsulta-Click() 'abre el expediente cuyo folio se especifique If WFolio = "" Then 'No se puede eliminar un registro si se

MsgEkx "Debe especificar un número de 'FOLIO", vwritical, "Error" 'desconoce su Folio

Exit Sub Else Consulta txtFolio.Text Exit Sub

End Tf End Sub

'Guarda cuakpier cambio miizado al registro actual Private Sub cmdGuardar_Exp-Click() If WFolio = "" Then 'No se puede eliminar un registro si se

Msg3ox "Debe especificar un número de 'FOLIO"', vbCriticd, "Error'' 'desconoce su Folio

Else Modificacion txtFolio.Text Exit Sub

End I f End Sub 'Esta función solo es temporal ya que se utilizará 'Crystal Reports para imprimir los informes de las consultas Private Sub cmdImprimir-Click()

(31 Error GoTo ErrorEandíer ' Configura el controlador de errores. Debug.P&t "Datos en la tabla actual antes de ejecutar la ConsuIta 'I

Exit Sub ErrorHandler: MsgBox "No se puede Imprimir el expediente. Verifique conexiones y configuración de seu impresora" -

Page 77: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

, vbCritica1 + vbOKCance1, "Error de Impresi6n" Resume Next 'i? End Sub Private Sub cmdSdir_Cliek() Dim Mensaje, Estilo, Titulo, Respuesta, MiCadena Mensaje = "&Desea Guardar los cambios realizados .antes de salir?" ' Define el mensaje. Estilo = vbYesNoCancel + vbCritid + vbDefaultButton1 Define los botones. Titulo = "Importante" Define el título.

Respuesta = Ms@ox(Mensaje, Estilo, Título)

If Respuesta = vbYes Then El usuario eligi6 el both Si. MCadena = "Si" ' Modificacion txtFoiio.Text

MiCadena = "No" Unload hSoI-Atencion-Med fimMenuFormas.Show Else: Respuesta = vbCancel

Elsdf Respuesta = vbNo Then

MiCadena = "Can.celar" Exit Sub End I f End Sub Private Sub datSAh4-Reposition()

End Sub 'Esta.funcián controla mediante el DATA CONTROL 'el despliegue del cwtenido de los campos del registro actual 'traidos desde las tablas específicas de este formulario. Sub Muem-SAM() If datSAM.Recurdset.RecurdCount G= O Then

datSAM.Caption = "No existe tal registro" MsgElox "NO existe tal registro" Limpia

Exit Sub End I f datSAM.Caption = Registro 'I & datSAM.Recordset.AbsoluteF'osition + 1 & de 'I & - datSAM.Recordset.RecordCount

Muestra-SAM

'Tabla 1 Sol-At-Med-DAT-GEN (Datos Generales) txtFolio.Text = datSAM.Recordset("Sol-At-Med_DATGEN.folio") txtNom-Pac.Text = Format(datSAM.Recordset("Nomgac"), 'I>")

txtApe-Pat-Pac.Text = Format(datSAM.Recordset("apeqatgac"), ">'I)

txtApe-Matqac.Text = Format(datSAM.Recordset("ape-mat$ac"), ">") Msk - Fecha-Nac(O).Text = IIf(IsNull(datSAM.Recordset("Fech~~-Nac")), - " " / /-", Format(datSAM.Recordset("Fecha-Nac"), "MM/DD/YYYY'I))

txtCalle.Text = IIf(IsNull(datSAM.Recordset("Cal1e-No")), - "", Format(datSAM.Recordset("Cal1e-No"), 'Y'))

txtCol.Text = IIf(IsNull(datSAM.Recordset("Col")), - '"'. Format(datSAM.Recordset("Col"), ">''))

Page 78: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

txtLoc.Text = Ilf(IsNull(datSAM.Recordset("Loc")), -

txtMun( l).Text = IIf(IsNull(datSAM.Recordset("Mun'')), -

txtTel.Text = IIf(IsNull(datSAM.Recordset("Tel")), -

"", Format(datSAM.Recordset("Loc"), ">"))

"", Format(datSAM.Recordset("Mun"), 'I>"))

"", datSAM.Recordset("Te1"))

comEst.Text = Format(datSAM.Recordset("Est"), ">")

End Sub 'Esta función simplemente reemplaza todos los campos del registro 'actual por espacios vacios. Public Sub Limpia()

'Tabla Sol-atMed-Dat-Gen (Datos Generales) txtFolio.Text = "" txtNom-Pac.Text = ""

txtApe-Pat-Pac.Text = ''" txtApe-Matgac.Text = ""

txtCalle.Text = "" txtCol.Text = ""

txtLoc.Text = "" txtMun( l).Text = '"' txtTel.Text = ""

comEst.Text = ""

Msk-Fecha-Nac(O).Text = " / / 'I

End Sub 'SECCIóN DE FUNCIONES PARA EL MANEJO DE LA BASE DE DATOS Function Alta() As Boolean Dim SQL As String 'Variable de Texto para armar las consultas Dim RS As Recordset Dim Folio As Integer On Error GoTo Cap-Error 'Antes de insertar los valores de los campos del nuevo registro 'en la tabla específica se obtiente el valor del último registro 'existente para que el nuevo registro tenga el último valor

Set RS = bdArchivo.OpenRecordset("se1ect max(fo1io) as new folio from Sol-At-Med-DAT-GEN") Folio = RS("NEW FOLIO") + 1 'Incremento sobre el valor nurrkrico del último registro txtFolio.Text = Folio RS.Close 'Validación de algunos campos nulos cuando se da de ALTA If IsNull(txtFo1io.Text) Or IsNull(txtNom-Pac.Text) - Or IsNull(txtApe-Pat-Pac.Text) Or IsNull(txtApe-Matgac.Text) Then Msgl3ox "Debe proporcionar el FOLIO, el NOMBRE y los APEiLLIDOS del paciente", - vbInformation + vbOKOnly, "Error en de Actualización" Exit Function Else SQL = "Insert into Sol-At-Med-DAT-GEN (" 'Estos son los campos en los que SQL = SQL & 'I Folio " 'se incertarán los datos

-

Page 79: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

SQL = SQL & 'I, Nom-Pac" SQL = SQL & 'I, Ape-Pat-Pac "

SQL = SQL & ", Ape-Mat-Pac "

SQL = SQL & ' I , Calle-No "

SQL = SQL & ",Col 'I SQL = SQL & ", LOC " SQL = SQL & 'I, Mun " 'SQL = SQL & 'I, sex " SQL = SQL & ", Te1 " SQL = SQL & 'I, Est I'

SQL = SQL & ", FechaNac ) 'I

SQL = SQL & " VALUES ('I 'Datos proporcionados por el usuario SQL = SQL & " ''I & Folio & "' " SQL = SQL & " , 'I' & frmSol-Atencion-Med.txtNom-Pac & "' I'

SQL = SQL & " , 'I' & fhnSol_Atencion-Med.txtApe-PatPac ¿k "' " SQL = SQL & " , '" & h S o l Atencion Med.txtApe-Matqac & 'I' " SQL = SQL & " , ''I & fhnSo<AtencionIMed.txtCalle & "' 'I SQL = SQL & 'I , ''I & frmSol-Atencion-Med.txtCo1 & 'I' "

SQL = SQL & " , 'I' & frmSol-Atencion-Med.txtLoc & "' " SQL = SQL & " , 'I' & frmSol-Atencion-Med.txtMun( 1) & "' " 'SQL = SQL & 'I , '" & IIf(fhnSo1-Atencion-Med.optFemenino.Value, "F", "M") & "I 'I

SQL = SQL & " , 'I' & hSol-Atencion-Med.txtTe1 & 'I' "

SQL = SQL & 'I , 'I1 & hSol-Atencion-Med.comEst & '" " SQL = SQL & I' , I " & Format(frmSo1-Atencion-Med.MskFecha-Nac(O), "hIM/DD/YYYY") & "' 1 I'

bdArchivo.Execute SQL, dbFailOnError 'Ejecuta instrucciones SQL de Acciones(Altas, Bajas)

MsgBox "Registro dado de ALTA", vbOKOnly, "Hoja Obstetrica" datSAM.Ref'resh 'Recupera el control el Datacontrol Exit Function

Cap-Error: If Not Err = 3022 Then MsgBox Err.Description, vbcritical, "ERROR' Else MsgBox "El Expediente ya existe (RECTIFIQUE...)", vbcritical, "ERROR1 Exit Function

End If End I f

End Function 'Recupera y muestra un registro Function Consulta(Fo1io As Integer) As Boolean txtFolio.Enabled = True 'El Datacontrol recupera el valor de todos los campos contenido's 'en la consulta OBSTE diseflada en Access para el registro especificado 'por SAM-DATGEN.FOLI0 Set datSAM.Recordset = bdArchivo.OpenRecordset("SEL,ECT * from SAM WHERE OBSTE-DAT-GEN.FOLIO=" & Folio) End Function

Page 80: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

'Esta función actualiza los campos del registro actual Function Modificacion(Fo1io As Integer) As Boolean Dim resultado As Recordset Dim bdArchivo As Database Dim SQL As String 'Validación de campos que no puede estar vacíos If IsNull(txtFolio.Text) Or IsNull(txtNom-Pac.Text) - Or IsNull(txtApe-Pat-Pac.Text) Or IsNull(txtApe-Matqac.Text) Then MsgBox "Debe proporcionar el FOLIO, el NOMBRE y los APELLIDOS del paciente", -

Exit Function Else 'TABLA1 HCP-Dat-Gen (DATOS GENERALES) SQL = "UPDATE Sol-At-Med-DAT-GEN SQL = SQL & I' SET txtNom-Pac = "I & frmSol-Atencion-Meti.txtNom-Pac & I""

SQL = SQL & 'I , txtApe-Pat-Pac = "' & frmSoI-Atencion-Med.txtApe-Pat-Pac & '"" SQL = SQL & I' , txtApe-Mat-Pac = I" & h S o l Atencion Med.txtApe-Matqac & ''''' SQL = SQL & 'I , txtCalle = ''I & frmSol-Atencioi-Med.txt&lle & ""' SQL = SQL & , txtCol = '" & bSol-Atencion-Med.txtCo1 & '"" SQL = SQL & , txtLoc = 'It & fimSol-Atencion-Med.txtLoc & 'l'l' SQL = SQL & 'I , txtMun( 1) = "I & frmSo1-Atencion-Med.txtMun( 1) & ""' SQL SQL & 'I , Msk-FechaNac(0) = '" & Format(frmSo1-Atencion-Med.Msk-Fecha-Nac(O), "MMIDDNYYY") & SQL = SQL & , OptFemenino= ''I - & IIf(frmSo1-Atencion-Med.optFemenino.Value = True, optFemenino, OptMasculino = True) & llfll SQL = SQL & I' , txtTel = & b S o l Atencion-Med.txtTe1 & "'" 'Nota: hay un error en la recuperación de optMasculino.value SQL = SQL & WHERE Folio = It & frmSol-Atencion - Med.bctFolio &

vblnformation + vbOKOnly, "Error de Actualización"

bdArchivo.Execute SQL, dbFailOnErtor On Error GoTo O

MsgBox "Registro Actualizado", vbInformation, "Hoja Obstetrica" Exit Function RESUELVEME: 'Captura de posibles errores en tiempo de ejecuación

If Not Err = 3022 Then MsgBox Err.Description, vbcritical, "ERROR" Else MsgBox "El Expediente ya existe (RECTIFIQUE...)", vbcritical, "ERRORt Exit Function

End If End If

End Function

Function Baja(Fo1io As Integer) As Boolean Dim Response Dim Cadena Dim SQL As String 'Variable de Texto para armar las consulta

MsgBox "Está seguro de querer ELIMINAR PERMANENTEMENTE este expediente", - vbcritical + vbDefaultButton2 + vbYesNo, "Confirme ..."

I f Response = vbNo Then

Page 81: DEPARTAMENTO DE INGENIERIA ELECTRICA INGENIERIA …148.206.53.84/tesiuami/UAM1824.pdf · el objetivo de este proyecto serÁ el de automatizar un hospital, ... la grÁfica de gant

Cadena = "No" Exit Function

Else Cadena = "Si" SQL = "DELETE FROM Sol-At-Med-DAT-GEN WHERE 'Folio = I' & txtFolio & "' " bdArchivo.Execute (SQL), dbFailOnError MsgBox "Expediente Eliminado", vbInformation, "Hoja Obstetrica"

End I f End Function Private Sub Form-Unload(Cance1 As Integer) bdArchivo.Close 'Cierra la base de datos (la retira de la memoria) End Sub

CODIGO DE CONEXIÓN DE BASE DE DATOS Public bdArchivo As Database Public Function Conectar_Base-Datos() As Boolean Conectar-Base-Datos = True On Error GoTo RESUELVEME 'Ruta temporal de la base de datos Set barchivo = OpenDatabase("A:\Archivo.MDB", False, False, "'I)

Exit Function RESUELVEME: If Err = 3024 Then ' I f database file not found. MsgBox "No se pudo Conectar la Base de Datos", vbcritical, ".ERROR' Else Conectar Base-Datos = False

Msgl3ox l?rr.Description, vbcritical, "ERROR' End If End Function