You are on page 1of 140

UNIVERSIDAD TECNICA DE MANAB

FACULTAD DE CIENCIAS INFORMTICAS

TESIS DE GRADO
Previa a la obtencin del ttulo de:

ANALISTA EN SISTEMAS
TEMA:
DESARROLLO DE UN SISTEMA INFORMATICO QUE PERMITA AUTOMATIZAR EL INGRESO DE LA HISTORIA CLNICA DE PACIENTES, PARA EL CONSULTORIO MDICO DEL DR. JOS INTRIAGO ANDRADE.

AUTORA:

ANA MARA ARGUELLO RUBIRA


DIRECTOR DE TESIS Ing. Esthela San Andrs Laz Mg. Sc.

PORTOVIEJO MANAB ECUADOR 2010

CERTIFICACIN

Ing. Esthela San Andrs Laz, certifica que la presente tesis ha sido elaborada por la Seora Ana Mara Arguello Rubira bajo mi direccin, control y seguimiento. El presente trabajo rene los requisitos de una investigacin y programacin concluida mediante el esfuerzo, dedicacin y constancia; tanto en la parte terica, investigativa y prctica, lo que permite otorgar su originalidad.

Para constancia y validez, firmo el documento.

Atentamente;

_______________________
Ing. Esthela San Andrs Laz DIRECTORA DE TESIS

UNIVERSIDAD TCNICA DE MANAB


FACULTAD DE CIENCIAS INFORMTICAS ESCUELA DE COMPUTACIN

TEMA:
Desarrollo de un Sistema Informtico que permita automatizar el ingreso de la Historia Clnica de pacientes, para el consultorio mdico del Dr. Jos Intriago Andrade.

TESIS DE GRADO
Sometida a consideracin del Tribunal de Revisin y Sustentacin, legalizada por el Honorable Consejo Directivo como requisito previo a la obtencin del Ttulo de:

ANALISTA EN SISTEMAS

APROBADA POR:

___________________________ Ing. Carlos A. Intriago Zambrano

________________________ Ing. Jimmy Zambrano Acosta

__________________________ Ing. Cristhian Torres Morn

DECLARATORIA DE AUTORIA

Ana Mara Arguello Rubira, declara que la presente tesis constituye requisito previo la obtencin del ttulo de Analista en Sistemas bajo la supervisin de la Ing. Esthela San Andrs Laz.

Autorizo al centro de informacin de la Universidad para que el presente trabajo se convierta en un documento de lectura, de acuerdo a los requisitos establecidos por la institucin. Finalmente expresamos que el presente trabajo investigativo ha sido de mi autora, razn por la cual cedo los derechos a la Universidad Tcnica de Manab.

________________________________ Sra. Ana Mara Arguello Rubira Autor

AGRADECIMIENTO

En la vida hay momentos de cambios donde hay que tomar decisiones y emprender nuevos propsitos. Yo estoy en ese instante de cambio, evolucin, aprendizaje y superacin gracias a mi esposo, merecedor de mi agradecimiento, l es quien me brind todo el apoyo y la paciencia necesaria para culminar mi carrera. El enriquecimiento personal que me brinda no tiene parangn, pues es en su autenticidad donde reside su secreto, su tesoro. Un tesoro que nadie podr robarle, una esencia de luz cristalina que forma su ser.

DEDICATORIA

Dedico este xito acadmico a mis hijos: Silvia, Jos Luis, Leticia , Ana Mara; a mis nietas: Melanie, Mara Cristina y Rafaela para que sepan y tengan siempre presente que no hay obstculo capaz de imponerse; si queremos podemos llegar ms lejos, si queremos podemos llegar ms alto, si queremos podemos hacer lo que seaSlo hay que proponrselo... Si alguna vez sus sueos se derrumban busquen un poco de luz en la ventana, promtanse a s mismo un arco iris y vuelvan a comenzar. No se detengan, construyan nuevos sueos. Piensen siempre que en su camino nada es imposible. Debo dedicar este esfuerzo tambin a mi madre, ya que nos inculc y nos sembr en lo ms profundo de nuestro ser ese deseo de superacin que ha latido en mi hasta ahora y seguir latiendo por siempre.

RESUMEN EJECUTIVO En la actualidad todas las instituciones pblicas o privadas no pueden prescindir de los adelantos tecnolgicos, la informtica se ha vuelto una herramienta indispensable para el desarrollo y servicio a la comunidad. Toda la informacin recopilada que sirvi como argumento para respaldar este programa, se basa en cinco aos de observaciones a los problemas vividos a diario en este consultorio por la falta de un sistema basado en un software de fcil manejo, el que dar un cambio total a la atencin en este lugar que presta tanto servicio a la comunidad de Baha de Carquez y a la zona norte de Manab. Este sistema ser un soporte indispensable para la administracin de la informacin de este consultorio. Dicho programa informtico desarrollado en la siguiente tesis cumple con las caractersticas de normatividad en aplicaciones de escritorio. Posee adems factibilidad justificada en su totalidad y respaldada econmicamente, cuyo detalle estn en el presente informe.

EXECUTIVE SUMMARY Nowadays all public and private entities lack technological advances; computer science has become an indispensable tool for the development and service of the community. All the information gathered was used as an argument to back up this program, it is based in five years of observing the problems encountered daily in this medical office due to the lack of adequate and easy to use software that will improve the customer service for Baha de Carquez community and Manabs north region. This system will be an indispensable support to organize and manage the information of this medical office. This program elaborated for this thesis complies with the normative characteristics of desktop applications. It also possesses total justified feasibility and an economical back up, which details follow in this report.

INTRODUCCIN

Desde que la informtica entr a constituir una herramienta bsica en todas las actividades del ser humano, tambin lo hizo en el trabajo de los mdicos y de sus lugares de trabajo, como consultorios, Hospitales, Clnicas, Dispensarios, Ministerios de Salud, Organismos Internacionales(OPS-OMS) etc. realizando para estas actividades programas informticos que han facilitado mucho el quehacer mdico, permitiendo en su base de datos conocer estadsticamente de manera rpida y oportuna la morbilidad, mortalidad de las diferentes enfermedades que afectan al hombre y sus comunidades.

Sin embargo es muy poco lo que se ha hecho a nivel de los consultorios privados, los mismos que han tenido que adaptar su atencin en base a programas realizados para otro tipo de atencin mdica Institucional pblica o privada.

En nuestro pas la actividad mdica privada atiende en sus consultorios ms del 40% de las enfermedades ambulatorias, motivo por el que se realiz un programa especial, tomando como referencia el del Dr. Jos Intriago Andrade y dado que atiende seis horas diarias desde las 12:30 H. hasta las 14:30 y desde las 16:00H hasta las 20:00 H. con un promedio de atencin de veinte pacientes por da.

El programa desarrollado sirve de gua y de gran utilidad para todos los mdicos que trabajan privadamente; cumplido este propsito, se hizo un gran aporte para la atencin exitosa de los pacientes particulares, facilitando el trabajo del los galenos, sustituyendo la Historia Clnica tradicional (manual), en soporte de papel, por Historias Clnicas Computarizadas y permitiendo adems que los organismos de salud pblica puedan conocer cuando lo requieran el estado de salud de los pacientes que se atienden en sus consultorios.

10

CAPTULO I

1.1. PLANTEAMIENTO DEL PROBLEMA

Jugando la Historia Clnica un papel preponderante tanto en la vida del enfermo como en la del mdico; ya que reiteran resultados de pruebas que deberan estar permanentemente registrados; sin embargo, el tipo de ayuda que tradicionalmente ha estado a la disposicin de los mdicos para llevar a cabo esta tarea ha disminuido la utilidad de la informacin que el registro mantiene, pues tiende a perder precisin en el proceso de transcripcin y consecuentemente el mdico deja de percibir los beneficios que un registro mdico electrnico pudiera proveer como herramienta de soporte a decisiones capaces de sugerir intervenciones oportunas basadas en la informacin recopilada.

1.2. FORMULACION DEL PROBLEMA

Cmo incide el anlisis, diseo y desarrollo de un sistema informtico que permita automatizar el ingreso de las historias clnicas de los pacientes, en el consultorio mdico particular del Dr. Jos Intriago Andrade en la ciudad de Baha de Carquez?
11

1.3. DELIMITACIN DEL PROBLEMA

La presente tesis se llev a cabo en el consultorio privado de consulta externa en medicina general del Dr. Jos Intriago Andrade ubicado en la ciudad de Baha de Carquez, Provincia de Manab.

1.4. ANTECEDENTES

La incorporacin de los avances tecnolgicos y cientficos a la medicina sorprenden por la fascinacin que producen y por su fuerza diagnstica y teraputica.

La Medicina actual dentro de su desarrollo no ha escapado al fenmeno de la Computacin, y como condicin necesaria, su vnculo estrecho con la Ciencia de la Informacin, han dado lugar a la Informtica Mdica, que agrupa los campos del software y el hardware para su uso en la Medicina.

La informatizacin de la historia clnica se ha convertido durante los ltimos aos en objetivo de la mayor parte de los trabajos de la Informtica Mdica.
12

Ante esta realidad y luego de observar que los registros mdicos tradicionalmente se lleva an en papeles y nos podramos encontrar con la sorpresa de que los datos que originalmente existan en relacin al paciente puede que no estn disponibles en la prxima visita que ste realice, ya que es un hecho bien conocido que parte de los registros pueden perderse con el pasar del tiempo como consecuencia de su manipulacin y almacenaje; esto acarrea consecuencias nefastas ya que estas notas clnicas tienden a ser resmenes de hechos importantes que han sido guardados previamente y que reiteran resultados de pruebas que deberan en todo momento estar a la disposicin. La computadora es el mtodo idneo para facilitar el registro, la elaboracin y procesamiento de la informacin y para lograr la adopcin de decisiones. En todos los sentidos la Computacin constituye una herramienta que ayuda a resolver los problemas que se presentan y esta ayuda no puede ni debe ser subestimada por los mdicos ya que nuestros das se caracterizan por un desarrollo colosal de la tcnica, y su aplicacin cada vez ms extensa a todos los mbitos de la vida humana, en particular.

1.5. JUSTIFICACIN

La historia clnica es una herramienta indispensable en la prctica clnica de los profesionales de la salud. Es un documento que debe contener la narracin escrita, clara, precisa, detallada y ordenada de todos los datos y conocimientos, tanto
13

personales como familiares, que se refieren a un paciente y que sirven de base para el diagnstico definitivo y tratamiento adecuado de su enfermedad sin embargo, en la actualidad en este consultorio su formato tradicional enfrenta diversas dificultades, que se han hecho evidentes durante la prctica diaria como es su deterioro o prdida, debido a que la historia convencional, en su formato de papel, slo puede existir en un lugar y en un momento determinado, en condiciones determinadas, as como la presencia de una escritura pobre, ilegible e incompleta que dificulta la interpretacin del mensaje que se pretende enviar. Otra de sus limitaciones es que slo puede contribuir de forma pasiva a la toma de decisiones y esto dificulta el anlisis con fines cientficos o de planeamiento de estrategias de salud.

Toda esta problemtica fu motivo suficiente para justificar el anlisis y la creacin de un programa al cual tendr acceso el galeno de una manera rpida, gil y oportuna para obtener la informacin requerida.

Teniendo el conocimiento de la existencia de una idiosincrasia difcil en nuestro medio, lo convierte a este estudio en un reto para lograr obtener desde el primer momento datos reales y precisos de cada paciente.

14

Los beneficiarios de este trabajo sern los pacientes y los mdicos ya que tendrn informacin confiable e inmediata de la situacin del enfermo.

1.6. OBJETIVOS

1.6.1. OBJETIVOS GENERALES

Disear e implementar un sistema informtico de Historias Clnicas para lograr que los registros de cada persona que se encuentren almacenados en una base de datos, sean de fcil acceso para el mdico.

1.6.2. OBJETIVOS ESPECFICOS

Crear una base de datos para globalizar los datos mdico-paciente Facilitar la bsqueda del registro de los pacientes. Obtener reportes inmediatos. Capacitar al personal que va a manipular el sistema.

15

1.7. BENEFICIARIOS

1.7.1 DIRECTOS

Al implementar este sistema informtico los beneficiarios directos sern las personas que acuden al consultorio mdico del Dr. Jos Intriago Andrade.

1.7.2 INDIRECTOS

La comunidad de Baha de Carquez y del Cantn Sucre.

16

CAPTULO II

2.1. MARCO TERICO

2.1.1. HISTORIAS CLINICAS

Desde el punto de vista clnico, puede entonces afirmarse que la HC se origina con el primer episodio de la enfermedad o el control de salud, en cuyo contexto se atiende al paciente, sea en la atencin primaria o secundaria.

Constituye, adems, el registro completo de la atencin prestada al paciente durante su enfermedad y de ello, su trascendencia como documento legal.

No es un simple relato, la descripcin de una enfermedad aislada; comprende las consideraciones de mdico, de gran trascendencia en el aspecto jurdico. Tiene gran valor para diagnstico, el tratamiento, el pronstico y la epidemiologa, aparte de documentar la habilidad y conocimiento del mdico que la realiza.

17

Segn Delfor Podest1 una historia clnica debe reunir ciertas condiciones fundamentales; ha de ser: a) Clara y precisa. Actualmente, no es utilizada slo por el mdico que la elabora, sino que ha de servir a otros profesionales que desempean su actividad en cualquier institucin sanitaria y pueden tener acceso a ella.

b) Completa y metdicamente realizada. Es necesario seguir un plan en el examen de los enfermos. La mayora de los errores diagnsticos no derivan de la ignorancia, sino de lo apresurado de una actuacin.

c) Realizada de manera sistemtica, sin caer en una abstraccin que impida ver la realidad. A estos elementos aadiramos uno que la prctica de la medicina actual exige; el consentimiento informado del paciente.

Si obviamos pocas anteriores, se puede decir que de Hipcrates son las primeras historias clnicas conocidas. Nacido 460 aos antes de Cristo, se lo considera el padre de la medicina. Las historias clnicas hipocrticas, o catstasis, consideraban la totalidad del hombre, su ambiente y poca de la vida. Hipcrates

Delfor Podest L. La historia clnica. En: Mazzei E, Rozmann C. (Dirs.). Semiotecnia y fisiopatologa. Buenos Aires: El Ateneo; 1977.

18

dio importancia a la anamnesis y la observacin, y practic la percusin y la auscultacin inmediata. Aconsejaba interrogar al enfermo sobre la naturaleza y duracin de sus sufrimientos, sobre el funcionamiento del intestino y sobre la dieta que segua. Inici el mtodo racional de la descripcin cuidadosa de los sntomas y manifestaciones obtenidas directamente del enfermo y cre la historia clnica.

2.1.2. EVOLUCIN DEL REGISTRO MEDICO ELECTRNICO COMO

HERRAMIENTA

El registro mdico electrnico ha existido por dcadas, pero a diferencia de otros sistemas computarizados en el sector salud, su adopcin ha sido limitada.

Mltiples sistemas clnicos computarizados han sido implementados en una amplia variedad de plataformas y arquitecturas, desde el mainframe, pasando por

19

el mini computador y el computador personal hasta aquellos cuya operacin se basa en el uso la Internet2. Sin embargo, la adopcin de estos sistemas ha sido lenta y reducida a ciertas instancias. Varios son los factores que pudiesen asociarse a la limitada adopcin de los mismos, entre los cuales se pueden mencionar la tecnologa requerida para su operacin y uso, resistencia por parte de la comunidad mdica a su implementacin, factores socio-polticos, limitaciones econmicas, o simplemente el hecho de que stos reflejan un paradigma errneo del proceso clnico, la historia y evolucin de los pacientes cuya informacin es almacenada y administrada a travs de ellos, y en general de la relacin mdico-paciente y del papel que cada uno de ellos juega en el proceso de administracin de salud.

El primer cambio significativo en el registro mdico ocurri durante la Guerra de Crimen, periodo durante el cual Florence Nightingale sistematiz el proceso de recoleccin y registro de informacin mdica. Este es el primer caso en el cual los registros mdicos tuvieron un rol significativo en el mejoramiento y orientacin de la salud pblica. Sin embargo, el cambio ms trascendental en la historia del registro mdico tuvo lugar con la contribucin hecha por Lawrence Weed a mediados del Siglo XX, quien introdujo la nocin de desarrollar el registro

Safran C., Sands DZ, Rind DM. Online Medical Records: A Decade of Experience. Method Inform Medicine 1999; 38:308-12.

20

mdico en torno a los problemas presentados por el paciente3. La innovacin hecha por Dr. Weed fue el reconocer la necesidad de organizar la historia del paciente en forma longitudinal en el contexto de los problemas presentados por el paciente en lugar de limitarse a recolectar las conclusiones del episodio de atencin al paciente.

2.1.3. BASES DE DATOS

El trmino base de datos fue acuado por primera vez en 1963, en un simposio celebrado en California.

Una base de datos se puede definir como un conjunto de informacin homognea que mantiene una estructura ordenada, y que toda ella se encuentra relacionada con un mismo tema.

Weed LL. Medical records that guide and teach. New Engl. J. Med. 278 (1968) 593600.

21

CARACTERSTICAS:

1. Independencia lgica y fsica de los datos. 2. Redundancia mnima. 3. Acceso concurrente por parte de mltiples usuarios: control de concurrencia mediante tcnicas de bloqueo o cerrado de datos accedidos. 4. Distribucin espacial de los datos: la independencia lgica y fsica facilita la posibilidad de sistemas de bases de datos distribuidas. 5. Integridad de los datos: se refiere a las medidas de seguridad que impiden que se introduzcan datos errneos. Esto puede suceder tanto por motivos fsicos (defectos de hardware, actualizacin incompleta debido a causas externas), como de operacin (introduccin de datos incoherentes). 6. optimizacin de consultas permite la rpida ejecucin de las mismas. 7. Seguridad de acceso y auditora: El sistema de auditora mantiene el control de acceso a la base de datos, con el objeto de saber qu o quin realiz una determinada modificacin y en qu momento. 8. Respaldo y recuperacin de datos.

22

9. Acceso a travs de lenguajes de programacin estndar: se refiere a la posibilidad ya mencionada de acceder a los datos de una base de datos mediante lenguajes de programacin ajenos al sistema de base de datos propiamente dicho.

VENTAJAS

La principal ventaja de utilizar bases de datos es que mltiples usuarios pueden acceder a ellas al mismo tiempo.

2.1.4. VISUAL BASIC

Visual Basic es una aplicacin y un lenguaje de programacin desarrollados por Alan Cooper para Microsoft. Se origina en el clsico lenguaje BASIC. La primera versin sali en 1991 en un entorno relativamente sencillo para facilitar la creacin de programas grficos. Visual Basic, como su nombre lo indica, utiliza una interfaz totalmente visual.

Actualmente, los programas creados en Visual Basic slo funcionan en Windows.


23

La aplicacin Visual Basic, permite crear ventanas, botones, mens, etc. de forma sencilla con solo arrastrar y soltar los elementos. Luego se pueden definir las apariencias, posiciones y comportamientos tanto de forma visual como utilizando cdigos de programacin.

Este lenguaje toma elementos de diferentes paradigmas como el orientado a objetos y el orientado a eventos.

Visual Basic suele considerarse un sistema RAD (Rapid Application Development), porque permite crear aplicaciones de forma rpida, especialmente para prototipos.

Visual Basic constituye un IDE (entorno de desarrollo integrado o en ingls Integrated Development Enviroment) que ha sido empaquetado como un programa de aplicacin, es decir, consiste en un editor de cdigo (programa donde se escribe el cdigo fuente), un depurador (programa que corrige errores en el cdigo fuente para que pueda ser bien compilado), un compilador (programa que traduce el cdigo fuente a lenguaje de mquina), y un constructor de interfaz grfica o GUI (es una forma de programar en la que no es necesario escribir el cdigo para la parte grfica del programa, sino que se puede hacer de forma visual).
24

VENTAJAS

Posee una curva de aprendizaje muy rpida. Integra el diseo e implementacin de formularios de Windows. Permite usar con suma facilidad la plataforma de los sistemas Windows. El cdigo en Visual Basic es fcilmente migrable a otros lenguajes.

2.2. MARCO CONEPTUAL

2.2.1. SISTEMA DE GESTIN DE BASE DE DATOS

El propsito general de los sistemas de gestin de base de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirn en informacin relevante, para un buen manejo de datos.

En el entorno informtico, la gestin de bases de datos ha evolucionado desde ser una aplicacin ms disponible para los computadores, a ocupar un lugar fundamental en los sistemas de informacin. En la actualidad, un sistema de
25

informacin ser ms valioso cuanto de mayor calidad sea la base de datos que lo soporta, la cual resulta a su vez un componente fundamental del mismo, de tal forma que puede llegarse a afirmar que es imposible la existencia de un sistema de informacin sin una base de datos, que cumple la funcin de "memoria", en todas sus acepciones posibles, del sistema.

2.2.2. LENGUAJE DE PROGRAMACIN

Los lenguajes de programacin son herramientas que nos permiten crear Programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc.

Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro.

2.2.3. SISTEMAS OPERATIVOS

Un Sistema operativo (SO) es un programa informtico que acta de interfaz entre los dispositivos de hardware y el usuario. Es responsable de gestionar, coordinar las actividades y llevar a cabo el intercambio de recursos de un computador. Acta como estacin para las aplicaciones que se ejecutan en la
26

mquina. Uno de los ms prominentes ejemplos de sistema operativo, es el ncleo Linux2 , el cual junto a las herramientas GNU, forman las llamadas distribuciones GNU/Linux.

2.2.4. INTERFAZ DEL USUARIO

Es el medio con que el usuario puede comunicarse con una mquina, un equipo o una computadora, y comprende todos los puntos de contacto entre el usuario y el equipo, normalmente suelen ser fciles de entender y fciles de accionar.

TIPOS DE INTERFAZ

A) Una interfaz de hardware: teclado, ratn y pantalla visualizadora.

B) Una interfaz de software: entrega informacin a travs de lo que usuario observa en la pantalla.

C) Una interfaz de Software-Hardware: Es

puente entre la maquina y las

personas, permite a la maquina entender la instruccin y a el hombre entender el cdigo binario traducido a informacin legible.
27

28

CAPTULO III

3.1. HIPOTESIS Desarrollar y disear un sistema informtico para Historias Clnicas, volver eficaz el manejo de la informacin de los pacientes.

3.2. DEFINICIONES CONCEPTUALES Y OPERACIONALES DE LAS VARIABLES

3.2.1 VARIABLE INDEPENDIENTE:

Sistema informtico.

3.2.2. VARIABLE DEPENDIENTE

El manejo de la informacin de los pacientes.

29

3.3. OPERACIONALIZACION DE VARIABLES

3.3.1 Variable Independiente:

CONCEPTUALIZACION

CATEGORAS Normas a seguir en la construccin de software. Rapidez y seguridad en el manejo de toda la informacin a procesar. Interpretacin crtica de una o varias experiencias que a partir de su ordenamiento y descubre la lgica.

INDICADORES Flexibilidad en el manejo de la informacin. Sistema informtico confiable. Representacin lgica mediante diagramas de flujos a travs de anlisis.

ITEMS BASICOS Qu tipos de conocimientos se necesitan para la informacin? Con qu tipo de tecnologa se cuenta?

Coleccin de programas, procedimientos, datos y equipos utilizados en el proceso de la informacin.

3.3.2 Variable Dependiente:


ITEMS BASICOS Cumplimiento de objetivos Determinacin Mejorar el Cmo se para poder satisfacer los y orden de desempeo del registra el requerimientos exigidos por actividades que asistente proceso y los pacientes. se desean mdico. control de la sistematizar. informacin Mejorar la ? Implementar atencin a los un mejor pacientes a manejo en el travs de un tratamiento de manejo rpido la informacin y seguro de la informacin. CONCEPTUALIZACIN CATEGORAS INDICADORES

30

3.4. METODOLOGA

En este trabajo se

tomaron en cuenta los siguientes aspectos: mtodo,

instrumentos de investigacin, poblacin, muestra y recursos.

3.4.1. MODALIDAD DE LA INVESTIGACIN

Se utiliz el modelo experimental; ya que es una modalidad fctica se ocupa de los hechos que realmente acontecen.

Basados en hechos que se suscitan ha diario hemos podido desarrollar un sistema conveniente y eficaz que cubra las necesidades del consultorio mdico en estudio.

La modalidad est abierta a la incorporacin de nuevos conocimientos y procedimientos con el fin de asegurar un mejor acercamiento a la verdad.

31

3.5. TCNICAS

Se utilizaron las tcnicas siguientes: La Observacin Directa: Se realizada constantemente mediante el trato mdico-paciente. La observacin Indirecta: valindonos de libros, revistas, informes relacionados con lo investigado.

3.5.1. INSTRUMENTOS

La Encuesta. La entrevista.

3.6. RECURSOS

Se utilizaron los siguientes recursos:

32

3.6.1 RECURSOS HUMANOS:

Interviene en este proyecto las siguientes personas: Tutor de tesis: Ingeniera Esthela San Andrs Laz. Dr. Jos Intriago Andrade. Estudiante: Ana Mara Arguello Rubira, asistente mdico. Personas que acuden diariamente a este consultorio como pacientes.

3.6.2 RECURSOS MATERIALES

Historias Clnicas en papel. CDS. Flash Memory Copias. Hojas A4. Cartuchos de tinta para impresora. Libros de soporte en base de datos. Libros de visual BASIC 6.0.

33

3.6.3. RECURSOS TECNICOS

Computador Software

3.6.4. RECURSOS INSTITUCIONALES

Universidad Tcnica de Manab Consultorio Mdico del Dr. Jos Intriago Andrade

34

3.6.5. RECURSOS ECONOMICOS:

Rubros de gastos
Internet Materiales de escritorio Material bibliogrfico Transporte Impresiones Fotocopias Empastado de tesis Asistencia Tcnica Imprevistos 10%

Valor USD
200,00 50,00 40,00 30,00 250,00 43,00 150,00 450,00 120,00

TOTAL

1.333,00

35

CAPTULO IV

4.1. CONCLUSIONES Y RECOMENDACIONES

4.1.1. CONCLUSIONES

Luego de terminado el trabajo de investigacin realizado con el apoyo de la informtica, mediante la creacin de un programa para el funcionamiento del consultorio privado del Dr. Jos Intriago Andrade, se concluye: Las actividades del establecimiento mdico en general fueron muy beneficiadas en todo el quehacer mdico. Mejor sustancialmente la calidad de atencin mdica saliendo beneficiados especialmente los pacientes y el personal que labora en el consultorio. El S.H.C. sirve como herramienta indispensable para determinar la morbilidad, incidencias, prevalencias y mortalidad de los pacientes que se atienden en este establecimiento. Con informacin que se almacenamos en la base de datos se pueden realizar investigaciones estadsticas, que aunque el universo no sea enorme

36

como sucede en una unidad de atencin pblica, sin embargo nos sirven como un valor referencial de gran importancia.

4.1.2 RECOMENDACIONES

Toda unidad de salud deben de tener un programa que permita realizar las labores de atencin mdica y de investigacin ms eficientes. La utilizacin de un programa como este debe de universalizarse, tomando en consideracin todos los programas que para este tipo de atencin existan en el pas, a fin de que teniendo un solo programa estandarizado a nivel nacional, se pueda organizar de manera uniforme la atencin mdica de los consultorios privados en el Ecuador. Al universalizar un programa de atencin mdica en los consultorios privados, estaramos como consecuencia estandarizando tambin los protocolos de atencin referentes al diagnstico y tratamiento de las diferentes patologas existentes en el pas.

37

CAPTULO V

PROPUESTA

S.H.C
5.1. DESCRIPCIN GENERAL DEL SISTEMA

El sistema S.H.C. registrar la informacin de pacientes con todos los datos indispensables que conlleven a la buena elaboracin de una Historia Clnica, porque sigue siendo este el documento esencial del acto mdico, a pesar del desarrollo tecnolgico actual que nos ha llevado a conocer actividades por recuperar la salud del hombre verdaderamente deslumbrantes, como son: los diagnsticos por imgenes, los marcadores tumorales, las pruebas especficas para enfermedades infecciosas, la ciruga robtica. Sin embargo; una buena historia clnica contina siendo la base para el diagnstico correcto y para el tratamiento adecuado.

El presente sistema informtico consta de los siguientes mdulos: FORMULARIO SPLASH. FORMULARIO LOGIN.
38

FORMULARIO PRINCIPAL (MDI.) FORMULARIO DATOS PERSONALES. FORMULARIO HISTORIAS CLNICAS. FORMULARIO CAMBIO DE CONTRASEA. FORMULARIO CIUDADES. FORMULARIO DIAGNSTICO.

FORMULARIO ESTADISTICA.

5.2. IMPLEMENTACIN DE UN SISTEMA INFRMATICO

5.2.1. Equipamiento central del Consultorio.-

El consultorio Dr. Jos Intriago Andrade, cuenta actualmente con un equipo computacional con las siguientes caractersticas:

39

Procesador: Memoria: Disco Duro: DVD/R: Sistema Operativo: Lenguaje de Programacin: Aplicaciones: Impresora:

Intel Dual Core 2 GB 250 GB Reproductor de CDs y DVDs Windows 7 Visual Basic 6.0 Microsoft Office 2007 Lemax Z617

Es un equipo ideal para las funciones que cumple y su configuracin es aceptable. Tiene posibilidades de crecimiento y el fabricante cuenta con repuesto y mantenimiento que garantiza la buena utilizacin del mismo.

5.2.2. Requisitos de Instalacin del Software.-

Los requerimientos principales del equipo de computacin que se necesita para un ptimo funcionamiento son: Pentium III, Pentium IV, Dual Core 1.60 GHZ, o Superior. Microsoft Windows XP Servipack 2 Profesional, Milenium.
40

RAM mnima de 256 MB o superior. Disco Duro 60 GB o Superior.

41

5.3. CRONOGRAMA DE ACTIVIDADES

ACTIVIDADES A REALIZAR Construccin del problema Planificacin de metodologa Elaboracin del marco Terico Recoleccin de informacin Ejecucin del proyecto Elaboracin del informe final Presentacin del informe Sustentacin

Meses Primero Segundo Tercero Cuarto Quinto Sexto 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

42

5.4. RELACIONES EXISTENTE DE LA BASE DE DATOS

La base de datos fue desarrollada en Microsoft Access, que es una aplicacin del paquete de Office. Se la crea con el nombre de basehis.mdb; se le coloco contrasea para as dar seguridad a los datos almacenados en ella. Contiene cinco tablas, las mismas que estn relacionas entre s; las cuales se detallan a continuacin:

43

Tambin cabe recalcar que la tabla Enfermedades, se utiliza como tablas auxiliares para realizar consultas.

44

DETALLES Y RELACIONES DE LAS TABLAS DE LA BASE DE DATOS. Tabla Clave.- En esta tabla se almacena la clave (contrasea) y el nombre del usuario (alias). Contiene dos campos de tipo texto.

Tabla Ciudades.- La tabla ciudades, archiva la residencia de los pacientes. Esta tabla se encuentra relacionada con la tabla Datos_Personales_Pacientes. Contiene dos campos uno numrico y uno de texto; idciudad, nombreciudad, respectivamente.

Tabla Enfermedades.- Aqu se guardan las diferentes enfermedades, las mismas que servirn para realizar los debidos diagnsticos. Se encuentra relacionada con la tabla historia_clinica; contiene un campo de tipo numrico y uno de tipo texto. Tabla Datos Personales del Paciente.- La tabla datos personales del paciente, es de suma importancia, ya que en ella se almacena los datos personales del paciente; desde el nmero de cedula hasta los antecedente patolgicos tantos familiares,

45

personales, incluyendo alergias, todos ellos de mucha importancia para un buen diagnstico.

Esta tabla se encuentra relacionada con la tabla ciudades, por medio del IdCiudad, que es de tipo numrico. Tambin se relaciona con tabla historias_clinicas.

Contiene doce campos: dos de tipo numrico, seis texto, uno fecha/hora y tres tipo memo.

Tabla Historias Clnicas.- Para almacenar pacientes signos las historias de los

(visitas). vitales,

Detallando, diagnsticos,

tratamiento y
46

prescripcin. Se

encuentra relaciona con la tabla Datos_Personales_Paciente y la tabla Enfermedades (se crean tres tablas auxiliares para relacionar con los campos diagnstico1, enfermedades). diagnstico2, diagnstico3; pero sigue siendo la tabla

Esta tabla contiene diecisiete campos: cinco de tipo numrico, ocho de tipo texto, uno de tipo fecha/hora, tres tipo memo.

47

ANEXOS

48

NDICE DE ANEXOS
PAGS FOTOS DEL CONSULTORIO DEL DR. JOS INTRIAGO A. Fotografa 1: Archivadores de las historias Clnicas de los pacientes Fotografa 2. Dr. Jos Intriago Andrade prescribiendo Fotografa 3. Carpeta con documentos de Historias Clnicas Fotografa 4. Carpetas ordenadas por apellidos Fotografa 5. Dr. Jos Intriago Andrade auscultando a una paciente REALIZACIN DE LA PROPUESTA MANUAL DEL USUARIO MANUAL DEL PROGRAMADOR (CODIFICACIN) Programacin del Module 1 Formulario SPLASH (Frm_SPLASH.Frm) Formulario CONTRASEA (Frm_Login.Frm) Formulario Principal MDI (Principal.Frm) Formulario Frm_datos_pacientes (frm_datos_pacientes.frm) Formulario Frm_historia (historia.frm) Formulario Cambio Contrasea (frm_contrasea.frm) Formulario Diagnstico frm_diagnostico (frm_diagnostico.frm) Formulario Ciudad frm_ciudad (frm_cuidades.frm) Formulario Estadstica frm_ reportes (frm_reportes.frm) AYUDA DEL SISTEMA 50 51 52 52 53 53 54 55 63 64 74 74 76 77 87 96 97 100 103 107

49

FOTOS DEL CONSULTORIO DR. JOS INTRIAGO ANDRADE

50

1.1.

Fotografa 6. Archivadores de las historias Clnicas de los pacientes

51

1.2.

Fotografa 7. Dr. Jos Intriago Andrade prescribiendo

1.3.

Fotografa 8. Carpeta con documentos de Historias Clnicas

52

1.4.

Fotografa 9. Carpetas ordenadas por apellidos

1.5.

Fotografa 10. Dr. Jos Intriago Andrade auscultando a una paciente

53

REALIZACIN DE LA PROPUESTA

TEMA:
DESARROLLO DE UN SISTEMA INFORMATICO QUE PERMITA AUTOMATIZAR EL INGRESO DE LA HISTORIA CLNICA DE PACIENTES, PARA EL CONSULTORIO MDICO DEL DR. JOS INTRIAGO ANDRADE.

54

MANUAL DE USUARIO

55

PANTALLAS DEL SISTEMA INFORMTICO

Pantalla que aparece cuando carga el Sistema S.H.C.

Titulo: Ingreso de la Clave de los Usuarios

Ventana # 1 Se digita el nombre del usuario que va a trabajar con el sistema. Se escribe la contrasea. Con un clic en el botn Aceptar, accede al sistema. Al hacer clic en el botn Cancelar se cierra la ventana del ingreso al sistema.

Color: &H8000000F&

56

Titulo: Formulario Principal (MDI)

Ventana # 2

Barra de Men del Sistema

Barra de Men Grfica del Sistemas (Acceso Directo).

Contenedor de las Ventanas del Sistema.

Barra de Informacin hora y fecha del Sistema (Barra de Estado). Color: &H8000000F&

57

Titulo: Datos del Paciente

Ventana # 3 En esta seccin se ingresan los datos personales del paciente

Bsqueda Pacientes Apellidos.

de por

Ingreso de Antecedentes Patolgicos.

los

Frame de Controles.

Color: &H8000000F&

58

Titulo: Historia Clnica

Ventana # 4 Se muestra la identificacin del Paciente. Frame que permite el ingreso de los Signos Vitales. Bloque de Diagnsticos. Registros de Visitas Mdicas, ordenadas por fechas. Motivo de Consulta, Prediagnstico, Tratamiento y Prescripcin.

Botones Control Color: &H8000000F&

de

59

Titulo: Cambio de Contrasea

Ventana # 5 Se digita el nuevo nombre del usuario (alias). Se escribe la nueva contrasea. Con un clic en el botn Nuevo, activa los text para realizar el cambio de la contrasea. Al hacer clic en el botn Guardar, almacena la nueva contrasea.

Color: &H8000000F&

Titulo: Diagnsticos

Ventana # 6 Ingreso del Diagnstico Listado de Diagnsticos. los diferentes

Botones de Controles

Color: &H8000000F&

60

Titulo: Ciudades

Ventana # 7 Ingreso de la Ciudad Listado de Ciudades. las Diferentes

Botones de Controles

Color: &H8000000F&

61

Titulo: Estadsticas

Ventana # 8 Seccin donde se digita la enfermedad y se selecciona el lapso de tiempo. Haciendo clic en este icono, se realiza el filtro de la bsqueda.

Resultado bsqueda.

de

la

Muestra el total de incidencia de la enfermedad digitada.

Botones de Imprimir y Salir

Color: &H8000000F&

62

MANUAL DEL PROGRAMADOR

63

CODIFICACIN DEL PROGRAMA


Programacin del Module 1 Option Explicit Public BaseDatos As New ADODB.Connection
Public Public Public Global Global Public Public Global Global Public Global Global Declare Sub InitCommonControls Lib "comctl32" () cn As New ADODB.Connection rs As New ADODB.Connection StrConsulta, Mensaje As String ResConsulta As String Nposicion As Byte viva As Single CNumerico As String CMayuscula As String TipoVali, op As Integer Iva As Double IdPacienteDefecto As Long

Public ListaArchivos() As String Public Const MAX_PATH = 260 Public Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type Public Type WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long cFileName As String * MAX_PATH cAlternate As String * 14 End Type Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long #If Win32 Then Declare Function SendMessage Lib "User32" Alias "SendMessageA" _ (ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long Const CB_SHOWDROPDOWN = &H14F #Else Declare Function SendMessage Lib "User" _ (ByVal hWnd As Integer, ByVal wMsg As Integer, _ ByVal wParam As Integer, lParam As Any) As Long Const WM_USER = &H400

64

Const CB_SHOWDROPDOWN = (WM_USER + 15) #End If Const CB_FINDSTRINGEXACT = &H158 'Buscar cadena Const LB_FINDSTRINGEXACT = &H1A2 'Buscar cadena Const CB_FINDSTRING = &H14C 'Buscar cadena desde ComboBox Const LB_FINDSTRING = &H18F 'Buscar cadena desde ListBox

completa en un ComboBox completa en un ListBox el principio en un el principio en un

Public Sub Combo(ByRef c1, KeyAscii) On Error Resume Next Dim CB As Long Dim FindString As String Const CB_ERR = (-1) Const CB_FINDSTRING = &H14C If KeyAscii < 32 Or KeyAscii > 250 Then Exit Sub 'If KeyAscii = Asc("") Or KeyAscii <> Asc("") Then Exit Sub If c1.SelLength = 0 Then FindString = c1.Text & Chr$(KeyAscii) Else FindString = Left$(c1.Text, c1.SelStart) & Chr$(KeyAscii) End If CB = SendMessage(c1.hWnd, CB_FINDSTRING, -1, ByVal FindString) If CB <> CB_ERR Then c1.ListIndex = CB c1.SelStart = Len(FindString) c1.SelLength = Len(c1.Text) - c1.SelStart End If KeyAscii = 0 End Sub Public Sub LlenaCombo(C As ComboBox, Ssql As String) Dim aux As New ADODB.Recordset Set aux = BaseDatos.Execute(Ssql) 'C.Clear If Not aux.BOF Then Do While Not aux.EOF C.AddItem aux.Fields(0) aux.MoveNext Loop End If aux.Close Set aux = Nothing End Sub Function ValidaCedula(ced As String) As Boolean Dim Dig(10) As Byte Dim Comp As Byte Dim i As Byte Dim SumImpar As Integer Dim SumPar As Integer Dim Prox As Integer SumPar = 0 SumImpar = 0 If Len(ced) = 10 Then For i = 1 To 9 Dig(i) = Val(Mid(ced, i, 1)) If (i Mod 2) = 0 Then SumPar = SumPar + Dig(i) Else Dig(i) = Dig(i) * 2 If Dig(i) > 9 Then Dig(i) = Dig(i) - 9

65

SumImpar = SumImpar + Dig(i) End If Next i Prox = (Fix(((SumPar + SumImpar) / 10)) + 1) * 10 Comp = Val(Mid(ced, 10, 1)) If Comp = Prox - (SumPar + SumImpar) Then ValidaCedula = True Else ValidaCedula = False End If If Comp = 0 And (Prox - (SumPar + SumImpar)) = 10 Then ValidaCedula = True Else ValidaCedula = False End If End Function Public Sub EnterTab(Tecla As Integer) If Tecla = 13 Then Tecla = 0 SendKeys "{tab}" End If End Sub Public Sub Sombrea(txt As Object) txt.SelStart = 0 txt.SelLength = Len(txt) End Sub 'funcin quita tilde de una cadena de texto Public Function QuitaTilde(txt As String) As String Dim tran As String Dim n As Integer, i As Integer n = Len(txt) For i = 1 To n Select Case UCase(Mid(txt, i, 1)) Case "" tran = tran & "A" Case "" tran = tran & "E" Case "" tran = tran & "I" Case "" tran = tran & "O" Case "" tran = tran & "U" Case Else tran = tran & UCase(Mid(txt, i, 1)) End Select Next QuitaTilde = tran End Function Public Function edad(X As String) As String Dim dn, mn, an As Integer Dim da, ma, aa As Integer Dim d, m, a As Integer dn = Day(X) mn = Month(X) an = Year(X)

66

da = Day(Now) ma = Month(Now) aa = Year(Now) Dim FechaActual As Date If da < dn Then ma = ma - 1 FechaActual = Now() - dn d = Day(FechaActual) Else FechaActual = Now() - dn d = Day(FechaActual) End If If ma < mn Then ma = ma + 12 aa = aa - 1 m = ma - mn Else m = ma - mn End If a = aa - an edad = a & " Aos End Function

" & m & " Meses

" & d & " Dias"

Sub LLenaGrid(Msf As MSFlexGrid, Cadena As String) Dim temp As New ADODB.Recordset Dim nrocampos, i As Integer Set temp = BaseDatos.Execute(Cadena) nrocampos = temp.Fields.Count Msf.Cols = nrocampos + 1 Msf.Rows = 1 For i = 1 To nrocampos Msf.Row = 0 Msf.Col = i Msf.CellFontBold = True Msf.Text = temp.Fields(i - 1).Name Next Do Until temp.EOF Msf.AddItem "" Msf.Row = Msf.Rows - 1 For i = 1 To nrocampos Msf.Col = i Msf.Text = "" & temp.Fields(i - 1) Msf.ColWidth(i - 1) = 1800 Next temp.MoveNext Loop Msf.ColWidth(0) = 0 Msf.ColWidth(1) = 0 End Sub Public Sub LlenaList(Lst As ListBox, Cadena As String) Dim aux As New ADODB.Recordset Set aux = BaseDatos.Execute(Cadena) Lst.Clear If Not aux.BOF Then Do While Not aux.EOF Lst.AddItem aux.Fields(0) aux.MoveNext

67

Loop End If aux.Close Set aux = Nothing End Sub Function Busca_Personas(formu As Form, txt As TextBox, Ssql As String, Mensaje1 As String) As Boolean Dim temp1 As New ADODB.Recordset Dim Encontrado As Boolean Set temp1 = BaseDatos.Execute("SELECT * FROM Datos_Personales_Paciente") If Not temp1.BOF Then Encontrado = False Do While Not temp1.EOF If temp1!cedula = txt Then Busca_Personas = True formu.txthistoriaclinica = temp1!NumeroHistoriaClinica Exit Do End If temp1.MoveNext Loop If temp1.EOF And Encontrado = False Then MsgBox "No Existe Paciente, Ingrese Informacin...", vbInformation, Mensaje temp1.Close Set temp1 = Nothing formu.TxtApellidosNombres.SetFocus Exit Function End If Else temp1.Close Set temp1 = Nothing MsgBox "No Existe Registro de Paciente Ingrese Informacin...", vbInformation, Mensaje Exit Function End If Dim temp As New ADODB.Recordset Set temp = BaseDatos.Execute(Ssql) Encontrado = False If Not temp.BOF Then Do While Not temp.EOF() If temp!NumeroHistoriaClinica = temp1!NumeroHistoriaClinica Then Encontrado = True Exit Do End If temp.MoveNext Loop End If If Encontrado = True And Busca_Personas = True Then temp.Close Set temp = Nothing temp1.Close Set temp1 = Nothing 'MsgBox Mensaje1, vbInformation, Mensaje 'formu.txthistoriaclinica = "" formu.txtcedula = "" Exit Function ElseIf Busca_Personas = True Then formu.txthistoriaclinica = temp1!NumeroHistoriaClinica formu.txtcedula = temp1!cedula

68

formu.TxtApellidosNombres = temp1!Apellidos_Nombres formu.cbsexo = temp1!SEXO formu.DTPFechaNacimiento = temp1!Fecha_Nacimiento formu.cbestadocivil = temp1!Estado_Civil formu.txtocupacion = temp1!Ocupacion formu.txtocupacion = temp1!TELEFONO formu.TxtAlergias = temp1!ALERGIAS formu.txtAntPatFamiliares = temp1!Antecedentes_Familia formu.txtAntPatPersonales = temp1!Antecedentes_Paciente MsgBox "Paciente Existe, proceda...", vbInformation, Mensaje End If temp.Close Set temp = Nothing temp1.Close Set temp1 = Nothing End Function Public Function busca_nombre(tabla_temp As String, valor As String, campo_temp As String) As Boolean Dim t_aux As New ADODB.Recordset busca_nombre = False valor = QuitaTilde(valor) 'MsgBox ("select " & campo_temp & " from " & tabla_temp) '& " where upper(" & campo_temp & ")='" & UCase(valor) & "'") Set t_aux = BaseDatos.Execute("select " & campo_temp & " from " & tabla_temp) '& " where upper(" & campo_temp & ")='" & UCase(valor) & "'") If t_aux.BOF Then busca_nombre = False Else Do Until t_aux.EOF If QuitaTilde(t_aux.Fields(0)) = valor Then busca_nombre = True Exit Do End If t_aux.MoveNext Loop End If t_aux.Close Set t_aux = Nothing End Function Function Busca_PersonasAct(formu As Form, txt As TextBox, Ssql As String, Mensaje1 As String) As Boolean Dim temp1 As New ADODB.Recordset Dim Encontrado As Boolean Set temp1 = BaseDatos.Execute("SELECT * FROM Datos_Personales_Paciente") If Not temp1.BOF Then Encontrado = False Do While Not temp1.EOF If temp1!cedula = txt Then Busca_PersonasAct = True formu.txthistoriaclinica = temp1!NumeroHistoriaClinica Exit Do End If temp1.MoveNext Loop If temp1.EOF And Encontrado = False Then MsgBox "No Existe Paciente, Ingrese Informacin...", vbInformation, Mensaje temp1.Close

69

Set temp1 = Nothing formu.TxtApellidosNombres.SetFocus Exit Function End If Else temp1.Close Set temp1 = Nothing MsgBox "No Existe Registro de Paciente Ingrese Informacin...", vbInformation, Mensaje Exit Function End If Dim temp As New ADODB.Recordset Set temp = BaseDatos.Execute(Ssql) Encontrado = False If Not temp.BOF Then Do While Not temp.EOF() If temp!NumeroHistoriaClinica = temp1!NumeroHistoriaClinica Then Encontrado = True Exit Do End If temp.MoveNext Loop End If If Encontrado = True And Busca_PersonasAct = True Then temp.Close Set temp = Nothing temp1.Close Set temp1 = Nothing MsgBox Mensaje1, vbInformation, Mensaje Exit Function ElseIf Busca_PersonasAct = True Then formu.txthistoriaclinica = temp1!NumeroHistoriaClinica formu.txtcedula = temp1!cedula formu.TxtApellidosNombres = temp1!Apellidos_Nombres formu.cbsexo = temp1!SEXO formu.DTPFechaNacimiento = temp1!Fecha_Nacimiento formu.cbestadocivil = temp1!Estado_Civil formu.txtocupacion = temp1!Ocupacion formu.txtocupacion = temp1!TELEFONO formu.TxtAlergias = temp1!ALERGIAS formu.txtAntPatFamiliares = temp1!Antecedentes_Familia formu.txtAntPatPersonales = temp1!Antecedentes_Paciente MsgBox "Paciente Existe, proceda...", vbInformation, Mensaje End If temp.Close Set temp = Nothing temp1.Close Set temp1 = Nothing End Function Function Busca_PersonasNew(formu As Form, txt As TextBox, Ssql As String, Mensaje1 As String) As Boolean Dim temp1 As New ADODB.Recordset Dim Encontrado As Boolean Set temp1 = BaseDatos.Execute("SELECT * FROM Datos_Personales_Paciente") If Not temp1.BOF Then Encontrado = False Do While Not temp1.EOF If temp1!cedula = txt Then

70

Busca_PersonasNew = True formu.txthistoriaclinica = temp1!NumeroHistoriaClinica Exit Do End If temp1.MoveNext Loop If temp1.EOF And Encontrado = False Then MsgBox "No Existe Paciente, Ingrese Informacin...", vbInformation, Mensaje temp1.Close Set temp1 = Nothing formu.TxtApellidosNombres.SetFocus Exit Function End If Else temp1.Close Set temp1 = Nothing MsgBox "No Existe Registro de Paciente Ingrese Informacin...", vbInformation, Mensaje Exit Function End If Dim temp As New ADODB.Recordset Set temp = BaseDatos.Execute(Ssql) Encontrado = False If Not temp.BOF Then Do While Not temp.EOF() If temp!NumeroHistoriaClinica = temp1!NumeroHistoriaClinica Then Encontrado = True Exit Do End If temp.MoveNext Loop End If If Encontrado = True And Busca_PersonasNew = True Then temp.Close Set temp = Nothing temp1.Close Set temp1 = Nothing MsgBox Mensaje1, vbInformation, Mensaje 'formu.txthistoriaclinica = "" formu.txtcedula.Locked = True Exit Function ElseIf Busca_PersonasNew = True Then formu.txthistoriaclinica = temp1!NumeroHistoriaClinica formu.txtcedula = temp1!cedula formu.TxtApellidosNombres = temp1!Apellidos_Nombres formu.cbsexo = temp1!SEXO formu.DTPFechaNacimiento = temp1!Fecha_Nacimiento formu.cbestadocivil = temp1!Estado_Civil formu.txtocupacion = temp1!Ocupacion formu.txtocupacion = temp1!TELEFONO formu.TxtAlergias = temp1!ALERGIAS formu.txtAntPatFamiliares = temp1!Antecedentes_Familia formu.txtAntPatPersonales = temp1!Antecedentes_Paciente MsgBox "Paciente Existe, proceda...", vbInformation, Mensaje End If temp.Close Set temp = Nothing temp1.Close Set temp1 = Nothing End Function

71

'funcin quita tilde de una cadena de texto Public Function QuitaTilde1(txt As String) As String Dim tran As String Dim n As Integer, i As Integer n = Len(txt) For i = 1 To n Select Case UCase(Mid(txt, i, 1)) Case "" tran = tran & "A" Case "" tran = tran & "E" Case "" tran = tran & "I" Case "" tran = tran & "O" Case "" tran = tran & "U" Case Else tran = tran & UCase(Mid(txt, i, 1)) End Select Next QuitaTilde1 = tran End Function 'escribir solo letras Public Sub letras(Tecla As Integer) Select Case Tecla Case vbKeyReturn, vbKeyLeft, vbKeyRight Case Asc("A") To Asc("Z") Case Asc("a") To Asc("z") Case Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc("") Case Asc("."), Asc(","), Asc("@"), Asc("_"), Asc("-"), Asc("("), Asc(")"), Asc("""), Asc(""") Case 27, vbKeyBack, 13, vbKeySpace Case Else Tecla = 0 Exit Sub End Select End Sub Public Sub letras_num(Tecla As Integer) Select Case Tecla Case vbKeyReturn, vbKeyLeft, vbKeyRight Case Asc("0") To Asc("9") Case Asc("A") To Asc("Z") Case Asc("a") To Asc("z") Case Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc(""), Asc("") Case Asc(""), Asc("") Case Asc("."), Asc(","), Asc("@"), Asc("_"), Asc("-"), Asc("("), Asc(")"), Asc("""), Asc("""), Asc(""), Asc("/"), Asc("#"), Asc(":") Case 27, vbKeyBack, 13, vbKeySpace Case Else Tecla = 0 Exit Sub End Select End Sub Public Sub Telefonos(Tecla As Integer) Select Case Tecla

72

Case Case Case Case Case

vbKeyReturn, vbKeyLeft, vbKeyRight Asc("0") To Asc("9") Asc("-"), Asc("("), Asc(")") 27, vbKeyBack, 13, vbKeySpace Else Tecla = 0 Exit Sub End Select End Sub Public Sub presion_arterial(Tecla As Integer) Select Case Tecla Case vbKeyReturn, vbKeyLeft, vbKeyRight Case Asc("0") To Asc("9") Case Asc("/"), Asc("-") Case 27, vbKeyBack, 13, vbKeySpace Case Else Tecla = 0 Exit Sub End Select End Sub Public Sub numero_punto(Tecla As Integer) Select Case Tecla Case vbKeyReturn, vbKeyLeft, vbKeyRight Case Asc("0") To Asc("9") Case Asc("."), Asc("-") Case 27, vbKeyBack, 13, vbKeySpace Case Else Tecla = 0 Exit Sub End Select End Sub Public Sub numero_va(Tecla As Integer) Select Case Tecla Case vbKeyReturn, vbKeyLeft, vbKeyRight Case Asc("0") To Asc("9") Case Asc("-") Case 27, vbKeyBack, 13, vbKeySpace Case Else Tecla = 0 Exit Sub End Select End Sub Public Sub numero(Tecla As Integer) Select Case Tecla Case vbKeyReturn, vbKeyLeft, vbKeyRight Case Asc("0") To Asc("9") Case 27, vbKeyBack, 13, vbKeySpace Case Else Tecla = 0 Exit Sub End Select End Sub

73

Formulario SPLASH (Frm_SPLASH.Frm)


Private Sub Timer1_Timer()
Dim Control As Integer Dim vector(30500) As String PB.Min = LBound(vector) PB.Max = UBound(vector) PB.Value = PB.Min For Control = LBound(vector) To UBound(vector) vector(Control) = "texto sin importancia" & Control PB.Value = Control Next PB.Value = PB.Min Unload Me frm_Login.Show 1 End Sub

Formulario CONTRASEA (Frm_Login.Frm)


Option Explicit Public LoginSucceeded As Boolean Dim S As Boolean Dim contrasea, aux, aux1 As New ADODB.Recordset Private Sub CmdAceptar_Click() Dim aa As String Set contrasea = BaseDatos.Execute("SELECT * FROM Clave WHERE IdCLave='" & txtPassword & "' and usuario='" & txtUserName & "'") If contrasea.BOF Or contrasea.EOF Then MsgBox "Nombre de Usuario o Clave incorrecta", vbCritical, "Error" S = False txtUserName = "" txtPassword = "" txtUserName.SetFocus contrasea.Close Set contrasea = Nothing Exit Sub Else S = True Unload Me Principal.Show End If End Sub Private Sub CmdCancelar_Click() Unload Me End Sub Private Sub Form_KeyPress(KeyAscii As Integer) EnterTab KeyAscii End Sub Private Sub Form_Unload(Cancel As Integer) If S = False Then BaseDatos.Close End End If End Sub

74

Private Sub Timer1_Timer() If Image1.Visible = True Then Image2.Visible = True Image1.Visible = False Image3.Visible = False Image4.Visible = False Image5.Visible = False Image6.Visible = False Image7.Visible = False ElseIf Image2.Visible = True Then Image3.Visible = True Image1.Visible = False Image2.Visible = False Image4.Visible = False Image5.Visible = False Image6.Visible = False Image7.Visible = False ElseIf Image3.Visible = True Then Image4.Visible = True Image1.Visible = False Image2.Visible = False Image3.Visible = False Image5.Visible = False Image6.Visible = False Image7.Visible = False ElseIf Image4.Visible = True Then Image5.Visible = True Image1.Visible = False Image2.Visible = False Image3.Visible = False Image4.Visible = False Image6.Visible = False Image7.Visible = False ElseIf Image5.Visible = True Then Image6.Visible = True Image1.Visible = False Image2.Visible = False Image3.Visible = False Image4.Visible = False Image5.Visible = False Image7.Visible = False ElseIf Image6.Visible = True Then Image7.Visible = True Image6.Visible = False Image2.Visible = False Image3.Visible = False Image4.Visible = False Image5.Visible = False ElseIf Image7.Visible = True Then Image1.Visible = True Image7.Visible = False Image6.Visible = False Image2.Visible = False Image3.Visible = False Image4.Visible = False Image5.Visible = False End If End Sub

75

Formulario Principal MDI (Principal.Frm)


Option Explicit Private Sub BarraPrincipal_ButtonClick(ByVal Button AsMSComctlLib.Button) Select Case Button.Key Case Is = "paciente" Load frm_datos_pacientes frm_datos_pacientes.Show 1 Case Is = "enfermedades" Load frm_diagnostico frm_diagnostico.Show 1 Case Is = "Calculadora" Call Shell("calc.exe") Case Is = "Salir" If MsgBox("Est seguro de Salir del Sistema...?", vbYesNo, "SISTEMA") = vbYes Then End End If End Select End Sub Private Sub MDIForm_Load() Mensaje = Principal.Caption BaseDatos.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\basehis.mdb;Persist Security Info=False;;Persist Security Info=False;Jet OLEDB:DataBase Password='rajarrob'" frmSplash.Show 1 End Sub Private Sub MDIForm_Unload(Cancel As Integer) If MsgBox("Esta seguro de salir del sistema...?", vbYesNo, "Pregunta de seguridad") = vbYes Then End Else Cancel = 1 End If End Sub Private Sub mnuBEstado_Click() Select Case mnuBEstado.Checked Case True mnuBEstado.Checked = False BarraEstado.Visible = False Case False mnuBEstado.Checked = True BarraEstado.Visible = True End Select End Sub Private Sub mnuBHerramientas_Click() Select Case mnuBHerramientas.Checked Case True mnuBHerramientas.Checked = False BarraPrincipal.Visible = False Case False mnuBHerramientas.Checked = True BarraPrincipal.Visible = True End Select End Sub

76

Private Sub mnuCalculadora_Click() Call Shell("calc.exe") End Sub Private Sub mnuCiudad_Click() frm_ciudad.Show 1 End Sub Private Sub mnuContrasea_Click() frm_contrasea.Show 1 End Sub Private Sub mnuDatos_Click(Index As Integer) frm_datos_pacientes.Show 1 End Sub Private Sub mnuenfermedad_Click() frm_diagnostico.Show 1 End Sub Private Sub StatusBar1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu mnuBHerramientas End If End Sub Private Sub mnureportes_Click() frm_reportes.Show 1 End Sub Private Sub mnusalir_Click() If MsgBox("Est seguro de Salir del Sistema...?", vbYesNo, "SISTEMA") = vbYes Then End End If End Sub

Formulario Frm_datos_pacientes (frm_datos_pacientes.frm)


Option Explicit Public llena As Boolean Dim aux As New ADODB.Recordset Dim rela As New ADODB.Recordset Dim actualiza, Encontrado, Encontrado1, Busca1 As Boolean Dim paciente As Boolean Dim aa Private Sub cbciudad_KeyPress(KeyAscii As Integer) Combo cbciudad, KeyAscii End Sub Private Sub cbestadocivil_KeyPress(KeyAscii As Integer) Combo cbestadocivil, KeyAscii End Sub

77

Private Sub cbsexo_KeyPress(KeyAscii As Integer) Combo cbsexo, KeyAscii End Sub Private Sub CmdActualizar_Click() If txthistoriaclinica = "" Then MsgBox "Por Favor, Seleccione de la lista, el Paciente que desea Actualizar", vbInformation, Mensaje Exit Sub Else actualiza = True Botones txtcedula.SetFocus End If End Sub Private Sub CmdCancelar_Click() Limpiar Botones actualiza = False End Sub Private Sub CmdCiudad_Click() llena = True Load frm_ciudad frm_ciudad.Show 1 End Sub Private Sub CmdGuardar_Click() If Trim(txtcedula.Text) = "" Then txtcedula.Text = "-" End If If Len(txtcedula) = 10 Or txtcedula.Text = "-" Then Else MsgBox "La cedula, debe contener diez caracteres", vbInformation, Mensaje txtcedula.SetFocus Exit Sub End If If Trim(TxtApellidosNombres) = "" Then MsgBox "Por Favor, ingrese Apellidos y Nombres ", vbExclamation, Mensaje TxtApellidosNombres.SetFocus Exit Sub ElseIf Trim(cbsexo) = "" Then MsgBox "Por Favor, seleccione Sexo", vbExclamation, Mensaje cbsexo.SetFocus Exit Sub ElseIf Trim(DTPFechaNacimiento) = "" Then MsgBox "Por Favor,seleccione la Fecha de Nacimiento", vbExclamation, Mensaje DTPFechaNacimiento.SetFocus Exit Sub ElseIf Trim(cbestadocivil) = "" Then MsgBox "Por Favor, seleccione el Estado Civil", vbExclamation, Mensaje cbestadocivil.SetFocus Exit Sub ElseIf Trim(cbciudad) = "" Then

78

MsgBox "Por Favor, ingrese Ciudad", vbExclamation, Mensaje cbciudad.SetFocus Exit Sub End If If Trim(txtocupacion) = "" Then txtocupacion.Text = "-" End If If Trim(txttelefono) = "" Then txttelefono.Text = "-" End If If Trim(TxtAlergias) = "" Then TxtAlergias.Text = "-" End If If Trim(txtAntPatFamiliares) = "" Then txtAntPatFamiliares.Text = "-" End If If Trim(txtAntPatPersonales) = "" Then txtAntPatPersonales.Text = "-" End If If txtcedula = "-" Then Else If ValidaCedula(txtcedula.Text) = False Then MsgBox "N de Cdula no vlido", vbCritical, Mensaje txtcedula.SelStart = 0 txtcedula.SelLength = Len(txtcedula.Text) txtcedula.SetFocus Exit Sub End If End If Set aux = BaseDatos.Execute("SELECT * FROM Ciudades") Do Until aux.EOF If cbciudad = aux!nombreciudad Then aa = aux!IdCiudad Exit Do Else aux.MoveNext End If Loop aux.Close Set aux = Nothing If txtcedula = "-" Then If busca_nombre("Datos_Personales_Paciente", Trim(TxtApellidosNombres.Text), "Apellidos_Nombres") Then MsgBox "Apellidos y Nombre del Paciente, ya existe", vbCritical, Mensaje TxtApellidosNombres.SetFocus Exit Sub End If End If If actualiza = True Then Set aux = BaseDatos.Execute("SELECT cedula FROM Datos_Personales_Paciente") Busca1 = False Do Until aux.EOF If txtcedula = aux!cedula Then Busca1 = True

79

Exit Do Else aux.MoveNext End If Loop aux.Close Set aux = Nothing If txtcedula = "-" Then Busca1 = False End If Set aux = BaseDatos.Execute("SELECT NumeroHistoriaClinica,cedula FROM Datos_Personales_Paciente") Do Until aux.EOF If txthistoriaclinica = aux!NumeroHistoriaClinica And txtcedula = aux!cedula Then Busca1 = False Exit Do Else aux.MoveNext End If Loop aux.Close Set aux = Nothing If txtcedula = "-" Then Busca1 = False End If 'SI LA CEDULA ES VERDADERA SALE If Busca1 = True Then MsgBox "Ya existe este N de Cdula para Paciente", vbCritical, Mensaje txtcedula.SetFocus Exit Sub End If BaseDatos.Execute ("UPDATE Datos_Personales_Paciente SET Cedula='" & txtcedula & "', Apellidos_Nombres='" & UCase(TxtApellidosNombres) & "', Sexo='" & UCase(cbsexo) & "',Fecha_Nacimiento='" & DTPFechaNacimiento & "',Estado_Civil='" & UCase(cbestadocivil) & "',IdCiudad=" & (aa) & ",Ocupacion='" & UCase(txtocupacion) & "', Telefono='" & txttelefono & "', Alergias='" & UCase(TxtAlergias) & "', Antecedentes_Familia= '" & UCase(txtAntPatFamiliares) & "',Antecedentes_Paciente= '" & UCase(txtAntPatPersonales) & "' Where NumeroHistoriaClinica=" & txthistoriaclinica & "") MsgBox "Informacin Actualizada", vbInformation, Mensaje actualiza = False Else If txtcedula = "-" Then Encontrado1 = False Else Encontrado1 = Busca_Personas(frm_datos_pacientes, txtcedula, "SELECT * FROM Datos_Personales_Paciente", "Paciente Existe, busque en lista...") End If If Encontrado1 = False Then Set aux = BaseDatos.Execute("SELECT max(NumeroHistoriaClinica)AS mayor FROM Datos_Personales_Paciente") If IsNull(aux!mayor) Then txthistoriaclinica = 1

80

Else txthistoriaclinica = aux!mayor + 1 End If aux.Close Set aux = Nothing End If

Set aux = BaseDatos.Execute("SELECT NumeroHistoriaClinica FROM Datos_Personales_Paciente") Busca1 = False Do Until aux.EOF If txthistoriaclinica = aux!NumeroHistoriaClinica Then Busca1 = True Exit Do Else aux.MoveNext End If Loop aux.Close Set aux = Nothing 'SI LA CEDULA ES VERDADERA SALE If Busca1 = True Then MsgBox "Ya existe este N de Cdula para Paciente", vbCritical, Mensaje txtcedula.SetFocus Exit Sub End If If Encontrado1 = False Then BaseDatos.Execute "INSERT INTO Datos_Personales_Paciente(NumeroHistoriaClinica,Cedula,Apellidos_Nombres, Sexo,Fecha_Nacimiento,Estado_Civil,IdCiudad,Ocupacion,Telefono,Alergias,A ntecedentes_Familia,Antecedentes_Paciente) values (" & txthistoriaclinica & ",'" & txtcedula & "', '" & UCase(TxtApellidosNombres) & "', '" & UCase(cbsexo) & "','" & DTPFechaNacimiento & "','" & UCase(cbestadocivil) & "'," & (aa) & " ,'" & UCase(txtocupacion) & "','" & txttelefono & "','" & UCase(TxtAlergias) & "', '" & UCase(txtAntPatFamiliares) & "','" & UCase(txtAntPatPersonales) & "' )" MsgBox "Informacin Almacenada", vbInformation, Mensaje End If End If Limpiar Botones VisualizaDatos End Sub Private Sub CmdImprimir_Click() If txthistoriaclinica = "" Then MsgBox "No Hay Registro Activo, debe seleccionar un Paciente de la lista", vbCritical, Mensaje Exit Sub Else Imprime txthistoriaclinica End If End Sub Private Sub CmdNuevo_Click() Limpiar Botones txtcedula.SetFocus

81

End Sub Private Sub CmdSalir_Click() Unload Me End Sub Private Sub DTPFechaNacimiento_Change() lbedad.Caption = edad(DTPFechaNacimiento) End Sub Private Sub DTPFechaNacimiento_Click() lbedad.Caption = edad(DTPFechaNacimiento) End Sub Private Sub DTPFechaNacimiento_LostFocus() lbedad.Caption = edad(DTPFechaNacimiento) End Sub Private Sub Form_KeyPress(KeyAscii As Integer) EnterTab KeyAscii End Sub Private Sub Form_Load() LLenaGrid msflista, "SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Cedula, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Sexo, Datos_Personales_Paciente.Fecha_Nacimiento, Datos_Personales_Paciente.Estado_Civil,Ciudades.NombreCiudad, Datos_Personales_Paciente.Ocupacion, Datos_Personales_Paciente.Telefono, Datos_Personales_Paciente.Alergias, Datos_Personales_Paciente.Antecedentes_Familia, Datos_Personales_Paciente.Antecedentes_Paciente FROM Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad ORDER BY Apellidos_Nombres" msflista.ColWidth(2) = (1000) msflista.ColWidth(3) = (3500) DTPFechaNacimiento = (Date) LlenaCombo cbciudad, "SELECT NombreCiudad FROM Ciudades" End Sub Private Sub msflista_Click() If msflista.Rows = 1 Then Exit Sub If msflista.TextMatrix(msflista.Row, 1) = "" Then Exit Sub VaciarDatos msflista.TextMatrix(msflista.Row, 1) End Sub Private Sub msflista_DblClick() If msflista.Rows = 1 Then MsgBox "No Hay Registro Activo", vbCritical, Mensaje Unload Me Else Set rela = BaseDatos.Execute(" SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Cedula, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Sexo, Datos_Personales_Paciente.Fecha_Nacimiento, Datos_Personales_Paciente.Estado_Civil,Ciudades.NombreCiudad,

82

Datos_Personales_Paciente.Ocupacion, Datos_Personales_Paciente.Telefono, Datos_Personales_Paciente.Alergias, Datos_Personales_Paciente.Antecedentes_Familia, Datos_Personales_Paciente.Antecedentes_Paciente FROM Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad WHERE Datos_Personales_Paciente.NumeroHistoriaClinica = " & msflista.TextMatrix(msflista.Row, 1) & "") frm_historia.txthistoriaclinica = rela!NumeroHistoriaClinica frm_historia.TxtApellidosNombres = rela!Apellidos_Nombres frm_historia.lbedad = edad(DTPFechaNacimiento) frm_historia.TxtAlergias = rela!ALERGIAS rela.Close Set rela = Nothing LLenaGrid frm_historia.msflista, "SELECT Datos_Personales_Paciente.NumeroHistoriaClinica,(Historia_Clinica.Fecha_E laboracion) as Fecha_Visita, (Enfermedades.Enfermedad) as Diagnostico1,( Enfermedades_1.Enfermedad) as Diagnostico2, (Enfermedades_2.Enfermedad) as Diagnostico3, (Enfermedades_3.Enfermedad) as Diagnostico4" & _ " FROM (Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad) INNER JOIN (Enfermedades AS Enfermedades_3 INNER JOIN (Enfermedades AS Enfermedades_2 INNER JOIN (Enfermedades AS Enfermedades_1 INNER JOIN (Enfermedades INNER JOIN Historia_Clinica ON Enfermedades.IdEnfermedad = Historia_Clinica.Diagnostico1) ON Enfermedades_1.IdEnfermedad = Historia_Clinica.Diagnostico2) ON Enfermedades_2.IdEnfermedad = Historia_Clinica.Diagnostico3) ON Enfermedades_3.IdEnfermedad = Historia_Clinica.Diagnostico4) ON Datos_Personales_Paciente.NumeroHistoriaClinica = Historia_Clinica.NumeroHistoriaClinica WHERE Historia_Clinica.NumeroHistoriaClinica= " & frm_historia.txthistoriaclinica & " ORDER BY Historia_Clinica.Fecha_Elaboracion" frm_historia.msflista.ColWidth(1) = 1000 End If CmdSalir_Click frm_historia.Show End Sub Private Sub msflista_LeaveCell() msflista.CellBackColor = &H80000005 End Sub Private Sub msflista_SelChange() If msflista.Rows = 1 Then Exit Sub If msflista.TextMatrix(msflista.Row, 1) = "" Then Exit Sub VaciarDatos msflista.TextMatrix(msflista.Row, 1) End Sub Private Sub TxtAlergias_KeyPress(KeyAscii As Integer) letras_num KeyAscii End Sub Private Sub txtAntPatFamiliares_KeyPress(KeyAscii As Integer) letras_num KeyAscii End Sub Private Sub txtAntPatPersonales_KeyPress(KeyAscii As Integer) letras_num KeyAscii End Sub

83

Private Sub TxtApellidosNombres_Change() If frmbusqueda.Enabled = False Then Dim aux As New ADODB.Recordset Set aux = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Cedula, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Sexo, Datos_Personales_Paciente.Fecha_Nacimiento, Datos_Personales_Paciente.Estado_Civil,Ciudades.NombreCiudad, Datos_Personales_Paciente.Ocupacion, Datos_Personales_Paciente.Telefono, Datos_Personales_Paciente.Alergias, Datos_Personales_Paciente.Antecedentes_Familia, Datos_Personales_Paciente.Antecedentes_Paciente FROM Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad WHERE Datos_Personales_Paciente.Apellidos_Nombres LIKE '" & TxtApellidosNombres & "%'") msflista.Rows = 1 Do Until aux.EOF msflista.AddItem "" & Chr(9) & aux!NumeroHistoriaClinica & Chr(9) & aux!cedula & Chr(9) & aux!Apellidos_Nombres & Chr(9) & aux!SEXO & Chr(9) & aux!Fecha_Nacimiento & Chr(9) & aux!Estado_Civil & Chr(9) & aux!nombreciudad & Chr(9) & aux!Ocupacion & Chr(9) & aux!TELEFONO & Chr(9) & aux!ALERGIAS & Chr(9) & aux!Antecedentes_Familia & Chr(9) & aux!Antecedentes_Paciente aux.MoveNext Loop aux.Close Set aux = Nothing End If End Sub Private Sub TxtApellidosNombres_GotFocus() Sombrea TxtApellidosNombres End Sub Private Sub TxtApellidosNombres_KeyPress(KeyAscii As Integer) letras KeyAscii End Sub Private Sub txtbusqueda_Change() Dim aux As New ADODB.Recordset Set aux = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Cedula, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Sexo, Datos_Personales_Paciente.Fecha_Nacimiento, Datos_Personales_Paciente.Estado_Civil,Ciudades.NombreCiudad, Datos_Personales_Paciente.Ocupacion, Datos_Personales_Paciente.Telefono, Datos_Personales_Paciente.Alergias, Datos_Personales_Paciente.Antecedentes_Familia, Datos_Personales_Paciente.Antecedentes_Paciente FROM Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad WHERE Datos_Personales_Paciente.Apellidos_Nombres LIKE '" & txtbusqueda & "%'") msflista.Rows = 1 Do Until aux.EOF msflista.AddItem "" & Chr(9) & aux!NumeroHistoriaClinica & Chr(9) & aux!cedula & Chr(9) & aux!Apellidos_Nombres & Chr(9) & aux!SEXO & Chr(9) & aux!Fecha_Nacimiento & Chr(9) & aux!Estado_Civil & Chr(9) &

84

aux!nombreciudad & Chr(9) & aux!Ocupacion & Chr(9) & aux!TELEFONO & Chr(9) & aux!ALERGIAS & Chr(9) & aux!Antecedentes_Familia & Chr(9) & aux!Antecedentes_Paciente aux.MoveNext Loop aux.Close Set aux = Nothing End Sub Private Sub txtbusqueda_GotFocus() Sombrea txtbusqueda End Sub Private Sub txtcedula_GotFocus() Sombrea txtcedula End Sub Private Sub txtcedula_KeyPress(KeyAscii As Integer) numero KeyAscii End Sub Private Sub txtocupacion_GotFocus() Sombrea txtocupacion End Sub Private Sub txtocupacion_KeyPress(KeyAscii As Integer) letras KeyAscii End Sub Private Sub txttelefono_KeyPress(KeyAscii As Integer) Telefonos KeyAscii End Sub Sub Limpiar() txthistoriaclinica = "" txtcedula = "" TxtApellidosNombres = "" cbsexo = "" DTPFechaNacimiento = (Date) lbedad.Caption = "" cbestadocivil = "" cbciudad = "" txtocupacion = "" txttelefono = "" TxtAlergias = "" txtAntPatFamiliares = "" txtAntPatPersonales = "" txtbusqueda = "" End Sub Sub Botones() CmdNuevo.Enabled = Not (CmdNuevo.Enabled) CmdGuardar.Enabled = Not (CmdGuardar.Enabled) CmdCancelar.Enabled = Not (CmdCancelar.Enabled) CmdActualizar.Enabled = Not (CmdActualizar.Enabled) CmdSalir.Enabled = Not (CmdSalir.Enabled) frmbusqueda.Enabled = Not (frmbusqueda.Enabled) frmpaciente.Enabled = Not (frmpaciente.Enabled) End Sub

85

Sub VaciarDatos(id As Integer) Set aux = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Cedula, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Sexo, Datos_Personales_Paciente.Fecha_Nacimiento, Datos_Personales_Paciente.Estado_Civil,Ciudades.NombreCiudad, Datos_Personales_Paciente.Ocupacion, Datos_Personales_Paciente.Telefono, Datos_Personales_Paciente.Alergias, Datos_Personales_Paciente.Antecedentes_Familia, Datos_Personales_Paciente.Antecedentes_Paciente FROM Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad WHERE Datos_Personales_Paciente.NumeroHistoriaClinica=" & id) If aux.EOF = False Then txthistoriaclinica = aux!NumeroHistoriaClinica txtcedula = aux!cedula TxtApellidosNombres = aux!Apellidos_Nombres cbsexo = aux!SEXO DTPFechaNacimiento = aux!Fecha_Nacimiento lbedad.Caption = edad(DTPFechaNacimiento) cbestadocivil = aux!Estado_Civil cbciudad = aux!nombreciudad txtocupacion = aux!Ocupacion txttelefono = aux!TELEFONO TxtAlergias = aux!ALERGIAS txtAntPatFamiliares = aux!Antecedentes_Familia txtAntPatPersonales = aux!Antecedentes_Paciente End If Set aux = Nothing End Sub Sub VisualizaDatos() Dim aux As New ADODB.Recordset Set aux = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Cedula, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Sexo, Datos_Personales_Paciente.Fecha_Nacimiento, Datos_Personales_Paciente.Estado_Civil,Ciudades.NombreCiudad, Datos_Personales_Paciente.Ocupacion, Datos_Personales_Paciente.Telefono, Datos_Personales_Paciente.Alergias, Datos_Personales_Paciente.Antecedentes_Familia, Datos_Personales_Paciente.Antecedentes_Paciente FROM Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad ORDER BY Apellidos_Nombres") msflista.Rows = 1 Do Until aux.EOF msflista.AddItem "" & Chr(9) & aux!NumeroHistoriaClinica & Chr(9) & aux!cedula & Chr(9) & aux!Apellidos_Nombres & Chr(9) & aux!SEXO & Chr(9) & aux!Fecha_Nacimiento & Chr(9) & aux!Estado_Civil & Chr(9) & aux!nombreciudad & Chr(9) & aux!Ocupacion & Chr(9) & aux!TELEFONO & Chr(9) & aux!ALERGIAS & Chr(9) & aux!Antecedentes_Familia & Chr(9) & aux!Antecedentes_Paciente aux.MoveNext Loop aux.Close Set aux = Nothing End Sub

86

Sub Imprime(id As Integer) Dim tPaciente As New ADODB.Recordset Set tPaciente = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Cedula, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Sexo, Datos_Personales_Paciente.Fecha_Nacimiento, Datos_Personales_Paciente.Estado_Civil, Ciudades.NombreCiudad, Datos_Personales_Paciente.Ocupacion, Datos_Personales_Paciente.Telefono, Datos_Personales_Paciente.Alergias, Datos_Personales_Paciente.Antecedentes_Familia, Datos_Personales_Paciente.Antecedentes_Paciente FROM Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad WHERE Datos_Personales_Paciente.NumeroHistoriaClinica=" & id) Set DReportPacientes.DataSource = tPaciente DReportPacientes.Show 1 End Sub

Formulario Frm_historia ( historia.frm)


Option Explicit Public llena As Boolean Dim Modifica, Encontrado As Boolean Dim aux As New ADODB.Recordset Dim aa, bb, cc, dd, fe Dim FEC As String Private Sub cmbdiagnostico1_KeyPress(KeyAscii As Integer) Combo cmbdiagnostico1, KeyAscii End Sub Private Sub cmbdiagnostico2_KeyPress(KeyAscii As Integer) Combo cmbdiagnostico2, KeyAscii End Sub Private Sub cmbdiagnostico3_KeyPress(KeyAscii As Integer) Combo cmbdiagnostico3, KeyAscii End Sub Private Sub cmbdiagnostico4_KeyPress(KeyAscii As Integer) Combo cmbdiagnostico4, KeyAscii End Sub Private Sub CmdActualizar_Click() If cmbdiagnostico1 = "" Then MsgBox "Seleccione de la Lista, el Registro que desea actualizar ", vbCritical, Mensaje Exit Sub End If Botones Modifica = True txtpresionarterial.SetFocus End Sub Private Sub CmdCancelar_Click() Limpiar Botones Modifica = False

87

End Sub Private Sub CmdDiagnostico_Click() llena = True Load frm_diagnostico frm_diagnostico.Show 1 End Sub Private Sub CmdGuardar_Click() Dim aux As New ADODB.Recordset If Trim(txtpresionarterial) = "" Then txtpresionarterial.Text = "-" End If If Trim(txtpulsaciones) = "" Then txtpulsaciones.Text = "-" End If If Trim(txtrespiracion) = "" Then txtrespiracion.Text = "-" End If If Trim(txttemperatura) = "" Then txttemperatura.Text = "-" End If If Trim(txtperimetrocefalico) = "" Then txtperimetrocefalico.Text = "-" End If If Trim(txttalla) = "" Then txttalla.Text = "-" End If If Trim(txtpeso) = "" Then txtpeso.Text = "-" End If If Trim(txtmotivoconsulta) = "" Then MsgBox "Ingrese el Motivo de la Consulta" txtmotivoconsulta.SetFocus Exit Sub End If If Trim(txtprediagnostico) = "" Then txtprediagnostico.Text = "-" End If If Trim(txttratamiento) = "" Then txttratamiento.Text = "-" End If If Trim(txtprescripcion) = "" Then txtprescripcion.Text = "-" End If Set aux = BaseDatos.Execute("SELECT * FROM Enfermedades") Do Until aux.EOF If cmbdiagnostico1 = "" Then aa = 1 Exit Do End If

88

If cmbdiagnostico1 = aux!enfermedad Then aa = aux!Idenfermedad Exit Do Else aux.MoveNext End If Loop aux.Close Set aux = Nothing Set aux = BaseDatos.Execute("SELECT * FROM Enfermedades") Do Until aux.EOF If cmbdiagnostico2 = "" Then bb = 1 Exit Do End If If cmbdiagnostico2 = aux!enfermedad Then bb = aux!Idenfermedad Exit Do Else aux.MoveNext End If Loop aux.Close Set aux = Nothing Set aux = BaseDatos.Execute("SELECT * FROM Enfermedades") Do Until aux.EOF If cmbdiagnostico3 = "" Then cc = 1 Exit Do End If If cmbdiagnostico3 = aux!enfermedad Then cc = aux!Idenfermedad Exit Do Else aux.MoveNext End If Loop aux.Close Set aux = Nothing Set aux = BaseDatos.Execute("SELECT * FROM Enfermedades") Do Until aux.EOF If cmbdiagnostico4 = "" Then dd = 1 Exit Do End If If cmbdiagnostico4 = aux!enfermedad Then dd = aux!Idenfermedad Exit Do Else aux.MoveNext End If Loop aux.Close Set aux = Nothing If Modifica = False Then fe = CStr(Now) BaseDatos.Execute "INSERT INTO Historia_Clinica(NumeroHistoriaClinica,Fecha_Elaboracion,Motivo_Consulta, Presion_Arterial,Pulso,Respiracion,Temperatura,Perimetro_Cefalico,Talla,P eso,Prediagnostico,Diagnostico1,Diagnostico2,Diagnostico3,Diagnostico4,Tr atamiento,Prescripcion) VALUES (" & txthistoriaclinica & ", '" &

89

CStr(Now) & "', '" & UCase(txtmotivoconsulta) & "', '" & UCase(txtpresionarterial) & "', '" & (txtpulsaciones) & "' , '" & txtrespiracion & "', '" & txttemperatura & "', '" & txtperimetrocefalico & "', '" & txttalla & "', '" & txtpeso & "','" & UCase(txtprediagnostico) & "'," & (aa) & "," & (bb) & "," & (cc) & "," & (dd) & ",'" & UCase(txttratamiento) & "', '" & UCase(txtprescripcion) & "' )" MsgBox "Informacin Almacenada", vbInformation, Mensaje ElseIf Modifica = True Then fe = CStr(lbfechavisita) BaseDatos.Execute "UPDATE Historia_Clinica SET NumeroHistoriaClinica= " & txthistoriaclinica & ",Motivo_Consulta= '" & UCase(txtmotivoconsulta) & "', Presion_Arterial='" & UCase(txtpresionarterial) & "', Pulso='" & (txtpulsaciones) & "' ,Respiracion= '" & txtrespiracion & "', Temperatura='" & txttemperatura & "', Perimetro_Cefalico='" & txtperimetrocefalico & "', Talla='" & txttalla & "',Peso='" & txtpeso & "', Prediagnostico='" & UCase(txtprediagnostico) & "',Diagnostico1=" & (aa) & ",Diagnostico2=" & (bb) & ",Diagnostico3=" & (cc) & ",Diagnostico4=" & (dd) & ",Tratamiento='" & UCase(txttratamiento) & "', Prescripcion='" & UCase(txtprescripcion) & "' WHERE CStr(Fecha_Elaboracion)='" & CStr(lbfechavisita) & "' and NumeroHistoriaClinica= " & txthistoriaclinica MsgBox "Informacin Actualizada", vbInformation, Mensaje Modifica = False End If If MsgBox("Desea Imprimir la Receta", vbYesNo, Mensaje) = vbYes Then ImprimeRecetaG txthistoriaclinica End If Limpiar Botones VisualizaDatos End Sub Private Sub CmdImpHistorias_Click() If msflista.Rows = 1 Then MsgBox "No Hay Registro Activo", vbCritical, Mensaje Exit Sub End If ImprimeHistorias txthistoriaclinica End Sub Private Sub CmdImprimir_Click() If lbfechavisita = "" Then MsgBox "No Hay Registro Activo, debe seleccionar una cita de la lista", vbCritical, Mensaje Exit Sub Else Imprime txthistoriaclinica End If End Sub Private Sub CmdNuevo_Click() If txthistoriaclinica = "" Then MsgBox "Debe tener seleccionado un Paciente", vbInformation, Mensaje Else Limpiar Botones txtpresionarterial.SetFocus End If

90

End Sub Private Sub CmdPacientes_Click() llena = True CmdSalir_Click Load frm_datos_pacientes frm_datos_pacientes.Show 1 End Sub Private Sub cmdreceta_Click() If lbfechavisita = "" Then MsgBox "No Hay Registro Activo, debe seleccionar una cita de la lista", vbCritical, Mensaje Exit Sub Else ImprimeReceta txthistoriaclinica End If End Sub Private Sub CmdSalir_Click() Unload Me End Sub Private Sub Form_KeyPress(KeyAscii As Integer) EnterTab KeyAscii End Sub Private Sub Form_Load() lbfechavisita.Caption = "" lblFecha.Caption = Format(Date, "Long Date") & LlenaCombo cmbdiagnostico1, "SELECT Enfermedad LlenaCombo cmbdiagnostico2, "SELECT Enfermedad LlenaCombo cmbdiagnostico3, "SELECT Enfermedad LlenaCombo cmbdiagnostico4, "SELECT Enfermedad End Sub

", " FROM FROM FROM FROM

& Time enfermedades" enfermedades" enfermedades" enfermedades"

Private Sub msflista_Click() If msflista.Rows = 1 Then Exit Sub If msflista.TextMatrix(msflista.Row, 1) = "" Then Exit Sub lbfechavisita.Caption = msflista.TextMatrix(msflista.Row, 2) VaciarDatos msflista.TextMatrix(msflista.Row, 1) End Sub Private Sub msflista_LeaveCell() msflista.CellBackColor = &H80000005 End Sub Private Sub msflista_SelChange() If msflista.Rows = 1 Then Exit Sub If msflista.TextMatrix(msflista.Row, 1) = "" Then Exit Sub lbfechavisita.Caption = msflista.TextMatrix(msflista.Row, 2) VaciarDatos msflista.TextMatrix(msflista.Row, 1) End Sub Private Sub Timer1_Timer() lblFecha.Caption = Format(Date, "Long Date") & ", " & Time End Sub Private Sub txtperimetrocefalico_KeyPress(KeyAscii As Integer) numero_punto KeyAscii

91

End Sub Private Sub txtpeso_KeyPress(KeyAscii As Integer) numero_va KeyAscii End Sub Private Sub txtpresionarterial_KeyPress(KeyAscii As Integer) presion_arterial KeyAscii End Sub Private Sub txtpulsaciones_KeyPress(KeyAscii As Integer) numero_va KeyAscii End Sub Private Sub txtrespiracion_KeyPress(KeyAscii As Integer) numero_va KeyAscii End Sub Private Sub txttalla_KeyPress(KeyAscii As Integer) numero_va KeyAscii End Sub Private Sub txttemperatura_KeyPress(KeyAscii As Integer) numero_punto KeyAscii End Sub Sub Limpiar() txtpresionarterial = "" txtpulsaciones = "" txtrespiracion = "" txttemperatura = "" txtperimetrocefalico = "" txttalla = "" txtpeso = "" cmbdiagnostico1 = "" cmbdiagnostico2 = "" cmbdiagnostico3 = "" cmbdiagnostico4 = "" txtmotivoconsulta = "" txtprediagnostico = "" txttratamiento = "" txtprescripcion = "" lbfechavisita = "" End Sub Sub Botones() CmdNuevo.Enabled = Not (CmdNuevo.Enabled) CmdGuardar.Enabled = Not (CmdGuardar.Enabled) CmdCancelar.Enabled = Not (CmdCancelar.Enabled) CmdActualizar.Enabled = Not (CmdActualizar.Enabled) CmdSalir.Enabled = Not (CmdSalir.Enabled) frmsignosvitales.Enabled = Not (frmsignosvitales.Enabled) frmdiagnostico.Enabled = Not (frmdiagnostico.Enabled) txtmotivoconsulta.Enabled = Not (txtmotivoconsulta.Enabled) txtprediagnostico.Enabled = Not (txtprediagnostico.Enabled) txttratamiento.Enabled = Not (txttratamiento.Enabled) txtprescripcion.Enabled = Not (txtprescripcion.Enabled) Frmreceta.Enabled = Not (Frmreceta.Enabled) End Sub

92

Sub VaciarDatos(id As Integer) Set aux = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Alergias, (Historia_Clinica.Fecha_Elaboracion) AS Fecha_Visita, Historia_Clinica.Motivo_Consulta, Historia_Clinica.Presion_Arterial, Historia_Clinica.Pulso, Historia_Clinica.Respiracion, Historia_Clinica.Temperatura, Historia_Clinica.Perimetro_Cefalico, Historia_Clinica.Talla, Historia_Clinica.Peso,(Enfermedades.Enfermedad) AS Diagnostico1, ( Enfermedades_1.Enfermedad) AS Diagnostico2, (Enfermedades_2.Enfermedad) AS Diagnostico3, (Enfermedades_3.Enfermedad) AS Diagnostico4, Historia_Clinica.Prediagnostico, Historia_Clinica.Tratamiento, Historia_Clinica.Prescripcion" & _ " FROM (Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad) INNER JOIN (Enfermedades AS Enfermedades_3 INNER JOIN (Enfermedades AS Enfermedades_2 INNER JOIN (Enfermedades AS Enfermedades_1 INNER JOIN (Enfermedades INNER JOIN Historia_Clinica ON Enfermedades.IdEnfermedad = Historia_Clinica.Diagnostico1) ON Enfermedades_1.IdEnfermedad = Historia_Clinica.Diagnostico2) ON Enfermedades_2.IdEnfermedad = Historia_Clinica.Diagnostico3) ON Enfermedades_3.IdEnfermedad = Historia_Clinica.Diagnostico4) ON Datos_Personales_Paciente.NumeroHistoriaClinica = Historia_Clinica.NumeroHistoriaClinica WHERE Datos_Personales_Paciente.NumeroHistoriaClinica=" & id & " AND CStr(Historia_Clinica.Fecha_Elaboracion) = '" & CStr(lbfechavisita) & "' ") If aux.EOF = False Then txtpresionarterial = aux!presion_arterial txtpulsaciones = aux!Pulso txtrespiracion = aux!Respiracion txttemperatura = aux!Temperatura txtperimetrocefalico = aux!Perimetro_Cefalico txttalla = aux!talla txtpeso = aux!peso cmbdiagnostico1 = aux!Diagnostico1 cmbdiagnostico2 = aux!Diagnostico2 cmbdiagnostico3 = aux!Diagnostico3 cmbdiagnostico4 = aux!Diagnostico4 txtmotivoconsulta = aux!Motivo_Consulta txtprediagnostico = aux!Prediagnostico txttratamiento = aux!tratamiento txtprescripcion = aux!prescripcion End If Set aux = Nothing End Sub Sub VisualizaDatos() Dim aux As New ADODB.Recordset Set aux = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica,(Historia_Clinica.Fecha_E laboracion) as Fecha_Visita, (Enfermedades.Enfermedad) as Diagnostico1,( Enfermedades_1.Enfermedad) as Diagnostico2, (Enfermedades_2.Enfermedad) as Diagnostico3, (Enfermedades_3.Enfermedad) as Diagnostico4" & _ " FROM (Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad) INNER JOIN (Enfermedades AS Enfermedades_3 INNER JOIN (Enfermedades AS Enfermedades_2 INNER JOIN (Enfermedades AS Enfermedades_1 INNER JOIN (Enfermedades INNER JOIN Historia_Clinica ON Enfermedades.IdEnfermedad = Historia_Clinica.Diagnostico1) ON Enfermedades_1.IdEnfermedad =

93

Historia_Clinica.Diagnostico2) ON Enfermedades_2.IdEnfermedad = Historia_Clinica.Diagnostico3) ON Enfermedades_3.IdEnfermedad = Historia_Clinica.Diagnostico4) ON Datos_Personales_Paciente.NumeroHistoriaClinica = Historia_Clinica.NumeroHistoriaClinica WHERE Historia_Clinica.NumeroHistoriaClinica= " & frm_historia.txthistoriaclinica & " ORDER BY Historia_Clinica.Fecha_Elaboracion") msflista.Rows = 1 Do Until aux.EOF msflista.AddItem "" & Chr(9) & aux!NumeroHistoriaClinica & Chr(9) & aux!Fecha_Visita & Chr(9) & aux!Diagnostico1 & Chr(9) & aux!Diagnostico2 & Chr(9) & aux!Diagnostico3 & Chr(9) & aux!Diagnostico4 aux.MoveNext Loop aux.Close Set aux = Nothing End Sub Sub Imprime(id As Integer) Dim tHistoria As New ADODB.Recordset Set tHistoria = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Alergias, Historia_Clinica.Fecha_Elaboracion, Historia_Clinica.Motivo_Consulta, Historia_Clinica.Presion_Arterial, Historia_Clinica.Pulso, Historia_Clinica.Respiracion, Historia_Clinica.Temperatura, Historia_Clinica.Perimetro_Cefalico, Historia_Clinica.Talla,Historia_Clinica.Peso, (Enfermedades.Enfermedad) AS Diagnostico1, ( Enfermedades_1.Enfermedad) AS Diagnostico2, (Enfermedades_2.Enfermedad) AS Diagnostico3, (Enfermedades_3.Enfermedad) AS Diagnostico4, Historia_Clinica.Prediagnostico, Historia_Clinica.Tratamiento, Historia_Clinica.Prescripcion" & _ " FROM (Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad) INNER JOIN (Enfermedades AS Enfermedades_3 INNER JOIN (Enfermedades AS Enfermedades_2 INNER JOIN (Enfermedades AS Enfermedades_1 INNER JOIN (Enfermedades INNER JOIN Historia_Clinica ON Enfermedades.IdEnfermedad = Historia_Clinica.Diagnostico1) ON Enfermedades_1.IdEnfermedad = Historia_Clinica.Diagnostico2) ON Enfermedades_2.IdEnfermedad = Historia_Clinica.Diagnostico3) ON Enfermedades_3.IdEnfermedad = Historia_Clinica.Diagnostico4) ON Datos_Personales_Paciente.NumeroHistoriaClinica = Historia_Clinica.NumeroHistoriaClinica WHERE Datos_Personales_Paciente.NumeroHistoriaClinica=" & id & " AND CStr(Historia_Clinica.Fecha_Elaboracion)='" & CStr(lbfechavisita) & "' ") Set DReportHistoriaClinica.DataSource = tHistoria DReportHistoriaClinica.Sections("Seccin2").Controls.Item("EFechaElaborac ion").Caption = lbfechavisita DReportHistoriaClinica.Sections("Seccin2").Controls("EHistoriaClinica"). Caption = txthistoriaclinica DReportHistoriaClinica.Sections("Seccin2").Controls("EPaciente").Caption = TxtApellidosNombres DReportHistoriaClinica.Sections("Seccin2").Controls("EAlergias").Caption = txtalergias DReportHistoriaClinica.WindowState = vbMaximized DReportHistoriaClinica.Refresh DReportHistoriaClinica.Show 1 End Sub Sub ImprimeHistorias(id As Integer) Dim tHistoria As New ADODB.Recordset

94

Set tHistoria = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Alergias, Historia_Clinica.Fecha_Elaboracion, Historia_Clinica.Motivo_Consulta, Historia_Clinica.Presion_Arterial, Historia_Clinica.Pulso, Historia_Clinica.Respiracion, Historia_Clinica.Temperatura, Historia_Clinica.Perimetro_Cefalico, Historia_Clinica.Talla,Historia_Clinica.PEso, (Enfermedades.Enfermedad) AS Diagnostico1, ( Enfermedades_1.Enfermedad) AS Diagnostico2, (Enfermedades_2.Enfermedad) AS Diagnostico3, (Enfermedades_3.Enfermedad) AS Diagnostico4, Historia_Clinica.Prediagnostico, Historia_Clinica.Tratamiento, Historia_Clinica.Prescripcion" & _ " FROM (Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad) INNER JOIN (Enfermedades AS Enfermedades_3 INNER JOIN (Enfermedades AS Enfermedades_2 INNER JOIN (Enfermedades AS Enfermedades_1 INNER JOIN (Enfermedades INNER JOIN Historia_Clinica ON Enfermedades.IdEnfermedad = Historia_Clinica.Diagnostico1) ON Enfermedades_1.IdEnfermedad = Historia_Clinica.Diagnostico2) ON Enfermedades_2.IdEnfermedad = Historia_Clinica.Diagnostico3) ON Enfermedades_3.IdEnfermedad = Historia_Clinica.Diagnostico4) ON Datos_Personales_Paciente.NumeroHistoriaClinica = Historia_Clinica.NumeroHistoriaClinica WHERE Datos_Personales_Paciente.NumeroHistoriaClinica=" & id & " ") Set DReportHistoriasGeneral.DataSource = tHistoria DReportHistoriasGeneral.Sections("Seccin2").Controls("EHistoriaClinica") .Caption = txthistoriaclinica DReportHistoriasGeneral.Sections("Seccin2").Controls("EPaciente").Captio n = TxtApellidosNombres DReportHistoriasGeneral.Sections("Seccin2").Controls("EAlergias").Captio n = txtalergias DReportHistoriasGeneral.Show 1 End Sub Sub ImprimeReceta(id As Integer) Dim tReceta As New ADODB.Recordset Set tReceta = BaseDatos.Execute("SELECT Historia_Clinica.Fecha_Elaboracion, Historia_Clinica.NumeroHistoriaClinica, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Alergias,Historia_Clinica.Motivo_Consulta, Historia_Clinica.Tratamiento, Historia_Clinica.Prescripcion FROM Datos_Personales_Paciente INNER JOIN Historia_Clinica ON Datos_Personales_Paciente.NumeroHistoriaClinica = Historia_Clinica.NumeroHistoriaClinica WHERE Datos_Personales_Paciente.NumeroHistoriaClinica=" & id & " AND CStr(Historia_Clinica.Fecha_Elaboracion)='" & CStr(lbfechavisita) & "' ") Set DReportReceta.DataSource = tReceta DReportReceta.Sections("Seccin4").Controls.Item("E2FechaElaboracion").Ca ption = lbfechavisita DReportReceta.Sections("Seccin4").Controls("E6Paciente").Caption = TxtApellidosNombres DReportReceta.Sections("Seccin4").Controls.Item("E1FechaElaboracion").Ca ption = lbfechavisita DReportReceta.Sections("Seccin4").Controls("E5Paciente").Caption = TxtApellidosNombres DReportReceta.Sections("Seccin4").Controls("E4Edad").Caption = lbedad DReportReceta.Show 1 End Sub Sub ImprimeRecetaG(id As Integer) Dim tReceta As New ADODB.Recordset

95

Set tReceta = BaseDatos.Execute("SELECT Historia_Clinica.Fecha_Elaboracion, Historia_Clinica.NumeroHistoriaClinica, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Alergias,Historia_Clinica.Motivo_Consulta, Historia_Clinica.Tratamiento, Historia_Clinica.Prescripcion FROM Datos_Personales_Paciente INNER JOIN Historia_Clinica ON Datos_Personales_Paciente.NumeroHistoriaClinica = Historia_Clinica.NumeroHistoriaClinica WHERE Datos_Personales_Paciente.NumeroHistoriaClinica=" & id & " AND CStr(Historia_Clinica.Fecha_Elaboracion)='" & CStr(fe) & "' ") lbfechavisita = tReceta!Fecha_Elaboracion Set DReportReceta.DataSource = tReceta DReportReceta.Sections("Seccin4").Controls.Item("E2FechaElaboracion").Ca ption = lbfechavisita DReportReceta.Sections("Seccin4").Controls("E6Paciente").Caption = TxtApellidosNombres DReportReceta.Sections("Seccin4").Controls.Item("E1FechaElaboracion").Ca ption = lbfechavisita DReportReceta.Sections("Seccin4").Controls("E5Paciente").Caption = TxtApellidosNombres DReportReceta.Sections("Seccin4").Controls("E4Edad").Caption = lbedad DReportReceta.Show 1 End Sub

Formulario Cambio Contrasea ( frm_contrasea.frm) Dim aux As New ADODB.Recordset


Dim actualiza, Encontrado1, Busca1 As Boolean Private Sub CmdCancelar_Click() Limpiar Botones actualiza = False End Sub Private Sub CmdGuardar_Click() If Trim(txtnombre) = "" Then MsgBox "Ingrese el Nombre del Usuario", vbInformation, Mensaje txtnombre.SetFocus Exit Sub ElseIf Trim(txtcontrasea) = "" Then MsgBox "Ingrese la Contrasea", vbInformation, Mensaje txtcontrasea.SetFocus Exit Sub End If BaseDatos.Execute ("UPDATE Clave SET Idclave='" & txtcontrasea & "',usuario='" & UCase(txtnombre) & "'") MsgBox "Informacin Actualizada", vbInformation, Mensaje Limpiar Botones End Sub Private Sub CmdNuevo_Click() Limpiar Botones

96

txtnombre.SetFocus End Sub Private Sub CmdSalir_Click() Unload Me End Sub Sub Botones() CmdNuevo.Enabled = Not (CmdNuevo.Enabled) CmdGuardar.Enabled = Not (CmdGuardar.Enabled) CmdCancelar.Enabled = Not (CmdCancelar.Enabled) CmdSalir.Enabled = Not (CmdSalir.Enabled) frmdatos.Enabled = Not (frmdatos.Enabled) End Sub Sub Limpiar() txtnombre = "" txtcontrasea = "" End Sub Private Sub Form_KeyPress(KeyAscii As Integer) EnterTab KeyAscii End Sub

Formulario Diagnstico frm_diagnostico ( frm_diagnostico.frm)


Dim Modifica, Encontrado As Boolean Dim aux As New ADODB.Recordset Private Sub CmdActualizar_Click() If txtid_diagnostico = 1 Then MsgBox "Esta informacin no se puede actualiza", vbInformation, Mensaje Exit Sub End If If txtnombre_diagnostico = "" Then MsgBox "Seleccione de la Lista, el Registro que desea actualizar ", vbCritical, Mensaje Exit Sub End If Botones Modifica = True txtnombre_diagnostico.SetFocus End Sub Private Sub CmdCancelar_Click() Limpiar Botones Modifica = False End Sub Private Sub CmdGuardar_Click() Dim aux As New ADODB.Recordset If Trim(txtnombre_diagnostico) = "" Then MsgBox "Ingrese el Nombre de la Enfermedad" txtnombre_diagnostico.SetFocus Exit Sub End If

97

If Modifica = False Then Set aux = BaseDatos.Execute("SELECT Enfermedad FROM Enfermedades WHERE ucase(Enfermedad)='" & QuitaTilde(UCase(txtnombre_diagnostico)) & "'") If aux.EOF = False Then MsgBox "La Enfermedad, ya existe", vbCritical, Mensaje txtnombre_diagnostico.SetFocus Exit Sub End If aux.Close Set aux = Nothing Set aux = BaseDatos.Execute("SELECT max(idenfermedad)as mayor FROM Enfermedades") If IsNull(aux!mayor) Then txtid_diagnostico = 1 Else txtid_diagnostico = aux!mayor + 1 End If aux.Close Set aux = Nothing BaseDatos.Execute "INSERT INTO Enfermedades(IdEnfermedad,Enfermedad) VALUES (" & txtid_diagnostico & ", '" & UCase(txtnombre_diagnostico) & "')" MsgBox "Informacin Almacenada", vbInformation, Mensaje LstLista.Refresh ElseIf Modifica = True Then Set aux = BaseDatos.Execute("SELECT Enfermedad FROM Enfermedades WHERE IdEnfermedad <> " & txtid_diagnostico) Encontrado = False Do Until Encontrado = True Or aux.EOF If QuitaTilde(UCase(txtnombre_diagnostico)) = QuitaTilde(UCase(aux!enfermedad)) Then Encontrado = True Exit Do End If aux.MoveNext Loop aux.Close Set aux = Nothing If Encontrado = True Then MsgBox "Ya existe la Enfermedad", vbCritical, Mensaje txtnombre_diagnostico.SetFocus Exit Sub End If BaseDatos.Execute "UPDATE Enfermedades SET Enfermedad='" & UCase(txtnombre_diagnostico) & "' WHERE IdEnfermedad=" & txtid_diagnostico MsgBox "Informacin Actualizada", vbInformation, Mensaje Modifica = False LstLista.Refresh End If Limpiar Botones visualiza If frm_historia.llena = True Then LlenaCombo frm_historia.cmbdiagnostico1, "SELECT Enfermedad FROM Enfermedades" LlenaCombo frm_historia.cmbdiagnostico2, "SELECT Enfermedad FROM Enfermedades" LlenaCombo frm_historia.cmbdiagnostico3, "SELECT Enfermedad FROM Enfermedades"

98

LlenaCombo frm_historia.cmbdiagnostico4, "SELECT Enfermedad FROM Enfermedades" Unload Me frm_historia.llena = False End If End Sub Private Sub CmdNuevo_Click() Limpiar Botones txtnombre_diagnostico.SetFocus End Sub Private Sub CmdSalir_Click() Unload Me End Sub Private Sub Form_Load() LlenaList LstLista, "SELECT Enfermedad FROM Enfermedades ORDER BY Enfermedad" End Sub Private Sub Form_KeyPress(KeyAscii As Integer) EnterTab KeyAscii End Sub Sub Limpiar() txtid_diagnostico = "" txtnombre_diagnostico = "" End Sub Sub Botones() CmdNuevo.Enabled = Not (CmdNuevo.Enabled) CmdGuardar.Enabled = Not (CmdGuardar.Enabled) CmdCancelar.Enabled = Not (CmdCancelar.Enabled) CmdActualizar.Enabled = Not (CmdActualizar.Enabled) CmdSalir.Enabled = Not (CmdSalir.Enabled) FrmLista.Enabled = Not (FrmLista.Enabled) frmregistro.Enabled = Not (frmregistro.Enabled) End Sub Sub visualiza() Dim aux As New ADODB.Recordset Set aux = BaseDatos.Execute("SELECT Enfermedad FROM Enfermedades ORDER BY Enfermedad") LstLista.Clear Do Until aux.EOF LstLista.AddItem aux!enfermedad aux.MoveNext Loop aux.Close Set aux = Nothing End Sub Private Sub LstLista_Click() llenaDatos LstLista.Text End Sub Sub llenaDatos(nom As String) Dim aux As New ADODB.Recordset

99

Set aux = BaseDatos.Execute("SELECT * FROM Enfermedades WHERE Enfermedad='" & Trim(nom) & "'") txtid_diagnostico = aux!Idenfermedad txtnombre_diagnostico = aux!enfermedad aux.Close Set aux = Nothing End Sub Sub Sombrea(txt As Object) txt.SelStart = 0 txt.SelLength = Len(txt) End Sub Private Sub txtnombre_diagnostico_GotFocus() Sombrea txtnombre_diagnostico End Sub Private Sub txtnombre_diagnostico_KeyPress(KeyAscii As Integer) letras_num KeyAscii End Sub

Formulario Ciudad frm_ciudad (frm_cuidades.frm)


Dim Modifica, Encontrado As Boolean Dim aux As New ADODB.Recordset Private Sub CmdActualizar_Click() If txtnombre_ciudad = "" Then MsgBox "Seleccione de la Lista, el Registro que desea actualizar ", vbCritical, Mensaje Exit Sub End If Botones Modifica = True txtnombre_ciudad.SetFocus End Sub Private Sub CmdCancelar_Click() Limpiar Botones Modifica = False End Sub Private Sub CmdGuardar_Click() Dim aux As New ADODB.Recordset If Trim(txtnombre_ciudad) = "" Then MsgBox "Ingrese el Nombre de la Ciudad" txtnombre_ciudad.SetFocus Exit Sub End If If Modifica = False Then Set aux = BaseDatos.Execute("SELECT NombreCiudad FROM Ciudades WHERE ucase(NombreCiudad)='" & QuitaTilde(UCase(txtnombre_ciudad)) & "'") If aux.EOF = False Then MsgBox "La Ciudad, ya existe", vbCritical, Mensaje txtnombre_ciudad.SetFocus Exit Sub End If

100

aux.Close Set aux = Nothing Set aux = BaseDatos.Execute("SELECT max(idCiudad)as mayor FROM Ciudades") If IsNull(aux!mayor) Then txtid_ciudad = 1 Else txtid_ciudad = aux!mayor + 1 End If aux.Close Set aux = Nothing BaseDatos.Execute "INSERT INTO Ciudades(IdCiudad,NombreCiudad) VALUES (" & txtid_ciudad & ", '" & UCase(txtnombre_ciudad) & "')" MsgBox "Informacin Almacenada", vbInformation, Mensaje LstLista.Refresh ElseIf Modifica = True Then Set aux = BaseDatos.Execute("SELECT NombreCiudad FROM Ciudades WHERE IdCiudad <> " & txtid_ciudad) Encontrado = False Do Until Encontrado = True Or aux.EOF If QuitaTilde(UCase(txtnombre_ciudad)) = QuitaTilde(UCase(aux!nombreciudad)) Then Encontrado = True Exit Do End If aux.MoveNext Loop aux.Close Set aux = Nothing If Encontrado = True Then MsgBox "Ya existe la Ciudad", vbCritical, Mensaje txtnombre_ciudad.SetFocus Exit Sub End If BaseDatos.Execute "UPDATE Ciudades SET NombreCiudad='" & UCase(txtnombre_ciudad) & "' WHERE IdCiudad=" & txtid_ciudad MsgBox "Informacin Actualizada", vbInformation, Mensaje Modifica = False LstLista.Refresh End If Limpiar Botones visualiza If frm_datos_pacientes.llena = True Then frm_datos_pacientes.cbciudad.Clear LlenaCombo frm_datos_pacientes.cbciudad, "SELECT NombreCiudad FROM Ciudades" Unload Me frm_datos_pacientes.llena = False End If End Sub Private Sub CmdNuevo_Click() Limpiar Botones txtnombre_ciudad.SetFocus End Sub Private Sub CmdSalir_Click() Unload Me End Sub

101

Private Sub Form_KeyPress(KeyAscii As Integer) EnterTab KeyAscii End Sub Private Sub Form_Load() LlenaList LstLista, "SELECT NombreCiudad FROM Ciudades ORDER BY NombreCiudad" End Sub Private Sub LstLista_Click() llenaDatos LstLista.Text End Sub Private Sub txtnombre_ciudad_GotFocus() Sombrea txtnombre_ciudad End Sub Private Sub txtnombre_ciudad_KeyPress(KeyAscii As Integer) letras KeyAscii End Sub Sub Sombrea(txt As Object) txt.SelStart = 0 txt.SelLength = Len(txt) End Sub

Sub Botones() CmdNuevo.Enabled = Not (CmdNuevo.Enabled) CmdGuardar.Enabled = Not (CmdGuardar.Enabled) CmdCancelar.Enabled = Not (CmdCancelar.Enabled) CmdActualizar.Enabled = Not (CmdActualizar.Enabled) CmdSalir.Enabled = Not (CmdSalir.Enabled) FrmLista.Enabled = Not (FrmLista.Enabled) FrmRegistro.Enabled = Not (FrmRegistro.Enabled) End Sub Sub Limpiar() txtid_ciudad = "" txtnombre_ciudad = "" End Sub Sub llenaDatos(nom As String) Dim aux As New ADODB.Recordset Set aux = BaseDatos.Execute("SELECT * FROM Ciudades WHERE NombreCiudad='" & Trim(nom) & "'") txtid_ciudad = aux!IdCiudad txtnombre_ciudad = aux!nombreciudad aux.Close Set aux = Nothing End Sub Sub visualiza() Dim aux As New ADODB.Recordset Set aux = BaseDatos.Execute("SELECT NombreCiudad FROM Ciudades ORDER BY NombreCiudad") LstLista.Clear Do Until aux.EOF LstLista.AddItem aux!nombreciudad aux.MoveNext Loop

102

aux.Close Set aux = Nothing End Sub

Formulario Estadstica frm_ reportes (frm_reportes.frm)


Dim sumavis Private Sub Cmdbuscar_Click() If CDate(DTPFechaI) > CDate(DTPFechaF) Then MsgBox "La fecha inicial debe ser menor que la fecha final", vbCritical, Mensaje Else Dim aux As New ADODB.Recordset Set aux = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Alergias, Historia_Clinica.Fecha_Elaboracion, Historia_Clinica.Motivo_Consulta, Historia_Clinica.Presion_Arterial, Historia_Clinica.Pulso, Historia_Clinica.Respiracion, Historia_Clinica.Temperatura, Historia_Clinica.Perimetro_Cefalico, Historia_Clinica.Talla, (Enfermedades.Enfermedad) AS Diagnostico1, ( Enfermedades_1.Enfermedad) AS Diagnostico2, (Enfermedades_2.Enfermedad) AS Diagnostico3, (Enfermedades_3.Enfermedad) AS Diagnostico4, Historia_Clinica.Prediagnostico, Historia_Clinica.Tratamiento, Historia_Clinica.Prescripcion" & _ " FROM (Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad) INNER JOIN (Enfermedades AS Enfermedades_3 INNER JOIN (Enfermedades AS Enfermedades_2 INNER JOIN (Enfermedades AS Enfermedades_1 INNER JOIN (Enfermedades INNER JOIN Historia_Clinica ON Enfermedades.IdEnfermedad = Historia_Clinica.Diagnostico1) ON Enfermedades_1.IdEnfermedad = Historia_Clinica.Diagnostico2) ON Enfermedades_2.IdEnfermedad = Historia_Clinica.Diagnostico3) ON Enfermedades_3.IdEnfermedad = Historia_Clinica.Diagnostico4) ON Datos_Personales_Paciente.NumeroHistoriaClinica = Historia_Clinica.NumeroHistoriaClinica WHERE Enfermedades.Enfermedad LIKE '" & txtbusqueda & "%' and Historia_Clinica.Fecha_Elaboracion BETWEEN datevalue('" & DTPFechaI & "') and datevalue('" & DTPFechaF & "') ") msflista.Rows = 1 txtvisitas = 0 sumavis = 0 Do Until aux.EOF msflista.AddItem "" & Chr(9) & aux!Fecha_Elaboracion & Chr(9) & aux!NumeroHistoriaClinica & Chr(9) & aux!Apellidos_Nombres & Chr(9) & aux!Diagnostico1 & Chr(9) & aux!Diagnostico2 & Chr(9) & aux!Diagnostico3 & Chr(9) & aux!Diagnostico4 aux.MoveNext If Trim(txtbusqueda) = "" Then Else txtvisitas = Val(txtvisitas) + 1 End If Loop aux.Close Set aux = Nothing End If CmdImprimir.Visible = True End Sub

103

Private Sub CmdImprimir_Click() If msflista.Rows = 1 Then MsgBox "No Hay Registro Activo, para imprimir", vbCritical, Mensaje CmdImprimir.Visible = False Exit Sub End If If txtbusqueda = "" Then MsgBox "Debe digitar un carcter, para poder imprimir", vbCritical, Mensaje Exit Sub Else Imprime txtbusqueda End If CmdImprimir.Visible = False End Sub Private Sub CmdSalir_Click() Unload Me End Sub Private Sub Form_Load() LLenaGrid msflista, "SELECT Historia_Clinica.Fecha_Elaboracion,Datos_Personales_Paciente.NumeroHistor iaClinica, Datos_Personales_Paciente.Apellidos_Nombres, (Enfermedades.Enfermedad) AS Diagnostico1, ( Enfermedades_1.Enfermedad) AS Diagnostico2, (Enfermedades_2.Enfermedad) AS Diagnostico3, (Enfermedades_3.Enfermedad) AS Diagnostico4" & _ " FROM (Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad) INNER JOIN (Enfermedades AS Enfermedades_3 INNER JOIN (Enfermedades AS Enfermedades_2 INNER JOIN (Enfermedades AS Enfermedades_1 INNER JOIN (Enfermedades INNER JOIN Historia_Clinica ON Enfermedades.IdEnfermedad = Historia_Clinica.Diagnostico1) ON Enfermedades_1.IdEnfermedad = Historia_Clinica.Diagnostico2) ON Enfermedades_2.IdEnfermedad = Historia_Clinica.Diagnostico3) ON Enfermedades_3.IdEnfermedad = Historia_Clinica.Diagnostico4) ON Datos_Personales_Paciente.NumeroHistoriaClinica = Historia_Clinica.NumeroHistoriaClinica ORDER BY Fecha_Elaboracion" msflista.ColWidth(1) = 2000 msflista.ColWidth(3) = 3000 msflista.ColWidth(4) = 2000 msflista.ColWidth(5) = 2000 msflista.ColWidth(6) = 2000 msflista.ColWidth(7) = 2000 DTPFechaI = (Date) DTPFechaF = (Date) End Sub Private Sub txtbusqueda_Change() If txtbusqueda = "" Then Label3.Visible = False DTPFechaI.Visible = False Label2.Visible = False DTPFechaF.Visible = False Cmdbuscar.Visible = False Dim aux As New ADODB.Recordset Set aux = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Alergias, Historia_Clinica.Fecha_Elaboracion, Historia_Clinica.Motivo_Consulta, Historia_Clinica.Presion_Arterial, Historia_Clinica.Pulso, Historia_Clinica.Respiracion,

104

Historia_Clinica.Temperatura, Historia_Clinica.Perimetro_Cefalico, Historia_Clinica.Talla, (Enfermedades.Enfermedad) AS Diagnostico1, ( Enfermedades_1.Enfermedad) AS Diagnostico2, (Enfermedades_2.Enfermedad) AS Diagnostico3, (Enfermedades_3.Enfermedad) AS Diagnostico4, Historia_Clinica.Prediagnostico, Historia_Clinica.Tratamiento, Historia_Clinica.Prescripcion" & _ " FROM (Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad) INNER JOIN (Enfermedades AS Enfermedades_3 INNER JOIN (Enfermedades AS Enfermedades_2 INNER JOIN (Enfermedades AS Enfermedades_1 INNER JOIN (Enfermedades INNER JOIN Historia_Clinica ON Enfermedades.IdEnfermedad = Historia_Clinica.Diagnostico1) ON Enfermedades_1.IdEnfermedad = Historia_Clinica.Diagnostico2) ON Enfermedades_2.IdEnfermedad = Historia_Clinica.Diagnostico3) ON Enfermedades_3.IdEnfermedad = Historia_Clinica.Diagnostico4) ON Datos_Personales_Paciente.NumeroHistoriaClinica = Historia_Clinica.NumeroHistoriaClinica WHERE Enfermedades.Enfermedad LIKE '" & txtbusqueda & "%'") msflista.Rows = 1 txtvisitas = 0 sumavis = 0 Do Until aux.EOF msflista.AddItem "" & Chr(9) & aux!Fecha_Elaboracion & Chr(9) & aux!NumeroHistoriaClinica & Chr(9) & aux!Apellidos_Nombres & Chr(9) & aux!Diagnostico1 & Chr(9) & aux!Diagnostico2 & Chr(9) & aux!Diagnostico3 & Chr(9) & aux!Diagnostico4 aux.MoveNext If Trim(txtbusqueda) = "" Then Else txtvisitas = Val(txtvisitas) + 1 End If Loop aux.Close Set aux = Nothing Else Label3.Visible = True DTPFechaI.Visible = True Label2.Visible = True DTPFechaF.Visible = True Cmdbuscar.Visible = True End If End Sub Sub Imprime(id As String) Dim tEstadistica As New ADODB.Recordset Set tEstadistica = BaseDatos.Execute("SELECT Datos_Personales_Paciente.NumeroHistoriaClinica, Datos_Personales_Paciente.Apellidos_Nombres, Datos_Personales_Paciente.Alergias, Historia_Clinica.Fecha_Elaboracion, Historia_Clinica.Motivo_Consulta, Historia_Clinica.Presion_Arterial, Historia_Clinica.Pulso, Historia_Clinica.Respiracion, Historia_Clinica.Temperatura, Historia_Clinica.Perimetro_Cefalico, Historia_Clinica.Talla, (Enfermedades.Enfermedad) AS Diagnostico1, ( Enfermedades_1.Enfermedad) AS Diagnostico2, (Enfermedades_2.Enfermedad) AS Diagnostico3, (Enfermedades_3.Enfermedad) AS Diagnostico4, Historia_Clinica.Prediagnostico, Historia_Clinica.Tratamiento, Historia_Clinica.Prescripcion" & _ " FROM (Ciudades INNER JOIN Datos_Personales_Paciente ON Ciudades.IdCiudad = Datos_Personales_Paciente.IdCiudad) INNER JOIN (Enfermedades AS Enfermedades_3 INNER JOIN (Enfermedades AS Enfermedades_2 INNER JOIN (Enfermedades AS Enfermedades_1 INNER JOIN (Enfermedades INNER JOIN Historia_Clinica ON Enfermedades.IdEnfermedad =

105

Historia_Clinica.Diagnostico1) ON Enfermedades_1.IdEnfermedad = Historia_Clinica.Diagnostico2) ON Enfermedades_2.IdEnfermedad = Historia_Clinica.Diagnostico3) ON Enfermedades_3.IdEnfermedad = Historia_Clinica.Diagnostico4) ON Datos_Personales_Paciente.NumeroHistoriaClinica = Historia_Clinica.NumeroHistoriaClinica WHERE Enfermedades.Enfermedad LIKE '" & id & "%' and Historia_Clinica.Fecha_Elaboracion BETWEEN datevalue('" & DTPFechaI & "') and datevalue('" & DTPFechaF & "') ") Set DReportEstadistica.DataSource = tEstadistica DReportEstadistica.Sections("Seccin5").Controls("E4Nvisitas").Caption = Val(txtvisitas) DReportEstadistica.Sections("Seccin5").Controls("E5Diagnostico").Caption = (txtbusqueda) DReportEstadistica.Show 1 End Sub

106

AYUDA DEL SISTEMA

107

INSTALACIN DEL SISTEMA FORMULARIO DE INGRESO AL SISTEMA FORMULARIO LOGIN PANTALLA PRINCIPAL DATOS PACIENTES HISTORIA CLINICA CAMBIO DE CONTRASEA DIAGNSTICO CIUDAD ESTADSTICA (REPORTE)

108

MANUAL DE AYUDA DEL PROGRAMA

El Manual de ayuda del programa es el que nos servir para poder manejar el sistema sin incurrir en errores.

1. INSTALACIN DEL PROGRAMA

1. Insertar el CD. 2. Seleccione el cono Mi PC. 3. Abrir la unidad de CD-ROM. 4. Abrir la carpeta Instaladores. 5. Hacer doble clic en el cono Setup.exe, una vez escogido ese paso el sistema comenzar por si solo a instalarse, debiendo seguir los pasos, aceptando todos los trminos para realizar la instalacin en xito.

2. EJECUCIN DEL PROGRAMA

1. Seleccionar el botn Inicio. 2. Seleccionar Todos los programas. 3. Elegir el men Historias Clnicas. 4. Por ltimo clic en Historias Clnicas.

109

FUNCIONAMIENTO DEL SISTEMA

Esta pantalla es el inicio y presentacin del sistema donde aparecen las siglas S.H.C. (Sistema Historias Clnicas) versin 1.0 y la advertencia de rigor sobre la prohibicin de reproduccin de este sistema.

110

LOGIN (CONTRASEA DEL SISTEMA)

Este formulario sirve de seguridad y restriccin del sistema, donde podrn entrar nicamente las personas autorizadas que sern quienes tendrn conocimiento de la clave y contrasea.

En esta seccin se ingresa el nombre del usuario y password.

Luego para tener acceso al sistema presiona el botn

; si desea salir

oprime

111

PANTALLA PRINCIPAL

Esta es la pantalla principal del sistema. Es un Formulario MDI donde encontramos barra de men que contiene sub mens.

Desde este formulario podremos acceder a los componentes del programa.

Barra de Titulo.- En ella se muestra el nombre del Sistema; contiene los botones maximizar, minimizar y cerrar.
112

Barra de Men.-

Desde aqu podemos acceder a todos los formularios.

Dentro del editor Administracin encontramos los submens Datos personales, Cambiar contrasea y Salir del sistema, desde aqu podemos ingresar a los formularios correspondientes.

113

Con un clic en el editor Registros accederemos a los formularios de Diagnsticos y ciudades.

Presionando en el men Estadstica, se muestra el formulario de Estadstica en el cual podemos obtener reportes.

Desde el men Herramientas mantenemos activa la barra de herramientas y la barra de estado hacienda clic en cada una de ellas. Tambin podemos activar desde aqu la calculadora.

114

Barra de Herramientas.- Esta barra sirve como acceso directo, para los formularios de Datos del Paciente, Diagnostico, Calculadora y salir del Sistema.

Barra de Estado.-

Aqu se muestra el diseador del sistema, MAYUS (se

muestra cuando se activa la tecla MAYUS para escribir en mayscula), NUM, hora y fecha.

115

DATOS DEL PACIENTE

En el formulario datos personales, se ingresan los datos bsicos que permiten la identificacin del paciente y su localizacin.

Cuando se abre la ventana de Datos de Pacientes todas sus secciones estn bloqueadas, solo est activo el botn nuevo, cancelar y salir del sistema. Est ventana est dividida en cuatro secciones: Datos de Identificacin del Paciente Antedecentes Clnico Bsqueda de Pacientes La seccin de los botones.
116

Para poder empezar a llenar datos en la ventana de Datos del Paciente primero

damos click en el botn

y automticamente el cursor se coloca en el

primer dato a llenar que es la cedula, que es un campo opcional. El ingreso de datos en esta pantalla tiene caractersticas especiales para su validacin o verificacin antes de ser guardados. Presionando la tecla de tabulacin nos ira guiando en orden el ingreso de cada casillero.

El sistema utiliza el nmero de historia clnica del paciente como campo nico de identificacin y referencia, que ser relacionado automticamente en la base de datos con el nombre y apellido del paciente; el mismo que se genera automticamente.

Al momento de digitar los apellidos y nombres del nuevo Paciente, se va filtrando en la lista segn los caracteres que valla ingresado, para as saber si el Paciente ya existe en la base de datos.

117

Es indispensable ingresar el apellido, sin este no se puede continuar, tambin sucede lo mismo con el sexo: para elegir el sexo damos clic en escoge femenino o masculino. , donde se

Fecha de Nacimiento: se escoge a travs de un pequeo calendario, das, mes y ao. Dando clic en para avanzar al siguiente casillero,

automticamente nos muestra el clculo de la edad actual.

118

Estado Civil: Si pulsamos el botn estado civil.

se despliega la lista, seleccionamos el

Ciudad del paciente: Al presionar

se abre el listado de las ciudades que estn

almacenados en la base de datos. En el caso de que no exista la ciudad en el listado oprimimos el botn nueva ciudad. que nos lleva a la ventana donde ingresaremos la

119

Una vez digitada el nombre de la ciudad se da click automticamente se filtra en el combo la nueva ciudad.

se cierra y

Tambin encontramos la ocupacin: de relevante importancia como factor etiolgico en muchas enfermedades profesionales, su valor diagnstico es grande, muchas veces decisivo, la mayora de las veces el stress que sufre el paciente en su medio de trabajo y/o constantes exposiciones a factores peligrosos (txicos) son el origen de muchas enfermedades; telfono: del paciente para su localizacin, solo se ingresa nmeros.

Como dato de suma importancia dentro de la vida de un paciente tenemos sus alergias, ya que el desconocimiento de ellas puede conducir a la muerte del Paciente. Por tal motivo se lo mantiene presente en el formulario de Historia Clnica en forma de advertencia.

120

Los antecedentes clnicos se dividen en antecedentes hereditarios y personales. En los hereditarios se investiga las enfermedades de los familiares ms cercanos y en los personales los antecedentes de diferentes patologas, modo de vida y caractersticas del mismo paciente.

Una vez llenados todos los datos pulsamos el botn registros se almacenen en la base de datos.

para que los

Si al momento de guardar algunos de los datos obligatorios estn vacos, aparece un mensaje de informacin recordando que debe ingresar el campo obligatorio.

Al presionar aceptar automticamente el cursor se coloca en el cuadro de texto que hace falta registrar, una vez llenados todos los campos; guardamos y aparece un mensaje informando que los registros .han sido archivados en la base de datos.
121

El botn cancelar blancos

anula el procedimiento y deja todos los casilleros en

Para realizar la bsqueda tenemos que escribir en el cuadro de texto los Apellidos y los datos automticamente se visualizan en la lista a medida que se van

122

digitando los caracteres. Por medio de esta bsqueda filtramos al paciente para

modificar o actualizar algn campo. Para ello hacemos clic en el botn Una vez realizado el cambio guardamos y aparece el mensaje de informacin.

Para poder imprimir los datos del paciente tenemos que seleccionarlo de la grilla, una vez seleccionado damos un clic en impresin correspondiente. y aparece la pagina de

Dando doble click en el nombre de la persona que va a ser atendida automticamente se abre el formulario de Historia Clnica y se carga la ltima visita.

Cuando deseemos salir pulsamos el botn la ventana.

y automticamente se cierra

123

HISTORIAS CLNICAS

Formulario Historias Clnicas nos muestra los datos principales del paciente y adems es aqu donde ingresamos los signos vitales, Diagnsticos, Motivo por el que se acude a la consulta mdica, Prediagnstico y tratamiento.

La Historia Clnica es el archivo ms importante, contiene informacin vital para la gestin mdica, administrativa y legal.

124

En la parte superior estn los datos relevantes y de identificacin del paciente que va ha ser atendido, bsicos para un buen examen fsico; necesarios para un buen diagnstico y la debida prescripcin mdica.

Estos datos se extraen automticamente al momento de dar doble click en el nombre del paciente en la ventana de Datos Personales.

En esta seccin tenemos los signos vitales que son los indicadores basales del estado de salud del paciente. Para escribir los signos vitales primero damos clic en Presin Arterial para as ir avanzando uno a uno.

125

Motivo de Consulta: se refiere a la anotacin breve de los signos y sntomas que hace consultar al paciente y donde se anota las afecciones que sufre.

Prediagnstico: Es la presuncin diagnstica de los signos y sntomas que presenta un paciente.

126

Diagnsticos: Identificacin de las enfermedades, afecciones o lesiones que sufre un paciente, de su localizacin y su naturaleza, llegando al diagnstico por los diversos signos y sntomas presentes en el enfermo.

Para seleccionar un diagnostico presionamos . Si no existe el diagnostico que se

desea, pulsamos el botn

que sirve para abrir la ventana de Diagnostico, y

procedemos a digitar el nombre de la enfermedad, guardamos y automticamente se filtra en el combo.

En Tratamiento va la medicina que el doctor prescribe para el paciente. La receta se imprime al momento de guardar, si escogemos la opcin. En el caso de que sea
127

necesario imprir una receta anterior se selecciona la visita del listado y se pulsa el

botn

En la Prescripcin se digita el detalle de la medicina a suministrar.

Al tener todos los campos llenados pulsamos confirmacin.

y aparece el mensaje de

128

En el msflexgrid se muestra todas las visitas del paciente, si se desea corregir se

escoge del listados y se presiona

, se realizan los cambios y se guarda.

Al momento de guardar aparece el mensaje.

129

Para imprimir todas las visitas se pulsa impresin.

y aparece el contenedor de

Para obtener un reporte de visita individual se selecciona de la lista y se presionar

el botn

. Si al momento oprimir el botn imprimir y no se ha

seleccionado ninguna visita aparece el siguiente mensaje:

El botn

anula el procedimiento y deja todos los casilleros en blancos

Cuando deseemos salir pulsamos el botn la ventana.

y automticamente se cierra

130

CAMBIO DE CONTRASEA

En este formulario tenemos la opcin de cambiar el nombre de usuario y la

contrasea presionando

y guardamos.

El botn

anula el procedimiento y deja todos los casilleros en blancos

Cuando deseemos salir pulsamos el botn la ventana.

y automticamente se cierra

131

DIAGNSTICO

El diagnstico, es la identificacin de la enfermedad, afeccin o lesin. En este formulario cada uno tiene su cdigo que se genera conforme van ingresando los diagnsticos.

Presionando

se coloca el cursor en el texto de nombre y para guardar

se pulsa

. En el caso de que se requiera modificar algn registro

presione

, o si desea cancelar

132

Al momento de digitar el nombre del diagnstico, se va filtrando en la lista segn los caracteres que valla ingresado, para as saber si el diagnstico ya existe en la base de datos.

Cuando queramos salir pulsamos el botn la ventana.

y automticamente se cierra

133

CIUDAD

Es importante saber la regin donde resides porque existen enfermedades endmicas (propia de una zona y una poca).

Al ingresar una nueva ciudad damos click en el botn guardamos. El cdigo de la ciudad se genera automticamente.

, digitamos y

Al momento de digitar el nombre de la ciudad, se va filtrando en la lista segn los caracteres que valla ingresado, para as saber si la ciudad ya existe en la base de datos.

134

Para modificar seleccionamos el nombre de la ciudad de la lista y

pulsamos

, realizamos el cambio y guardamos.

Si no se quiere realizar el cambio se cancela y posteriormente presiona y se cierra el formulario.

135

ESTADSTICA (REPORTE)

Este modulo permite realizar una serie de estudios estadsticos de campos preseleccionados para tal fin.

Para realizar el filtro de las consultas primero debemos digitar el nombre del diagnostico incidencia despus final seleccionamos la fecha inicial y del cual queremos saber , la la

; una vez

136

realizado esto presionamos el botn muestra

y se realiza el filtrado. Posterior se .

Al pulsar el botn aparece el siguiente contenedor:

137

BIBLIOGRAFA (s.f.). Obtenido de http://elies.rediris.es/elies9/4-1-2.htm (s.f.). Obtenido de www.alegsa.com.ar (s.f.). Obtenido de http://es.wikipedia.org/wiki/Microsoft_Visual_Basic PODESTA, D. (1977). La Historia Clnica en Semiotcnia y Fisiopatologa. Buenos Aires, Argentina: El ateneo. SAFRAN, C. (1999). A decade of Experience Method Inform Medicine. New England. WEED, L. (1968). Medical Records that guide and teach. New England. http://www.monografias.com/trabajos24/visual-basic.shtml?monosearch#intro http://es.wikipedia.org/wiki/Microsoft_Acces

138

CAPTULO I ................................................................................................................................ 11 1.1. PLANTEAMIENTO DEL PROBLEMA....................................................................................... 11 1.2. FORMULACION DEL PROBLEMA ........................................................................................... 11 1.3. DELIMITACIN DEL PROBLEMA............................................................................................ 12 1.4. ANTECEDENTES .................................................................................................................... 12 1.5. JUSTIFICACIN .................................................................................................................... 13 1.6. OBJETIVOS ........................................................................................................................... 15 1.6.1. OBJETIVOS GENERALES................................................................................................. 15 1.6.2. OBJETIVOS ESPECFICOS ............................................................................................... 15 1.7. BENEFICIARIOS ..................................................................................................................... 16 1.7.1 DIRECTOS ....................................................................................................................... 16 1.7.2 INDIRECTOS ................................................................................................................... 16 CAPTULO II ............................................................................................................................... 17 2.1. MARCO TERICO.................................................................................................................. 17 2.1.1. HISTORIAS CLINICAS ..................................................................................................... 17 2.1.2. EVOLUCIN DEL REGISTRO MEDICO ELECTRNICO COMO ......................................... 19 HERRAMIENTA........................................................................................................................ 19 2.1.3. BASES DE DATOS........................................................................................................... 21 CARACTERSTICAS: ............................................................................................................. 22 VENTAJAS ............................................................................................................................. 23 2.1.4. VISUAL BASIC ................................................................................................................ 23 VENTAJAS ............................................................................................................................. 25 2.2. MARCO CONEPTUAL ............................................................................................................ 25 2.2.1. SISTEMA DE GESTIN DE BASE DE DATOS.................................................................... 25 2.2.2. LENGUAJE DE PROGRAMACIN ................................................................................... 26 2.2.3. SISTEMAS OPERATIVOS ................................................................................................ 26 2.2.4. INTERFAZ DEL USUARIO ............................................................................................... 27 CAPTULO III .............................................................................................................................. 29 3.1. HIPOTESIS ............................................................................................................................ 29 3.2. DEFINICIONES CONCEPTUALES Y OPERACIONALES DE LAS VARIABLES ................................ 29 3.2.1 VARIABLE INDEPENDIENTE: ................................................................................... 29 3.2.2. VARIABLE DEPENDIENTE ....................................................................................... 29 3.3. OPERACIONALIZACION DE VARIABLES ................................................................................. 30 3.3.1 Variable Independiente: ............................................................................................... 30 3.3.2 Variable Dependiente: ................................................................................................... 30 3.4. METODOLOGA .................................................................................................................... 31 3.4.1. MODALIDAD DE LA INVESTIGACIN............................................................................. 31 3.5. TCNICAS ............................................................................................................................. 32 3.5.1. INSTRUMENTOS............................................................................................................ 32 3.6. RECURSOS ............................................................................................................................ 32 3.6.1 RECURSOS HUMANOS: ............................................................................................. 33

139

3.6.2 RECURSOS MATERIALES ........................................................................................... 33 3.6.3. RECURSOS TECNICOS ............................................................................................ 34 3.6.4. RECURSOS INSTITUCIONALES ................................................................................ 34 3.6.5. RECURSOS ECONOMICOS: ............................................................................................ 35 CAPTULO IV ............................................................................................................................. 36 4.1. CONCLUSIONES Y RECOMENDACIONES ............................................................................... 36 4.1.1. CONCLUSIONES............................................................................................................. 36 4.1.2 RECOMENDACIONES ..................................................................................................... 37 CAPTULO V .............................................................................................................................. 38 5.1. DESCRIPCIN GENERAL DEL SISTEMA .................................................................................. 38 5.2. IMPLEMENTACIN DE UN SISTEMA INFRMATICO ............................................................. 39 5.2.1. Equipamiento central del Consultorio.- ........................................................................ 39 5.2.2. Requisitos de Instalacin del Software.- ....................................................................... 40 5.3. CRONOGRAMA DE ACTIVIDADES ......................................................................................... 42 5.4. RELACIONES EXISTENTE DE LA BASE DE DATOS .................................................................... 43 CODIFICACIN DEL PROGRAMA ................................................................................................ 64 BIBLIOGRAFA ......................................................................................................................... 138

140

You might also like