Professional Documents
Culture Documents
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:
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.
Atentamente;
_______________________
Ing. Esthela San Andrs Laz DIRECTORA DE TESIS
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:
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.
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
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.
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
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
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.
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
16
CAPTULO II
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.
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.
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.
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.
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.
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.
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.
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.
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
B) Una interfaz de software: entrega informacin a travs de lo que usuario observa en la pantalla.
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.
Sistema informtico.
29
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?
30
3.4. METODOLOGA
En este trabajo se
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
32
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.
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
Computador Software
Universidad Tcnica de Manab Consultorio Mdico del Dr. Jos Intriago Andrade
34
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.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.
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.
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
41
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
42
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
50
1.1.
51
1.2.
1.3.
52
1.4.
1.5.
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
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
Ventana # 2
Barra de Informacin hora y fecha del Sistema (Barra de Estado). Color: &H8000000F&
57
de por
los
Frame de Controles.
Color: &H8000000F&
58
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.
de
59
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
Botones de Controles
Color: &H8000000F&
60
Titulo: Ciudades
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
Color: &H8000000F&
62
63
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
El Manual de ayuda del programa es el que nos servir para poder manejar el sistema sin incurrir en errores.
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.
1. Seleccionar el botn Inicio. 2. Seleccionar Todos los programas. 3. Elegir el men Historias Clnicas. 4. Por ltimo clic en Historias Clnicas.
109
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
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.
; 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.
Barra de Titulo.- En ella se muestra el nombre del Sistema; contiene los botones maximizar, minimizar y cerrar.
112
Barra de Men.-
Dentro del editor Administracin encontramos los submens Datos personales, Cambiar contrasea y Salir del sistema, desde aqu podemos ingresar a los formularios correspondientes.
113
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.-
muestra cuando se activa la tecla MAYUS para escribir en mayscula), NUM, hora y fecha.
115
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
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,
118
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.
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
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.
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.
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.
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
y aparece el mensaje de
128
129
y aparece el contenedor de
el botn
El botn
y automticamente se cierra
130
CAMBIO DE CONTRASEA
contrasea presionando
y guardamos.
El botn
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 pulsa
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.
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
pulsamos
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
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