tesis ana maria arguello rubira
TRANSCRIPT
-
7/23/2019 Tesis Ana Maria Arguello Rubira
1/140
1
UNIVERSIDAD TECNICA DE MANAB
FACULTAD DE CIENCIAS INFORMTICAS
TESIS DE GRADO
Previa a la obtencin del ttulo de:
ANALISTA EN SISTEMAS
TEMA:
DESARROLLO DE UN SISTEMA INFORMATICO QUE PERMITA
AUTOMATIZAR EL INGRESO DE LA HISTORIA CLNICA DE
PACIENTES, PARA EL CONSULTORIO MDICO DEL DR. JOS
INTRIAGO ANDRADE.
AUTORA:
ANA MARA ARGUELLO RUBIRA
DIRECTOR DE TESIS
Ing. Esthela San Andrs Laz Mg. Sc.
PORTOVIEJO MANAB ECUADOR2010
-
7/23/2019 Tesis Ana Maria Arguello Rubira
2/140
2
CERTIFICACIN
Ing. Esthela San Andrs Laz, certifica que la presente tesis ha sido elaborada por
la Seora Ana Mara Arguello Rubira bajo mi direccin, control y seguimiento. El
presente trabajo rene los requisitos de una investigacin y programacin
concluida mediante el esfuerzo, dedicacin y constancia; tanto en la parte terica,
investigativa y prctica, lo que permite otorgar su originalidad.
Para constancia y validez, firmo el documento.
Atentamente;
_______________________
Ing. Esthela San Andrs Laz
DIRECTORA DE TESIS
-
7/23/2019 Tesis Ana Maria Arguello Rubira
3/140
3
UNIVERSIDAD TCNICA DE MANAB
FACULTAD DE CIENCIAS INFORMTICASESCUELA DE COMPUTACIN
TEMA:
Desarrollo de un Sistema Informtico que permita automatizar el ingreso de la
Historia Clnica de pacientes, para el consultorio mdico del Dr. Jos Intriago
Andrade.
TESIS DE GRADO
Sometida a consideracin del Tribunal de Revisin y
Sustentacin, legalizada por el Honorable Consejo Directivo como
requisito previo a la obtencin del Ttulo de:
ANALISTA EN SISTEMAS
APROBADA POR:
___________________________ ________________________
Ing. Carlos A. Intriago Zambrano Ing. Jimmy Zambrano Acosta
__________________________
Ing. Cristhian Torres Morn
-
7/23/2019 Tesis Ana Maria Arguello Rubira
4/140
4
DECLARATORIA DE AUTORIA
Ana Mara Arguello Rubira, declara que la presente tesis constituye requisito
previo la obtencin del ttulo de Analista en Sistemas bajo la supervisin de la
Ing. Esthela San Andrs Laz.
Autorizo al centro de informacin de la Universidad para que el presente trabajo
se convierta en un documento de lectura, de acuerdo a los requisitos establecidos
por la institucin. Finalmente expresamos que el presente trabajo investigativo ha
sido de mi autora, razn por la cual cedo los derechos a la Universidad Tcnica
de Manab.
________________________________
Sra. Ana Mara Arguello Rubira
Autor
-
7/23/2019 Tesis Ana Maria Arguello Rubira
5/140
5
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.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
6/140
6
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 sembren lo ms profundo de nuestro ser ese deseo de superacin que ha latido en mi
hasta ahora y seguir latiendo por siempre.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
7/140
7
RESUMEN EJECUTIVO
En la actualidad todas las instituciones pblicas o privadas no pueden prescindirde 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.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
8/140
8
EXECUTIVE SUMMARY
Nowadays all public and private entities lack technological advances; computerscience 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.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
9/140
9
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.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
10/140
10
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.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
11/140
11
CAPTULO I
1.1. PLANTEAMIENTO DEL PROBLEMA
Jugando la Historia Clnica un papel preponderante tanto en la vida del enfermo
como en la del mdico; ya que reiteran resultados de pruebas que deberan estar
permanentemente registrados; sin embargo, el tipo de ayuda que tradicionalmente
ha estado a la disposicin de los mdicos para llevar a cabo esta tarea ha
disminuido la utilidad de la informacin que el registro mantiene, pues tiende a
perder precisin en el proceso de transcripcin y consecuentemente el mdico
deja de percibir los beneficios que un registro mdico electrnico pudiera proveer
como herramienta de soporte a decisiones capaces de sugerir intervenciones
oportunas basadas en la informacin recopilada.
1.2. FORMULACION DEL PROBLEMA
Cmo incide el anlisis, diseo y desarrollo de un sistema informtico que
permita automatizar el ingreso de las historias clnicas de los pacientes, en el
consultorio mdico particular del Dr. Jos Intriago Andrade en la ciudad de Baha
de Carquez?
-
7/23/2019 Tesis Ana Maria Arguello Rubira
12/140
12
1.3. DELIMITACIN DEL PROBLEMA
La presente tesis se llev a cabo en el consultorio privado de consulta externa en
medicina general del Dr. Jos Intriago Andrade ubicado en la ciudad de Baha de
Carquez, Provincia de Manab.
1.4. ANTECEDENTES
La incorporacin de los avances tecnolgicos y cientficos a la medicina
sorprenden por la fascinacin que producen y por su fuerza diagnstica y
teraputica.
La Medicina actual dentro de su desarrollo no ha escapado al fenmeno de la
Computacin, y como condicin necesaria, su vnculo estrecho con la Ciencia de
la Informacin, han dado lugar a la Informtica Mdica, que agrupa los campos
del software y el hardware para su uso en la Medicina.
La informatizacin de la historia clnica se ha convertido durante los ltimos aos
en objetivo de la mayor parte de los trabajos de la Informtica Mdica.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
13/140
13
Ante esta realidad y luego de observar que losregistros 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
-
7/23/2019 Tesis Ana Maria Arguello Rubira
14/140
14
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.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
15/140
15
Los beneficiarios de este trabajo sern los pacientes y los mdicos ya que tendrn
informacin confiable e inmediata de la situacin del enfermo.
1.6. OBJETIVOS
1.6.1. OBJETIVOS GENERALES
Disear e implementar un sistema informtico de Historias Clnicas para lograr
que los registros de cada persona que se encuentren almacenados en una base de
datos, sean de fcil acceso para el mdico.
1.6.2. OBJETIVOS ESPECFICOS
Crear una base de datos para globalizar los datos mdico-paciente
Facilitar la bsqueda del registro de los pacientes.
Obtener reportes inmediatos. Capacitar al personal que va a manipular el sistema.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
16/140
16
1.7. BENEFICIARIOS
1.7.1 DIRECTOS
Al implementar este sistema informtico los beneficiarios directos sern las
personas que acuden al consultorio mdico del Dr. Jos Intriago Andrade.
1.7.2 INDIRECTOS
La comunidad de Baha de Carquez y del Cantn Sucre.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
17/140
17
CAPTULO II
2.1. MARCO TERICO
2.1.1. HISTORIAS CLINICAS
Desde el punto de vista clnico, puede entonces afirmarse que la HC se origina
con el primer episodio de la enfermedad o el control de salud, en cuyo contexto se
atiende al paciente, sea en la atencin primaria o secundaria.
Constituye, adems, el registro completo de la atencin prestada al paciente
durante su enfermedad y de ello, su trascendencia como documento legal.
No es un simple relato, la descripcin de una enfermedad aislada; comprende las
consideraciones de mdico, de gran trascendencia en el aspecto jurdico. Tiene
gran valor para diagnstico, el tratamiento, el pronstico y la epidemiologa,
aparte de documentar la habilidad y conocimiento del mdico que la realiza.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
18/140
18
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 laelabora, 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 elexamen 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 larealidad. 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
1 Delfor Podest L. La historia clnica. En: Mazzei E,Rozmann C. (Dirs.). Semiotecnia y fisiopatologa. BuenosAires: El Ateneo; 1977.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
19/140
19
dio importancia a la anamnesis y la observacin, y practic la percusin y la
auscultacin inmediata. Aconsejaba interrogar al enfermo sobre la naturaleza y
duracin de sus sufrimientos, sobre el funcionamiento del intestino y sobre la
dieta que segua. Inici el mtodo racional de la descripcin cuidadosa de los
sntomas y manifestaciones obtenidas directamente del enfermo y cre la historia
clnica.
2.1.2. EVOLUCIN DEL REGISTRO MEDICO ELECTRNICO COMO
HERRAMIENTA
El registro mdico electrnico ha existido por dcadas, pero a diferencia de otros
sistemas computarizados en el sector salud, su adopcin ha sido limitada.
Mltiples sistemas clnicos computarizados han sido implementados en una
amplia variedad de plataformas y arquitecturas, desde el mainframe, pasando por
-
7/23/2019 Tesis Ana Maria Arguello Rubira
20/140
20
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
2 Safran C., Sands DZ, Rind DM. Online Medical Records: A Decade of Experience. MethodInform Medicine 1999; 38:308-12.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
21/140
21
mdico en torno a los problemas presentados por el paciente3. La innovacin
hecha por Dr. Weed fue el reconocer la necesidad de organizar la historia del
paciente en forma longitudinal en el contexto de los problemas presentados por el
paciente en lugar de limitarse a recolectar las conclusiones del episodio de
atencin al paciente.
2.1.3. BASES DE DATOS
El trmino base de datos fue acuado por primera vez en 1963, en un simposio
celebrado en California.
Una base de datos se puede definir como un conjunto de informacin homognea
que mantiene una estructura ordenada, y que toda ella se encuentra relacionada
con un mismo tema.
3 Weed LL. Medical records that guide and teach. New Engl. J. Med. 278 (1968) 593600.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
22/140
22
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.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
23/140
23
9. Acceso a travs de lenguajes de programacin estndar: se refiere a la
posibilidad ya mencionada de acceder a los datos de una base de datos mediante
lenguajes de programacin ajenos al sistema de base de datos propiamente dicho.
VENTAJAS
La principal ventaja de utilizar bases de datos es que mltiples usuarios pueden
acceder a ellas al mismo tiempo.
2.1.4. VISUAL BASIC
Visual Basic es una aplicacin y un lenguaje de programacin desarrollados por
Alan Cooper para Microsoft. Se origina en el clsico lenguaje BASIC. La primera
versin sali en 1991 en un entorno relativamente sencillo para facilitar la
creacin de programas grficos. Visual Basic, como su nombre lo indica, utiliza
una interfaz totalmente visual.
Actualmente, los programas creados en Visual Basic slo funcionan en Windows.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
24/140
24
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).
-
7/23/2019 Tesis Ana Maria Arguello Rubira
25/140
25
VENTAJAS
Posee una curva de aprendizaje muy rpida.
Integra el diseo e implementacin de formularios de Windows.
Permite usar con suma facilidad la plataforma de los sistemas Windows.
El cdigo en Visual Basic es fcilmente migrable a otros lenguajes.
2.2. MARCO CONEPTUAL
2.2.1. SISTEMA DE GESTIN DE BASE DE DATOS
El propsito general de los sistemas de gestin de base de datos es el de manejar
de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se
convertirn en informacin relevante, para un buen manejo de datos.
En el entorno informtico, la gestin de bases de datos ha evolucionado desde ser
una aplicacin ms disponible para los computadores, a ocupar un lugar
fundamental en los sistemas de informacin. En la actualidad, un sistema de
-
7/23/2019 Tesis Ana Maria Arguello Rubira
26/140
26
informacin ser ms valioso cuanto de mayor calidad sea la base de datos que lo
soporta, la cual resulta a su vez un componente fundamental del mismo, de tal
forma que puede llegarse a afirmar que es imposible la existencia de un sistema de
informacin sin una base de datos, que cumple la funcin de "memoria", en todas
sus acepciones posibles, del sistema.
2.2.2. LENGUAJE DE PROGRAMACIN
Los lenguajes de programacin son herramientas que nos permiten crear
Programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc.
Una computadora funciona bajo control de un programa el cual debe estar
almacenado en la unidad de memoria; tales como el disco duro.
2.2.3. SISTEMAS OPERATIVOS
Un Sistema operativo (SO) es un programa informtico que acta de interfaz
entre los dispositivos de hardware y el usuario. Es responsable de gestionar,
coordinar las actividades y llevar a cabo el intercambio de recursos de un
computador. Acta como estacin para las aplicaciones que se ejecutan en la
-
7/23/2019 Tesis Ana Maria Arguello Rubira
27/140
27
mquina. Uno de los ms prominentes ejemplos de sistema operativo, es el ncleo
Linux2 , el cual junto a las herramientas GNU, forman las llamadas distribuciones
GNU/Linux.
2.2.4. INTERFAZ DEL USUARIO
Es el medio con que el usuario puede comunicarse con una mquina, un equipo o
una computadora, y comprende todos los puntos de contacto entre el usuario y el
equipo, normalmente suelen ser fciles de entender y fciles de accionar.
TIPOS DE INTERFAZ
A) Una interfaz de hardware: teclado, ratn y pantalla visualizadora.
B) Una interfaz de software: entrega informacin a travs de lo que usuario
observa en la pantalla.
C) Una interfaz de Software-Hardware: Es puente entre la maquina y las
personas, permite a la maquina entender la instruccin y a el hombre entender el
cdigo binario traducido a informacin legible.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
28/140
28
-
7/23/2019 Tesis Ana Maria Arguello Rubira
29/140
29
CAPTULO III
3.1. HIPOTESIS
Desarrollar y disear un sistema informtico para Historias Clnicas, volver
eficaz el manejo de la informacin de los pacientes.
3.2. DEFINICIONES CONCEPTUALES Y OPERACIONALES DE LAS
VARIABLES
3.2.1 VARIABLE INDEPENDIENTE:
Sistema informtico.
3.2.2. VARIABLE DEPENDIENTE
El manejo de la informacin de los pacientes.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
30/140
30
3.3. OPERACIONALIZACION DE VARIABLES
3.3.1 Variable Independiente:
CONCEPTUALIZACION CATEGORAS INDICADORES ITEMS BASICOS
Coleccin de programas,procedimientos, datos yequipos utilizados en elproceso de la informacin.
Normas a seguiren la construccinde software.
Rapidez yseguridad en elmanejo de toda lainformacin aprocesar.
Interpretacincrtica de una ovariasexperiencias que apartir de suordenamiento ydescubre la lgica.
Flexibilidad enel manejo de lainformacin.
Sistemainformticoconfiable.
Representacinlgica mediantediagramas deflujos a travsde anlisis.
Qu tipos deconocimientosse necesitanpara la
informacin? Con qu tipo
de tecnologase cuenta?
3.3.2 Variable Dependiente:
CONCEPTUALIZACIN CATEGORAS INDICADORESITEMS
BASICOSCumplimiento de objetivospara poder satisfacer losrequerimientos exigidos porlos pacientes.
Determinaciny orden deactividades quese deseansistematizar.
Implementarun mejormanejo en el
tratamiento dela informacin
Mejorar eldesempeo delasistentemdico.
Mejorar laatencin a lospacientes atravs de un
manejo rpidoy seguro de lainformacin.
Cmo seregistra elproceso ycontrol de lainformacin?
-
7/23/2019 Tesis Ana Maria Arguello Rubira
31/140
31
3.4. METODOLOGA
En este trabajo se tomaron en cuenta los siguientes aspectos: mtodo,
instrumentos de investigacin, poblacin, muestra y recursos.
3.4.1. MODALIDAD DE LA INVESTIGACIN
Se utiliz el modelo experimental; ya que es una modalidad fctica se ocupa de
los hechos que realmente acontecen.
Basados en hechos que se suscitan ha diario hemos podido desarrollar un sistema
conveniente y eficaz que cubra las necesidades del consultorio mdico en estudio.
La modalidad est abierta a la incorporacin de nuevos conocimientos y
procedimientos con el fin de asegurar un mejor acercamiento a la verdad.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
32/140
32
3.5. TCNICAS
Se utilizaron las tcnicas siguientes:
La Observacin Directa: Se realizada constantemente mediante el tratomdico-paciente.
La observacin Indirecta: valindonos de libros, revistas, informesrelacionados con lo investigado.
3.5.1. INSTRUMENTOS
La Encuesta. La entrevista.
3.6. RECURSOS
Se utilizaron los siguientes recursos:
-
7/23/2019 Tesis Ana Maria Arguello Rubira
33/140
33
3.6.1 RECURSOS HUMANOS:
Interviene en este proyecto las siguientes personas:
Tutor de tesis: Ingeniera Esthela San Andrs Laz. Dr. Jos Intriago Andrade. Estudiante: Ana Mara Arguello Rubira, asistente mdico.
Personas que acuden diariamente a este consultorio como pacientes.
3.6.2 RECURSOS MATERIALES
Historias Clnicas en papel. CDS. Flash Memory Copias. Hojas A4. Cartuchos de tinta para impresora. Libros de soporte en base de datos. Libros de visual BASIC 6.0.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
34/140
34
3.6.3. RECURSOS TECNICOS
Computador Software
3.6.4. RECURSOS INSTITUCIONALES
Universidad Tcnica de Manab Consultorio Mdico del Dr. Jos Intriago Andrade
-
7/23/2019 Tesis Ana Maria Arguello Rubira
35/140
35
3.6.5. RECURSOS ECONOMICOS:
Rubros de gastosValor
USD
Internet 200,00
Materiales de escritorio 50,00
Material bibliogrfico 40,00
Transporte 30,00
Impresiones 250,00
Fotocopias 43,00
Empastado de tesis 150,00
Asistencia Tcnica 450,00
Imprevistos 10% 120,00
TOTAL 1.333,00
-
7/23/2019 Tesis Ana Maria Arguello Rubira
36/140
36
CAPTULO IV
4.1. CONCLUSIONES Y RECOMENDACIONES
4.1.1. CONCLUSIONES
Luego de terminado el trabajo de investigacin realizado con el apoyo de la
informtica, mediante la creacin de un programa para el funcionamiento del
consultorio privado del Dr. Jos Intriago Andrade, se concluye:
Las actividades del establecimiento mdico en general fueron muybeneficiadas en todo el quehacer mdico.
Mejor sustancialmente la calidad de atencin mdica saliendobeneficiados especialmente los pacientes y el personal que labora en el
consultorio.
El S.H.C. sirve como herramienta indispensable para determinar lamorbilidad, incidencias, prevalencias y mortalidad de los pacientes que se
atienden en este establecimiento.
Con informacin que se almacenamos en la base de datos se puedenrealizar investigaciones estadsticas, que aunque el universo no sea enorme
-
7/23/2019 Tesis Ana Maria Arguello Rubira
37/140
37
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 laslabores de atencin mdica y de investigacin ms eficientes.
La utilizacin de un programa como este debe de universalizarse, tomandoen 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 consultoriosprivados, estaramos como consecuencia estandarizando tambin los
protocolos de atencin referentes al diagnstico y tratamiento de las
diferentes patologas existentes en el pas.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
38/140
38
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.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
39/140
39
FORMULARIO PRINCIPAL (MDI.) FORMULARIO DATOS PERSONALES. FORMULARIO HISTORIAS CLNICAS. FORMULARIO CAMBIO DE CONTRASEA. FORMULARIO CIUDADES. FORMULARIO DIAGNSTICO. FORMULARIO ESTADISTICA.
5.2. IMPLEMENTACIN DE UN SISTEMA INFRMATICO
5.2.1. Equipamiento central del Consultorio.-
El consultorio Dr. Jos Intriago Andrade, cuenta actualmente con un equipo
computacional con las siguientes caractersticas:
-
7/23/2019 Tesis Ana Maria Arguello Rubira
40/140
40
Procesador: Intel Dual Core
Memoria: 2 GB
Disco Duro: 250 GB
DVD/R: Reproductor de CDs y DVDs
Sistema Operativo: Windows 7
Lenguaje de Programacin: Visual Basic 6.0
Aplicaciones: Microsoft Office 2007
Impresora: Lemax Z617
Es un equipo ideal para las funciones que cumple y su configuracin es aceptable.
Tiene posibilidades de crecimiento y el fabricante cuenta con repuesto y
mantenimiento que garantiza la buena utilizacin del mismo.
5.2.2. Requisitos de Instalacin del Software.-
Los requerimientos principales del equipo de computacin que se necesita para un
ptimo funcionamiento son:
Pentium III, Pentium IV, Dual Core 1.60 GHZ, o Superior.
Microsoft Windows XP Servipack 2 Profesional, Milenium.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
41/140
41
RAM mnima de 256 MB o superior.
Disco Duro 60 GB o Superior.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
42/140
42
5.3. CRONOGRAMA DE ACTIVIDADES
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Construccin del problema
Planificacin de metodologa
Elaboracin del marco Terico
Recoleccin de informacin
Ejecucin del proyecto
Elaboracin del informe finalPresentacin del informe
Sustentacin
Meses
ACTIVIDADES A REALIZAR Primero Segundo Tercero Cuarto Quinto
-
7/23/2019 Tesis Ana Maria Arguello Rubira
43/140
43
5.4. RELACIONES EXISTENTE DE LA BASE DE DATOS
La base de datos fue desarrollada en Microsoft Access, que es una aplicacin del paquete de Office.
basehis.mdb; se le coloco contrasea para as dar seguridad a los datos almacenados en ella. Contiene
estn relacionas entre s; las cuales se detallan a continuacin:
-
7/23/2019 Tesis Ana Maria Arguello Rubira
44/140
44
Tambin cabe recalcar que la tabla Enfermedades, se utiliza como tablas auxiliares para realizar consult
-
7/23/2019 Tesis Ana Maria Arguello Rubira
45/140
45
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,
-
7/23/2019 Tesis Ana Maria Arguello Rubira
46/140
46
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 las historias de lospacientes (visitas). Detallando,
signos vitales, diagnsticos,
tratamiento y prescripcin. Se
-
7/23/2019 Tesis Ana Maria Arguello Rubira
47/140
47
encuentra relaciona con la tabla Datos_Personales_Paciente y la tabla
Enfermedades (se crean tres tablas auxiliares para relacionar con los campos
diagnstico1, diagnstico2, diagnstico3; pero sigue siendo la tabla
enfermedades).
Esta tabla contiene diecisiete campos: cinco de tipo numrico, ocho de tipo texto,
uno de tipo fecha/hora, tres tipo memo.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
48/140
48
ANEXOS
-
7/23/2019 Tesis Ana Maria Arguello Rubira
49/140
49
NDICE DE ANEXOS
PAGS
FOTOS DEL CONSULTORIO DEL DR. JOS INTRIAGO A. 50
Fotografa 1: Archivadores delas historias Clnicas de los pacientes 51
Fotografa 2. Dr. Jos Intriago Andrade prescribiendo 52
Fotografa 3. Carpeta con documentos de Historias Clnicas 52
Fotografa 4. Carpetas ordenadas por apellidos 53
Fotografa 5. Dr. Jos Intriago Andrade auscultando a una paciente 53
REALIZACIN DE LA PROPUESTA 54
MANUAL DEL USUARIO 55
MANUAL DEL PROGRAMADOR (CODIFICACIN) 63
Programacin del Module 1 64
Formulario SPLASH (Frm_SPLASH.Frm) 74
Formulario CONTRASEA (Frm_Login.Frm) 74
Formulario Principal MDI (Principal.Frm) 76
Formulario Frm_datos_pacientes (frm_datos_pacientes.frm) 77
Formulario Frm_historia (historia.frm) 87
Formulario Cambio Contrasea (frm_contrasea.frm) 96
Formulario Diagnstico frm_diagnostico (frm_diagnostico.frm) 97
Formulario Ciudad frm_ciudad (frm_cuidades.frm) 100
Formulario Estadstica frm_ reportes (frm_reportes.frm) 103
AYUDA DEL SISTEMA 107
-
7/23/2019 Tesis Ana Maria Arguello Rubira
50/140
50
FOTOS DEL CONSULTORIO
DR. JOS INTRIAGO
ANDRADE
-
7/23/2019 Tesis Ana Maria Arguello Rubira
51/140
51
1.1. Fotografa 6. Archivadores delas historias Clnicas de los pacientes
-
7/23/2019 Tesis Ana Maria Arguello Rubira
52/140
52
1.2. Fotografa 7. Dr. Jos Intriago Andrade prescribiendo
1.3. Fotografa 8. Carpeta con documentos de Historias Clnicas
-
7/23/2019 Tesis Ana Maria Arguello Rubira
53/140
53
1.4. Fotografa 9. Carpetas ordenadas por apellidos
1.5. Fotografa 10. Dr. Jos Intriago Andrade auscultando a una paciente
-
7/23/2019 Tesis Ana Maria Arguello Rubira
54/140
54
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.
-
7/23/2019 Tesis Ana Maria Arguello Rubira
55/140
55
MANUAL DE USUARIO
-
7/23/2019 Tesis Ana Maria Arguello Rubira
56/140
56
PANTALLAS DEL SISTEMA INFORMTICO
Pantalla que aparece cuando carga el Sistema S.H.C.
Titulo: Ingreso de la Clave de los Usuarios Ventana # 1
Se digita el nombre del usuarioque 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 botnCancelar se cierra la ventanadel ingreso al sistema.
Color: &H8000000F&
-
7/23/2019 Tesis Ana Maria Arguello Rubira
57/140
57
Titulo: Formulario Principal (MDI)
Color: &H8000000F&
-
7/23/2019 Tesis Ana Maria Arguello Rubira
58/140
58
Titulo: Datos del Paciente
Color: &H8000000F&
-
7/23/2019 Tesis Ana Maria Arguello Rubira
59/140
-
7/23/2019 Tesis Ana Maria Arguello Rubira
60/140
60
Titulo: Cambio de Contrasea Ventana # 5
Se digita el nuevo nombre delusuario (alias).
Se escribe la nueva contrasea.
Con un clic en el botn Nuevo,activa los text para realizar elcambio de la contrasea.
Al hacer clic en el botnGuardar, almacena la nuevacontrasea.
Color: &H8000000F&
Titulo: Diagnsticos Ventana # 6
Ingreso del Diagnstico
Listado de los diferentes
Diagnsticos.
Botones de Controles
Color: &H8000000F&
-
7/23/2019 Tesis Ana Maria Arguello Rubira
61/140
61
Titulo: Ciudades Ventana # 7
Ingreso de la Ciudad
Listado de las DiferentesCiudades.
Botones de Controles
Color: &H8000000F&
-
7/23/2019 Tesis Ana Maria Arguello Rubira
62/140
62
Titulo: Estadsticas
Color: &H8000000F&
-
7/23/2019 Tesis Ana Maria Arguello Rubira
63/140
63
MANUAL DEL
PROGRAMADOR
-
7/23/2019 Tesis Ana Maria Arguello Rubira
64/140
64
CODIFICACIN DEL PROGRAMA
Programacin del Module 1
Option Explicit
Public BaseDatos As New ADODB.Connection
Public Declare Sub InitCommonControls Lib "comctl32" ()Public cn As New ADODB.ConnectionPublic rs As New ADODB.ConnectionGlobal StrConsulta, Mensaje As StringGlobal ResConsulta As StringPublic Nposicion As BytePublic viva As SingleGlobal CNumerico As StringGlobal CMayuscula As StringPublic TipoVali, op As IntegerGlobal Iva As DoubleGlobal IdPacienteDefecto As Long
Public ListaArchivos() As StringPublic Const MAX_PATH = 260
Public Type FILETIMEdwLowDateTime As LongdwHighDateTime As Long
End Type
Public Type WIN32_FIND_DATAdwFileAttributes As LongftCreationTime As FILETIMEftLastAccessTime As FILETIME
ftLastWriteTime As FILETIMEnFileSizeHigh As LongnFileSizeLow As LongdwReserved0 As LongdwReserved1 As LongcFileName As String * MAX_PATHcAlternate As String * 14
End Type
Public Declare Function FindFirstFile Lib "kernel32" Alias"FindFirstFileA" (ByVal lpFileName As String, lpFindFileData AsWIN32_FIND_DATA) As LongPublic Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA"(ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As LongPublic Declare Function FindClose Lib "kernel32" (ByVal hFindFile AsLong) As Long
#If Win32 ThenDeclare 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
-
7/23/2019 Tesis Ana Maria Arguello Rubira
65/140
65
Const CB_SHOWDROPDOWN = (WM_USER + 15)#End IfConst CB_FINDSTRINGEXACT = &H158 'Buscar cadena completa en un ComboBoxConst LB_FINDSTRINGEXACT = &H1A2 'Buscar cadena completa en un ListBox
Const CB_FINDSTRING = &H14C 'Buscar cadena desde el principio en unComboBoxConst LB_FINDSTRING = &H18F 'Buscar cadena desde el principio en unListBox
Public Sub Combo(ByRef c1, KeyAscii)
On Error Resume NextDim CB As LongDim FindString As StringConst CB_ERR = (-1)Const CB_FINDSTRING = &H14CIf KeyAscii < 32 Or KeyAscii > 250 Then Exit Sub'If KeyAscii = Asc("") Or KeyAscii Asc("") Then Exit SubIf c1.SelLength = 0 Then
FindString = c1.Text & Chr$(KeyAscii)Else
FindString = Left$(c1.Text, c1.SelStart) & Chr$(KeyAscii)End IfCB = SendMessage(c1.hWnd, CB_FINDSTRING, -1, ByVal FindString)If CB CB_ERR Then
c1.ListIndex = CBc1.SelStart = Len(FindString)c1.SelLength = Len(c1.Text) - c1.SelStart
End IfKeyAscii = 0
End Sub
Public Sub LlenaCombo(C As ComboBox, Ssql As String)
Dim aux As New ADODB.RecordsetSet aux = BaseDatos.Execute(Ssql)'C.ClearIf Not aux.BOF Then
Do While Not aux.EOFC.AddItem aux.Fields(0)aux.MoveNext
LoopEnd Ifaux.CloseSet aux = Nothing
End Sub
Function ValidaCedula(ced As String) As Boolean
Dim Dig(10) As ByteDim Comp As ByteDim i As ByteDim SumImpar As IntegerDim SumPar As Integer
Dim Prox As IntegerSumPar = 0SumImpar = 0If Len(ced) = 10 ThenFor i = 1 To 9Dig(i) = Val(Mid(ced, i, 1))If (i Mod 2) = 0 ThenSumPar = SumPar + Dig(i)ElseDig(i) = Dig(i) * 2If Dig(i) > 9 Then Dig(i) = Dig(i) - 9
-
7/23/2019 Tesis Ana Maria Arguello Rubira
66/140
66
SumImpar = SumImpar + Dig(i)End IfNext iProx = (Fix(((SumPar + SumImpar) / 10)) + 1) * 10
Comp = Val(Mid(ced, 10, 1))If Comp = Prox - (SumPar + SumImpar) ThenValidaCedula = TrueElse
ValidaCedula = FalseEnd IfIf Comp = 0 And (Prox - (SumPar + SumImpar)) = 10 Then ValidaCedula =
TrueElseValidaCedula = FalseEnd If
End Function
Public Sub EnterTab(Tecla As Integer)
If Tecla = 13 ThenTecla = 0
SendKeys "{tab}"End If
End Sub
Public Sub Sombrea(txt As Object)
txt.SelStart = 0txt.SelLength = Len(txt)
End Sub
'funcin quita tilde de una cadena de textoPublic Function QuitaTilde(txt As String) As String
Dim tran As StringDim n As Integer, i As Integern = 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 Elsetran = tran & UCase(Mid(txt, i, 1))
End SelectNextQuitaTilde = tran
End Function
Public Function edad(X As String) As String
Dim dn, mn, an As IntegerDim da, ma, aa As IntegerDim d, m, a As Integer
dn = Day(X)mn = Month(X)an = Year(X)
-
7/23/2019 Tesis Ana Maria Arguello Rubira
67/140
67
da = Day(Now)ma = Month(Now)aa = Year(Now)
Dim FechaActual As DateIf da < dn Thenma = ma - 1
FechaActual = Now() - dnd = Day(FechaActual)Else
FechaActual = Now() - dnd = Day(FechaActual)End IfIf ma < mn Then
ma = ma + 12aa = aa - 1m = ma - mn
Elsem = ma - mn
End If
a = aa - anedad = a & " Aos " & m & " Meses " & d & " Dias"End Function
Sub LLenaGrid(Msf As MSFlexGrid, Cadena As String)
Dim temp As New ADODB.RecordsetDim nrocampos, i As IntegerSet temp = BaseDatos.Execute(Cadena)nrocampos = temp.Fields.CountMsf.Cols = nrocampos + 1Msf.Rows = 1For i = 1 To nrocampos
Msf.Row = 0
Msf.Col = i
Msf.CellFontBold = TrueMsf.Text = temp.Fields(i - 1).Name
NextDo Until temp.EOF
Msf.AddItem ""Msf.Row = Msf.Rows - 1For i = 1 To nrocampos
Msf.Col = iMsf.Text = "" & temp.Fields(i - 1)Msf.ColWidth(i - 1) = 1800
Nexttemp.MoveNext
Loop
Msf.ColWidth(0) = 0Msf.ColWidth(1) = 0
End Sub
Public Sub LlenaList(Lst As ListBox, Cadena As String)
Dim aux As New ADODB.RecordsetSet aux = BaseDatos.Execute(Cadena)Lst.ClearIf Not aux.BOF Then
Do While Not aux.EOFLst.AddItem aux.Fields(0)aux.MoveNext
-
7/23/2019 Tesis Ana Maria Arguello Rubira
68/140
68
LoopEnd Ifaux.CloseSet 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.RecordsetDim Encontrado As BooleanSet temp1 = BaseDatos.Execute("SELECT * FROM
Datos_Personales_Paciente")If Not temp1.BOF Then
Encontrado = FalseDo While Not temp1.EOF
If temp1!cedula = txt ThenBusca_Personas = Trueformu.txthistoriaclinica = temp1!NumeroHistoriaClinicaExit Do
End If
temp1.MoveNextLoopIf temp1.EOF And Encontrado = False Then
MsgBox "No Existe Paciente, Ingrese Informacin...",vbInformation, Mensaje
temp1.CloseSet temp1 = Nothingformu.TxtApellidosNombres.SetFocusExit Function
End IfElse
temp1.CloseSet temp1 = NothingMsgBox "No Existe Registro de Paciente Ingrese Informacin...",
vbInformation, MensajeExit Function
End IfDim temp As New ADODB.RecordsetSet temp = BaseDatos.Execute(Ssql)Encontrado = FalseIf Not temp.BOF Then
Do While Not temp.EOF()If temp!NumeroHistoriaClinica = temp1!NumeroHistoriaClinica
ThenEncontrado = TrueExit Do
End Iftemp.MoveNext
LoopEnd IfIf Encontrado = True And Busca_Personas = True Then
temp.Close
Set temp = Nothingtemp1.CloseSet temp1 = Nothing'MsgBox Mensaje1, vbInformation, Mensaje
'formu.txthistoriaclinica = ""formu.txtcedula = ""
Exit FunctionElseIf Busca_Personas = True Then
formu.txthistoriaclinica = temp1!NumeroHistoriaClinicaformu.txtcedula = temp1!cedula
-
7/23/2019 Tesis Ana Maria Arguello Rubira
69/140
69
formu.TxtApellidosNombres = temp1!Apellidos_Nombresformu.cbsexo = temp1!SEXOformu.DTPFechaNacimiento = temp1!Fecha_Nacimientoformu.cbestadocivil = temp1!Estado_Civil
formu.txtocupacion = temp1!Ocupacionformu.txtocupacion = temp1!TELEFONOformu.TxtAlergias = temp1!ALERGIASformu.txtAntPatFamiliares = temp1!Antecedentes_Familiaformu.txtAntPatPersonales = temp1!Antecedentes_PacienteMsgBox "Paciente Existe, proceda...", vbInformation, Mensaje
End Iftemp.CloseSet temp = Nothingtemp1.CloseSet 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 = Falsevalor = 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 = FalseElse
Do Until t_aux.EOFIf QuitaTilde(t_aux.Fields(0)) = valor Then
busca_nombre = TrueExit Do
End Ift_aux.MoveNext
LoopEnd Ift_aux.CloseSet 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.RecordsetDim Encontrado As BooleanSet temp1 = BaseDatos.Execute("SELECT * FROM
Datos_Personales_Paciente")If Not temp1.BOF Then
Encontrado = FalseDo While Not temp1.EOF
If temp1!cedula = txt ThenBusca_PersonasAct = Trueformu.txthistoriaclinica = temp1!NumeroHistoriaClinicaExit Do
End Iftemp1.MoveNext
LoopIf temp1.EOF And Encontrado = False Then
MsgBox "No Existe Paciente, Ingrese Informacin...",vbInformation, Mensaje
temp1.Close
-
7/23/2019 Tesis Ana Maria Arguello Rubira
70/140
70
Set temp1 = Nothingformu.TxtApellidosNombres.SetFocusExit Function
End If
Elsetemp1.CloseSet temp1 = NothingMsgBox "No Existe Registro de Paciente Ingrese Informacin...",
vbInformation, MensajeExit Function
End IfDim temp As New ADODB.RecordsetSet temp = BaseDatos.Execute(Ssql)Encontrado = FalseIf Not temp.BOF Then
Do While Not temp.EOF()If temp!NumeroHistoriaClinica = temp1!NumeroHistoriaClinica
ThenEncontrado = TrueExit Do
End Iftemp.MoveNextLoop
End IfIf Encontrado = True And Busca_PersonasAct = True Then
temp.CloseSet temp = Nothingtemp1.CloseSet temp1 = NothingMsgBox Mensaje1, vbInformation, Mensaje
Exit FunctionElseIf Busca_PersonasAct = True Then
formu.txthistoriaclinica = temp1!NumeroHistoriaClinicaformu.txtcedula = temp1!cedulaformu.TxtApellidosNombres = temp1!Apellidos_Nombres
formu.cbsexo = temp1!SEXOformu.DTPFechaNacimiento = temp1!Fecha_Nacimientoformu.cbestadocivil = temp1!Estado_Civilformu.txtocupacion = temp1!Ocupacionformu.txtocupacion = temp1!TELEFONOformu.TxtAlergias = temp1!ALERGIASformu.txtAntPatFamiliares = temp1!Antecedentes_Familiaformu.txtAntPatPersonales = temp1!Antecedentes_PacienteMsgBox "Paciente Existe, proceda...", vbInformation, Mensaje
End Iftemp.CloseSet temp = Nothingtemp1.CloseSet 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.RecordsetDim Encontrado As BooleanSet temp1 = BaseDatos.Execute("SELECT * FROM
Datos_Personales_Paciente")If Not temp1.BOF Then
Encontrado = FalseDo While Not temp1.EOF
If temp1!cedula = txt Then
-
7/23/2019 Tesis Ana Maria Arguello Rubira
71/140
71
Busca_PersonasNew = Trueformu.txthistoriaclinica = temp1!NumeroHistoriaClinicaExit Do
End If
temp1.MoveNextLoopIf temp1.EOF And Encontrado = False Then
MsgBox "No Existe Paciente, Ingrese Informacin...",vbInformation, Mensaje
temp1.CloseSet temp1 = Nothingformu.TxtApellidosNombres.SetFocusExit Function
End IfElse
temp1.CloseSet temp1 = NothingMsgBox "No Existe Registro de Paciente Ingrese Informacin...",
vbInformation, MensajeExit Function
End IfDim temp As New ADODB.RecordsetSet temp = BaseDatos.Execute(Ssql)Encontrado = FalseIf Not temp.BOF Then
Do While Not temp.EOF()If temp!NumeroHistoriaClinica = temp1!NumeroHistoriaClinica
ThenEncontrado = TrueExit Do
End Iftemp.MoveNext
LoopEnd IfIf Encontrado = True And Busca_PersonasNew = True Then
temp.Close
Set temp = Nothingtemp1.CloseSet temp1 = NothingMsgBox Mensaje1, vbInformation, Mensaje
'formu.txthistoriaclinica = ""formu.txtcedula.Locked = True
Exit FunctionElseIf Busca_PersonasNew = True Then
formu.txthistoriaclinica = temp1!NumeroHistoriaClinicaformu.txtcedula = temp1!cedulaformu.TxtApellidosNombres = temp1!Apellidos_Nombresformu.cbsexo = temp1!SEXOformu.DTPFechaNacimiento = temp1!Fecha_Nacimientoformu.cbestadocivil = temp1!Estado_Civilformu.txtocupacion = temp1!Ocupacionformu.txtocupacion = temp1!TELEFONO
formu.TxtAlergias = temp1!ALERGIASformu.txtAntPatFamiliares = temp1!Antecedentes_Familiaformu.txtAntPatPersonales = temp1!Antecedentes_PacienteMsgBox "Paciente Existe, proceda...", vbInformation, Mensaje
End Iftemp.CloseSet temp = Nothingtemp1.CloseSet temp1 = Nothing
End Function
-
7/23/2019 Tesis Ana Maria Arguello Rubira
72/140
72
'funcin quita tilde de una cadena de textoPublic Function QuitaTilde1(txt As String) As String
Dim tran As String
Dim n As Integer, i As Integern = 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 SelectNextQuitaTilde1 = tranEnd Function
'escribir solo letrasPublic Sub letras(Tecla As Integer)
Select Case TeclaCase vbKeyReturn, vbKeyLeft, vbKeyRightCase 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 ElseTecla = 0
Exit SubEnd SelectEnd Sub
Public Sub letras_num(Tecla As Integer)
Select Case TeclaCase vbKeyReturn, vbKeyLeft, vbKeyRightCase 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, vbKeySpaceCase Else
Tecla = 0Exit SubEnd SelectEnd Sub
Public Sub Telefonos(Tecla As Integer)
Select Case Tecla
-
7/23/2019 Tesis Ana Maria Arguello Rubira
73/140
73
Case vbKeyReturn, vbKeyLeft, vbKeyRightCase Asc("0") To Asc("9")Case Asc("-"), Asc("("), Asc(")")Case 27, vbKeyBack, 13, vbKeySpace
Case ElseTecla = 0Exit SubEnd SelectEnd Sub
Public Sub presion_arterial(Tecla As Integer)
Select Case TeclaCase vbKeyReturn, vbKeyLeft, vbKeyRightCase Asc("0") To Asc("9")Case Asc("/"), Asc("-")Case 27, vbKeyBack, 13, vbKeySpaceCase Else
Tecla = 0Exit SubEnd Select
End Sub
Public Sub numero_punto(Tecla As Integer)
Select Case TeclaCase vbKeyReturn, vbKeyLeft, vbKeyRightCase Asc("0") To Asc("9")Case Asc("."), Asc("-")Case 27, vbKeyBack, 13, vbKeySpaceCase Else
Tecla = 0Exit SubEnd SelectEnd Sub
Public Sub numero_va(Tecla As Integer)
Select Case TeclaCase vbKeyReturn, vbKeyLeft, vbKeyRightCase Asc("0") To Asc("9")Case Asc("-")Case 27, vbKeyBack, 13, vbKeySpaceCase Else
Tecla = 0Exit SubEnd SelectEnd Sub
Public Sub numero(Tecla As Integer)
Select Case TeclaCase vbKeyReturn, vbKeyLeft, vbKeyRightCase Asc("0") To Asc("9")Case 27, vbKeyBack, 13, vbKeySpace
Case ElseTecla = 0
Exit SubEnd SelectEnd Sub
-
7/23/2019 Tesis Ana Maria Arguello Rubira
74/140
74
Formulario SPLASH (Frm_SPLASH.Frm)
Private Sub Timer1_Timer()
Dim Control As IntegerDim vector(30500) As StringPB.Min = LBound(vector)PB.Max = UBound(vector)PB.Value = PB.MinFor Control = LBound(vector) To UBound(vector)
vector(Control) = "texto sin importancia" & ControlPB.Value = Control
NextPB.Value = PB.MinUnload Mefrm_Login.Show 1End Sub
Formulario CONTRASEA (Frm_Login.Frm)Option Explicit
Public LoginSucceeded As BooleanDim S As BooleanDim contrasea, aux, aux1 As New ADODB.Recordset
Private Sub CmdAceptar_Click()
Dim aa As StringSet contrasea = BaseDatos.Execute("SELECT * FROM Clave WHERE
IdCLave='" & txtPassword & "' and usuario='" & txtUserName & "'")If contrasea.BOF Or contrasea.EOF Then
MsgBox "Nombre de Usuario o Clave incorrecta", vbCritical,"Error"
S = FalsetxtUserName = ""
txtPassword = ""txtUserName.SetFocuscontrasea.CloseSet contrasea = NothingExit Sub
ElseS = TrueUnload MePrincipal.Show
End IfEnd Sub
Private Sub CmdCancelar_Click()
Unload MeEnd Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
EnterTab KeyAsciiEnd Sub
Private Sub Form_Unload(Cancel As Integer)
If S = False ThenBaseDatos.Close
EndEnd IfEnd Sub
-
7/23/2019 Tesis Ana Maria Arguello Rubira
75/140
-
7/23/2019 Tesis Ana Maria Arguello Rubira
76/140
76
Formulario Principal MDI (Principal.Frm)
Option Explicit
Private Sub BarraPrincipal_ButtonClick(ByVal Button AsMSComctlLib.Button)
Select Case Button.KeyCase Is = "paciente"
Load frm_datos_pacientesfrm_datos_pacientes.Show 1
Case Is = "enfermedades"Load frm_diagnosticofrm_diagnostico.Show 1
Case Is = "Calculadora"Call Shell("calc.exe")
Case Is = "Salir"If MsgBox("Est seguro de Salir del Sistema...?", vbYesNo,
"SISTEMA") = vbYes Then
EndEnd If
End SelectEnd Sub
Private Sub MDIForm_Load()
Mensaje = Principal.CaptionBaseDatos.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
App.Path + "\basehis.mdb;Persist Security Info=False;;Persist SecurityInfo=False;Jet OLEDB:DataBase Password='rajarrob'"
frmSplash.Show 1End Sub
Private Sub MDIForm_Unload(Cancel As Integer)
If MsgBox("Esta seguro de salir del sistema...?", vbYesNo, "Preguntade seguridad") = vbYes Then
End
ElseCancel = 1
End IfEnd Sub
Private Sub mnuBEstado_Click()
Select Case mnuBEstado.CheckedCase True
mnuBEstado.Checked = FalseBarraEstado.Visible = False
Case FalsemnuBEstado.Checked = TrueBarraEstado.Visible = True
End SelectEnd Sub
Private Sub mnuBHerramientas_Click()
Select Case mnuBHerramientas.CheckedCase True
mnuBHerramientas.Checked = FalseBarraPrincipal.Visible = False
Case FalsemnuBHerramientas.Checked = TrueBarraPrincipal.Visible = True
End SelectEnd Sub
-
7/23/2019 Tesis Ana Maria Arguello Rubira
77/140
77
Private Sub mnuCalculadora_Click()
Call Shell("calc.exe")End Sub
Private Sub mnuCiudad_Click()
frm_ciudad.Show 1End Sub
Private Sub mnuContrasea_Click()
frm_contrasea.Show 1End Sub
Private Sub mnuDatos_Click(Index As Integer)
frm_datos_pacientes.Show 1End 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 ThenPopupMenu mnuBHerramientas
End IfEnd Sub
Private Sub mnureportes_Click()
frm_reportes.Show 1End Sub
Private Sub mnusalir_Click()
If MsgBox("Est seguro de Salir del Sistema...?", vbYesNo,
"SISTEMA") = vbYes ThenEndEnd If
End Sub
Formulario Frm_datos_pacientes (frm_datos_pacientes.frm)
Option Explicit
Public llena As BooleanDim aux As New ADODB.RecordsetDim rela As New ADODB.RecordsetDim actualiza, Encontrado, Encontrado1, Busca1 As BooleanDim paciente As Boolean
Dim aa
Private Sub cbciudad_KeyPress(KeyAscii As Integer)Combo cbciudad, KeyAsciiEnd Sub
Private Sub cbestadocivil_KeyPress(KeyAscii As Integer)
Combo cbestadocivil, KeyAsciiEnd Sub
-
7/23/2019 Tesis Ana Maria Arguello Rubira
78/140
78
Private Sub cbsexo_KeyPress(KeyAscii As Integer)
Combo cbsexo, KeyAsciiEnd Sub
Private Sub CmdActualizar_Click()If txthistoriaclinica = "" Then
MsgBox "Por Favor, Seleccione de la lista, el Paciente que deseaActualizar", vbInformation, Mensaje
Exit SubElse
actualiza = TrueBotones
txtcedula.SetFocusEnd If
End Sub
Private Sub CmdCancelar_Click()
LimpiarBotones
actualiza = FalseEnd Sub
Private Sub CmdCiudad_Click()
llena = TrueLoad frm_ciudadfrm_ciudad.Show 1
End Sub
Private Sub CmdGuardar_Click()
If Trim(txtcedula.Text) = "" Thentxtcedula.Text = "-"
End IfIf Len(txtcedula) = 10 Or txtcedula.Text = "-" ThenElse
MsgBox "La cedula, debe contener diez caracteres", vbInformation,Mensaje
txtcedula.SetFocusExit Sub
End If
If Trim(TxtApellidosNombres) = "" ThenMsgBox "Por Favor, ingrese Apellidos y Nombres ", vbExclamation,
MensajeTxtApellidosNombres.SetFocusExit Sub
ElseIf Trim(cbsexo) = "" ThenMsgBox "Por Favor, seleccione Sexo", vbExclamation, Mensajecbsexo.SetFocusExit Sub
ElseIf Trim(DTPFechaNacimiento) = "" Then
MsgBox "Por Favor,seleccione la Fecha de Nacimiento",vbExclamation, Mensaje
DTPFechaNacimiento.SetFocusExit Sub
ElseIf Trim(cbestadocivil) = "" ThenMsgBox "Por Favor, seleccione el Estado Civil", vbExclamation,
Mensajecbestadocivil.SetFocusExit Sub
ElseIf Trim(cbciudad) = "" Then
-
7/23/2019 Tesis Ana Maria Arguello Rubira
79/140
79
MsgBox "Por Favor, ingrese Ciudad", vbExclamation, Mensajecbciudad.SetFocusExit Sub
End If
If Trim(txtocupacion) = "" Thentxtocupacion.Text = "-"
End If
If Trim(txttelefono) = "" Thentxttelefono.Text = "-"
End If
If Trim(TxtAlergias) = "" ThenTxtAlergias.Text = "-"
End If
If Trim(txtAntPatFamiliares) = "" ThentxtAntPatFamiliares.Text = "-"
End If
If Trim(txtAntPatPersonales) = "" ThentxtAntPatPersonales.Text = "-"
End IfIf txtcedula = "-" ThenElseIf ValidaCedula(txtcedula.Text) = False Then
MsgBox "N de Cdula no vlido", vbCritical, Mensajetxtcedula.SelStart = 0txtcedula.SelLength = Len(txtcedula.Text)txtcedula.SetFocusExit Sub
End IfEnd IfSet aux = BaseDatos.Execute("SELECT * FROM Ciudades")Do Until aux.EOF
If cbciudad = aux!nombreciudad Thenaa = aux!IdCiudad
Exit DoElse
aux.MoveNextEnd If
Loopaux.CloseSet aux = Nothing
If txtcedula = "-" ThenIf busca_nombre("Datos_Personales_Paciente",Trim(TxtApellidosNombres.Text), "Apellidos_Nombres") Then
MsgBox "Apellidos y Nombre del Paciente, ya existe", vbCritical,Mensaje
TxtApellidosNombres.SetFocusExit Sub
End IfEnd IfIf actualiza = True Then
Set aux = BaseDatos.Execute("SELECT cedula FROMDatos_Personales_Paciente")
Busca1 = False
Do Until aux.EOFIf txtcedula = aux!cedula Then
Busca1 = True
-
7/23/2019 Tesis Ana Maria Arguello Rubira
80/140
80
Exit DoElse
aux.MoveNextEnd If
Loopaux.CloseSet aux = NothingIf txtcedula = "-" Then
Busca1 = FalseEnd If
Set aux = BaseDatos.Execute("SELECT NumeroHistoriaClinica,cedulaFROM Datos_Personales_Paciente")
Do Until aux.EOFIf txthistoriaclinica = aux!NumeroHistoriaClinica And
txtcedula = aux!cedula ThenBusca1 = FalseExit Do
Else
aux.MoveNextEnd IfLoopaux.CloseSet aux = NothingIf txtcedula = "-" Then
Busca1 = FalseEnd If
'SI LA CEDULA ES VERDADERA SALEIf Busca1 = True Then
MsgBox "Ya existe este N de Cdula para Paciente",vbCritical, Mensaje
txtcedula.SetFocusExit 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, Mensajeactualiza = False
ElseIf txtcedula = "-" ThenEncontrado1 = FalseElse
Encontrado1 = Busca_Personas(frm_datos_pacientes, txtcedula, "SELECT* FROM Datos_Personales_Paciente", "Paciente Existe, busque en lista...")
End If
If Encontrado1 = False ThenSet aux = BaseDatos.Execute("SELECT
max(NumeroHistoriaClinica)AS mayor FROM Datos_Personales_Paciente")If IsNull(aux!mayor) Then
txthistoriaclinica = 1
-
7/23/2019 Tesis Ana Maria Arguello Rubira
81/140
81
Elsetxthistoriaclinica = aux!mayor + 1
End Ifaux.Close
Set aux = NothingEnd If
Set aux = BaseDatos.Execute("SELECT NumeroHistoriaClinica FROMDatos_Personales_Paciente")
Busca1 = False
Do Until aux.EOFIf txthistoriaclinica = aux!NumeroHistoriaClinica Then
Busca1 = TrueExit Do
Elseaux.MoveNext
End IfLoop
aux.CloseSet aux = Nothing
'SI LA CEDULA ES VERDADERA SALEIf Busca1 = True Then
MsgBox "Ya existe este N de Cdula para Paciente",vbCritical, Mensaje
txtcedula.SetFocusExit Sub
End IfIf Encontrado1 = False Then
BaseDatos.Execute "INSERT INTODatos_Personales_Paciente(NumeroHistoriaClinica,Cedula,Apellidos_Nombres,Sexo,Fecha_Nacimiento,Estado_Civil,IdCiudad,Ocupacion,Telefono,Alergias,Antecedentes_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, MensajeEnd If
End IfLimpiarBotonesVisualizaDatos
End Sub
Private Sub CmdImprimir_Click()
If txthistoriaclinica = "" ThenMsgBox "No Hay Registro Activo, debe seleccionar un Paciente de la
lista", vbCritical, Mensaje
Exit SubElseImprime txthistoriaclinicaEnd IfEnd Sub
Private Sub CmdNuevo_Click()
LimpiarBotonestxtcedula.SetFocus
-
7/23/2019 Tesis Ana Maria Arguello Rubira
82/140
82
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 KeyAsciiEnd Sub
Private Sub Form_Load()
LLenaGrid msflista, "SELECTDatos_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 JOINDatos_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 SubIf 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, MensajeUnload Me
ElseSet 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,
-
7/23/2019 Tesis Ana Maria Arguello Rubira
83/140
83
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 WHEREDatos_Personales_Paciente.NumeroHistoriaClinica = " &msflista.TextMatrix(msflista.Row, 1) & "")
frm_historia.txthistoriaclinica = rela!NumeroHistoriaClinicafrm_historia.TxtApellidosNombres = rela!Apellidos_Nombresfrm_historia.lbedad = edad(DTPFechaNacimiento)frm_historia.TxtAlergias = rela!ALERGIASrela.CloseSet rela = Nothing
LLenaGrid frm_historia.msflista, "SELECTDatos_Personales_Paciente.NumeroHistoriaClinica,(Historia_Clinica.Fecha_Elaboracion) 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 ASEnfermedades_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) ONDatos_Personales_Paciente.NumeroHistoriaClinica =Historia_Clinica.NumeroHistoriaClinica WHEREHistoria_Clinica.NumeroHistoriaClinica= " &frm_historia.txthistoriaclinica & " ORDER BYHistoria_Clinica.Fecha_Elaboracion"frm_historia.msflista.ColWidth(1) = 1000End IfCmdSalir_Click
frm_historia.ShowEnd Sub
Private Sub msflista_LeaveCell()
msflista.CellBackColor = &H80000005End Sub
Private Sub msflista_SelChange()
If msflista.Rows = 1 Then Exit SubIf msflista.TextMatrix(msflista.Row, 1) = "" Then Exit SubVaciarDatos 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 KeyAsciiEnd Sub
Private Sub txtAntPatPersonales_KeyPress(KeyAscii As Integer)
letras_num KeyAsciiEnd Sub
-
7/23/2019 Tesis Ana Maria Arguello Rubira
84/140
84
Private Sub TxtApellidosNombres_Change()
If frmbusqueda.Enabled = False ThenDim aux As New ADODB.RecordsetSet 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 JOINDatos_Personales_Paciente ON Ciudades.IdCiudad =Datos_Personales_Paciente.IdCiudad WHEREDatos_Personales_Paciente.Apellidos_Nombres LIKE '" & TxtApellidosNombres& "%'")
msflista.Rows = 1Do 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.MoveNextLoopaux.CloseSet aux = Nothing
End IfEnd Sub
Private Sub TxtApellidosNombres_GotFocus()
Sombrea TxtApellidosNombresEnd Sub
Private Sub TxtApellidosNombres_KeyPress(KeyAscii As Integer)
letras KeyAsciiEnd Sub
Private Sub txtbusqueda_Change()
Dim aux As New ADODB.RecordsetSet 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 JOINDatos_Personales_Paciente ON Ciudades.IdCiudad =Datos_Personales_Paciente.IdCiudad WHEREDatos_Personales_Paciente.Apellidos_Nombres LIKE '" & txtbusqueda & "%'")
msflista.Rows = 1Do 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) &
-
7/23/2019 Tesis Ana Maria Arguello Rubira
85/140
85
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
Loopaux.CloseSet aux = Nothing
End Sub
Private Sub txtbusqueda_GotFocus()
Sombrea txtbusquedaEnd Sub
Private Sub txtcedula_GotFocus()
Sombrea txtcedulaEnd Sub
Private Sub txtcedula_KeyPress(KeyAscii As Integer)
numero KeyAsciiEnd Sub
Private Sub txtocupacion_GotFocus()
Sombrea txtocupacionEnd Sub
Private Sub txtocupacion_KeyPress(KeyAscii As Integer)
letras KeyAsciiEnd Sub
Private Sub txttelefono_KeyPress(KeyAscii As Integer)
Telefonos KeyAsciiEnd 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
-
7/23/2019 Tesis Ana Maria Arguello Rubira
86/140
86
Sub VaciarDatos(id As Integer)
Set aux = BaseDatos.Execute("SELECTDatos_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 JOINDatos_Personales_Paciente ON Ciudades.IdCiudad =Datos_Personales_Paciente.IdCiudad WHEREDatos_Personales_Paciente.NumeroHistoriaClinica=" & id)
If aux.EOF = False Thentxthistoriaclinica = aux!NumeroHistoriaClinicatxtcedula = aux!cedulaTxtApellidosNombres = aux!Apellidos_Nombres
cbsexo = aux!SEXODTPFechaNacimiento = aux!Fecha_Nacimientolbedad.Caption = edad(DTPFechaNacimiento)cbestadocivil = aux!Estado_Civilcbciudad = aux!nombreciudadtxtocupacion = aux!Ocupaciontxttelefono = aux!TELEFONOTxtAlergias = aux!ALERGIAStxtAntPatFamiliares = aux!Antecedentes_FamiliatxtAntPatPersonales = aux!Antecedentes_Paciente
End IfSet aux = Nothing
End Sub
Sub VisualizaDatos()
Dim aux As New ADODB.Recordset
Set aux = BaseDatos.Execute("SELECTDatos_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 JOINDatos_Personales_Paciente ON Ciudades.IdCiudad =Datos_Personales_Paciente.IdCiudad ORDER BY Apellidos_Nombres")
msflista.Rows = 1Do 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.MoveNextLoopaux.CloseSet aux = Nothing
End Sub
-
7/23/2019 Tesis Ana Maria Arguello Rubira
87/140
87
Sub Imprime(id As Integer)
Dim tPaciente As New ADODB.RecordsetSet 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 JOINDatos_Personales_Paciente ON Ciudades.IdCiudad =Datos_Personales_Paciente.IdCiudad WHEREDatos_Personales_Paciente.NumeroHistoriaClinica=" & id)Set DReportPacientes.DataSource = tPacienteDReportPacientes.Show 1End Sub
Formulario Frm_historia ( historia.frm)
Option Explicit
Public llena As BooleanDim Modifica, Encontrado As BooleanDim aux As New ADODB.RecordsetDim aa, bb, cc, dd, feDim FEC As String
Private Sub cmbdiagnostico1_KeyPress(KeyAscii As Integer)
Combo cmbdiagnostico1, KeyAsciiEnd Sub
Private Sub cmbdiagnostico2_KeyPress(KeyAscii As Integer)
Combo cmbdiagnostico2, KeyAsciiEnd Sub
Private Sub cmbdiagnostico3_KeyPress(KeyAscii As Integer)
Combo cmbdiagnostico3, KeyAsciiEnd Sub
Private Sub cmbdiagnostico4_KeyPress(KeyAscii As Integer)
Combo cmbdiagnostico4, KeyAsciiEnd Sub
Private Sub CmdActualizar_Click()
If cmbdiagnostico1 = "" ThenMsgBox "Seleccione de la Lista, el Registro que desea actualizar
", vbCritical, MensajeExit Sub
End IfBotonesModifica = Truetxtpresionarterial.SetFocus
End Sub
Private Sub CmdCancelar_Click()
LimpiarBotonesModifica = False
-
7/23/2019 Tesis Ana Maria Arguello Rubira
88/140
88
End Sub
Private Sub CmdDiagnostico_Click()
llena = True
Load frm_diagnosticofrm_diagnostico.Show 1
End Sub
Private Sub CmdGuardar_Click()
Dim aux As New ADODB.RecordsetIf Trim(txtpresionarterial) = "" Then
txtpresionarterial.Text = "-"End If
If Trim(txtpulsaciones) = "" Thentxtpulsaciones.Text = "-"
End IfIf Trim(txtrespiracion) = "" Then
txtrespiracion.Text = "-"End If
If Trim(txttemperatura) = "" Thentxttemperatura.Text = "-"
End If
If Trim(txtperimetrocefalico) = "" Thentxtperimetrocefalico.Text = "-"
End If
If Trim(txttalla) = "" Thentxttalla.Text = "-"
End If
If Trim(txtpeso) = "" Thentxtpeso.Text = "-"
End If
If Trim(txtmotivoconsulta) = "" ThenMsgBox "Ingrese el Motivo de la Consulta"txtmotivoconsulta.SetFocusExit Sub
End If
If Trim(txtprediagnostico) = "" Thentxtprediagnostico.Text = "-"
End If
If Trim(txttratamiento) = "" Thentxttratamiento.Text = "-"
End If
If Trim(txtprescripcion) = "" Thentxtprescripcion.Text = "-"
End If
Set aux = BaseDatos.Execute("SELECT * FROM Enfermedades")Do Until aux.EOF
If cmbdiagnostico1 = "" Thenaa = 1Exit Do
End If
-
7/23/2019 Tesis Ana Maria Arguello Rubira
89/140
89
If cmbdiagnostico1 = aux!enfermedad Thenaa = aux!Idenfermedad
Exit DoElse
aux.MoveNextEnd IfLoopaux.CloseSet aux = Nothing
Set aux = BaseDatos.Execute("SELECT * FROM Enfermedades")Do Until aux.EOF
If cmbdiagnostico2 = "" Thenbb = 1Exit Do
End If
If cmbdiagnostico2 = aux!enfermedad Thenbb = aux!Idenfermedad
Exit DoElse
aux.MoveNextEnd IfLoopaux.CloseSet aux = NothingSet aux = BaseDatos.Execute("SELECT * FROM Enfermedades")Do Until aux.EOF
If cmbdiagnostico3 = "" Thencc = 1Exit Do
End IfIf cmbdiagnostico3 = aux!enfermedad Then
cc = aux!IdenfermedadExit Do
Elseaux.MoveNext
End IfLoopaux.CloseSet aux = Nothing
Set aux = BaseDatos.Execute("SELECT * FROM Enfermedades")Do Until aux.EOF
If cmbdiagnostico4 = "" Thendd = 1Exit Do
End IfIf cmbdiagnostico4 = aux!enfermedad Then
dd = aux!IdenfermedadExit Do
Elseaux.MoveNext
End If
Loopaux.CloseSet aux = Nothing
If Modifica = False Thenfe = CStr(Now)BaseDatos.Execute "INSERT INTO
Historia_Clinica(NumeroHistoriaClinica,Fecha_Elaboracion,Motivo_Consulta,Presion_Arterial,Pulso,Respiracion,Temperatura,Perimetro_Cefalico,Talla,Peso,Prediagnostico,Diagnostico1,Diagnostico2,Diagnostico3,Diagnostico4,Tratamiento,Prescripcion) VALUES (" & txthistoriaclinica & ", '" &
-
7/23/2019 Tesis Ana Maria Arguello Rubira
90/140
90
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 Thenfe = 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= " &txthistoriaclinicaMsgBox "Informacin Actualizada", vbInformation, MensajeModifica = False
End IfIf MsgBox("Desea Imprimir la Receta", vbYesNo, Mensaje) = vbYes ThenImprimeRecetaG txthistoriaclinicaEnd If
LimpiarBotonesVisualizaDatosEnd Sub
Private Sub CmdImpHistorias_Click()
If msflista.Rows = 1 Then
MsgBox "No Hay Registro Activo", vbCritical, MensajeExit SubEnd IfImprimeHistorias txthistoriaclinicaEnd Sub
Private Sub CmdImprimir_Click()
If lbfechavisita = "" ThenMsgBox "No Hay Registro Activo, debe seleccionar una cita de la
lista", vbCritical, MensajeExit Sub
ElseImprime txthistoriaclinicaEnd IfEnd Sub
Private Sub CmdNuevo_Click()
If txthistoriaclinica = "" ThenMsgBox "Debe tener seleccionado un Paciente", vbInformation,
MensajeElse
LimpiarBotonestxtpresionarterial.SetFocus
End If
-
7/23/2019 Tesis Ana Maria Arguello Rubira
91/140
91
End Sub
Private Sub CmdPacientes_Click()
llena = True
CmdSalir_ClickLoad frm_datos_pacientesfrm_datos_pacientes.Show 1
End Sub
Private Sub cmdreceta_Click()
If lbfechavisita = "" ThenMsgBox "No Hay Registro Activo, debe seleccionar una cita de la
lista", vbCritical, MensajeExit Sub
ElseImprimeReceta txthistoriaclinicaEnd IfEnd Sub
Private Sub CmdSalir_Click()
Unload MeEnd Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
EnterTab KeyAsciiEnd Sub
Private Sub Form_Load()
lbfechavisita.Caption = ""lblFecha.Caption = Format(Date, "Long Date") & ", " &