1
PORTAL ESPECIALIZADO EN TELEMEDICINA UNIVERSIDAD DISTRITAL
PETMUD
ALEJANDRO PAOLO DAZA CORREDOR
LILIA MARCELA ESPINOSA RODRÍGUEZ
PEDRO ELIAS PABON LOZANO
ANDRES VILLANUEVA MANJARRES
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD DE INGENIERÍA
INGENIERÍA DE SISTEMAS
BOGOTÁ, D.C
2002
2
PORTAL ESPECIALIZADO EN TELEMEDICINA UNIVERSIDAD DISTRITAL
PETMUD
ALEJANDRO PAOLO DAZA CORREDOR
LILIA MARCELA ESPINOSA RODRÍGUEZ
PEDRO ELIAS PABON LOZANO
ANDRES VILLANUEVA MANJARRES
Investigación para optar al título de Ingenieros de Sistemas
DirectorALBERTO ACOSTA LÓPEZ
Ing. Msc.
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD DE INGENIERÍA
INGENIERÍA DE SISTEMAS
BOGOTÁ, D.C
2002
3
AGRADECIMIENTOS
Los autores expresan su agradecimiento a:
La Universidad Distrital Francisco José de Caldas por permitir la realización de nuestra
carrera y la adquisición de conocimiento de gran valía, a la Facultad de Ingeniería, gestora
del proceso de formación de profesionales comprometidos con su responsabilidad social.
Un selecto e inmejorable cuerpo docente que mediante sus sabias enseñanzas promovieron
nuestro acceso a conocimientos básicos e invaluables destinados a facilitar el ejercicio de la
profesión y la superación de ideales.
Nuestro asesor, el ingeniero Alberto Acosta, quien con sus buenos consejos nos
proporcionó el fundamento esencial para el logro de nuestra meta educativa y nos impulsó
al desarrollo de la investigación con compromiso social.
4
GLOSARIO
APACHE: servidor web de libre distribución creado bajo una licencia Open Source.
BASE DE DATOS: (database) una colección de datos organizados que se pueden consultar.
CHAT: (salas de conversación) sitios desarrollados para intercambiar opiniones de manera inmediata mediante mensajes de texto que simulan una conversación real, generalmente clasificados por temas.
CORREO ELECTRÓNICO: (email) mensajes personales enviados entre usuarios para obtener acceso a información privada.
FTP: protocolo de transferencia de archivos (Transferer File Protocol); un protocolo para transferir archivos hacia y desde computadoras remotas.
HIPERTEXTO: es la organización de unidades de información en asociaciones conectadas que un usuario puede escoger. Una instancia de esa asociación es llamada vínculo o hipervínculo.
HIPERVÍNCULO: (hyperlink) un elemento de HTML que, cuando se hace clic en él, permite que las personas pasen a otros documentos, imágenes, sonidos o películas.
HTML: Lenguaje de Marcado de Hipertexto (HyperText Markup Languaje); el lenguaje de programación de WWW.
HTTP: HyperText Transfer Protocol, el Protocolo de Transferencia de Hipertexto es un conjunto de reglas para intercambiar archivos (texto, gráficos, imágenes, sonido, video y otros archivos multimedia) en el World Wide Web. EL HTTP también permite la vinculación de documentos y componentes de documentos.
INTERNET: es una red de redes de alcance mundial que utiliza los protocolos TCP/IP, también se le conoce como ``La Red''.
5
INTRANET: es una red privada que utiliza los protocolos de Internet pero reside en una empresa u organización.
LINUX: implementación de libre distribución UNIX para computadoras personales (PC), servidores y estaciones de trabajo.
MANDRAKE LINUX: distribución del sistema operativo Linux que viene acompañada de un completo grupo de herramientas.
MYSQL: motor de bases de datos, de libre distribución que soporta SQL
NAVEGADOR: (browser) un programa que permite tener acceso a World Wide Web.
OPEN SOURCE: código abierto. Es una modalidad en el desarrollo de software en la cual los desarrolladores hacen disponible el código fuente del mismo a terceras personas.
PHP: lenguaje interpretado de alto nivel embebido en páginas HTML y ejecutado en el servidor. Permite crear contenido dinámico en páginas HTML.
PORTAL: punto de entrada a Internet donde se organizan sus contenidos, ayudando al usuario y concentrando servicios y productos, de forma que le permitan a éste hacer cuanto necesite en Internet sin tener que salir de dicho website.
SELECT: instrucción o proceso de SQL que genera un conjunto de registros seleccionados de una base de datos según criterios indicados.
SERVIDOR WEB: software que sirve como soporte para la implementación de sitios o portales para Internet o intranets
SISTEMA OPERATIVO: software o grupo de programas que sirve de soporte para el funcionamiento del computador y su interacción con el usuario y dispositivos periféricos
SQL: (Structured Query Language) Lenguaje Estructurado de Consultas. Lenguaje estándar interactivo para la consulta y actualización de bases de datos.
TCP/IP: Protocolo de Control de Transmisión/Protocolo Internet (Transmission Control Protocol/ Internet Protocol); el estándar de las comunicaciones en Internet.
TELEMEDICINA: utilización de tecnologías de comunicación e información para proveer asistencia y educación médica a distancia.
UNIX: popular sistema operativo para computadoras. Importante en especial para las computadoras más grandes que son usadas como servidores de Internet. Desarrollado en los Laboratorios Bell en 1969 como un sistema interactivo de tiempo compartido.
6
URL: Localizador Uniforme de Recursos (Uniform Resource Locator ); el medio para localizar una página de inicio de Web.
VÍNCULO: es una conexión entre una palabra, imagen u objeto de información a otro documento.
WEBSITE: sitio en Internet con contenidos comunes.
WORLD WIDE WEB: la telaraña de cobertura mundial, también conocido como WWW o Web, es el conjunto de recursos y usuarios en la Internet que hacen uso del protocolo de transferencia de hipertexto (HTTP). Según la W3C: ``El World Wide Web es el universo de información accesible por red, es una representación del conocimiento humano''.
7
RESUMEN
En el presente documento se presenta la descripción del proceso generado en el desarrollo del proyecto del “Portal Especializado en Telemedicina PETMUD”, para este trabajo se dividió el proceso del proyecto en seis capítulos de la siguiente manera:
En el primer capítulo se muestran todos los preliminares de la puesta en marcha del proyecto, tales como: la investigación inicial, el planteamiento del problema, la justificación, los objetivos, las preguntas de investigación planteadas y el estudio de la viabilidad del proyecto.
El segundo capítulo muestra el análisis hecho de las herramientas de desarrollo usadas para el proyecto en el que se incluye una breve descripción de cada una y los servicios que prestan para el portal.
En el capítulo tercero se hace un análisis de la funcionalidad detallada que se planteó para el portal, describiendo en forma pormenorizada cada una de las funciones que maneja o presenta.
El cuarto capítulo esta dedicado al diseño de las bases de datos e interfaces del portal, aqui se muestran detalladamente las diferentes tablas que componen la base de datos y un bosquejo inicial de las interfaces.
En el capítulo quinto se documenta el desarrollo del portal, incluyendo como preliminares el montaje de cada una de las herramientas.
En el capítulo sexto y septimo se documenta el desarrollo del portal, el desarrollo de la base de datos; el desarrollo de la interfaz web y la descripción detallada del desarrollo de cada uno de los módulos del portal.
También se anexan al trabajo el formato de la encuesta, el diccionario médico y el listado de entidades por localidades utilizados en el portal.
8
CONTENIDO
pag.
INTRODUCCIÓN 18
1 GENERALIDADES 21
1.1 ANTECEDENTES 21
1.2 MARCO TEÓRICO 22
1.2.1 Telemedicina 22
1.2.2 Portales 24
1.3 PLANTEAMIENTO DEL PROBLEMA 28
1.4 OBJETIVOS 29
1.4.1 Objetivo general 29
1.4.2 Objetivos Específicos: 30
1.5 PREGUNTAS DE INVESTIGACIÓN 31
1.6 JUSTIFICACIÓN 32
1.7 VIABILIDAD DEL PROYECTO 34
9
1.7.1 Análisis del estado actual del mercado 35
1.7.2 Determinación de la demanda 35
1.7.3 Resultado de la encuesta: 38
2 ANÁLISIS DE LAS HERRAMIENTAS DE DESARROLLO 46
2.1 SISTEMA OPERATIVO LINUX 47
2.2 SERVIDOR WEB 49
2.3 MOTOR DE BASES DE DATOS 50
2.4 LENGUAJES DE DESARROLLO 51
2.4.1 HTML 51
2.4.2 PHP 52
2.5 AGENTE DE TRANSPORTE DE CORREO 53
2.6 SERVIDOR DE LISTAS DE CORREO 54
3 FUNCIONALIDAD DETALLADA DEL PROYECTO 56
3.1 FUNCIONALIDAD DEL PORTAL 57
3.1.1 Registro de usuarios: 58
3.1.2 Consulta médica: 58
3.1.3 Diccionario médico: 59
3.1.4 Artículos médicos: 59
10
3.1.5 Directorio médico: 59
3.1.6 Búsqueda Total: 60
3.1.7 Otras opciones y servicios: 60
3.2 FUNCIONALIDAD DEL CENTRO DE ADMINISTRACIÓN 60
3.2.1 Gestión del diccionario: 61
3.2.2 Gestión del directorio: 61
3.2.3 Gestión de los artículos: 62
3.2.4 Gestión de consultas: 63
3.2.5 Gestión de médicos: 63
3.2.6 Envío de información a usuarios: 64
3.2.7 Gestión de administradores: 64
4 DISEÑO DEL PORTAL 65
4.1 DISEÑO DE LA BASE DE DATOS 65
4.2 DISEÑO DE LA INTERFAZ WEB 68
4.2.1 Esquema de enlaces internos del portal 69
4.2.2 Bosquejo de las interfaces 70
5 DESARROLLO DEL PORTAL 72
5.1 PRELIMINARES 72
5.1.1 Instalación y Configuración del Servicio de Correo Electrónico 76
5.1.2 Instalación y configuración del MUA OpenWebMail 80
11
5.1.3 Instalación y configuración del Servidor de Listas de Correo Majordomo. 82
5.1.4 Instalación y Configuración del servicio de Chat 84
5.1.5 Instalación y Configuración del servicio de Foros Virtuales 87
5.2 DESARROLLO DE LA BASE DE DATOS 89
5.3 DESARROLLO DE LA INTERFAZ WEB 90
6 INTERFAZ A LA BASE DE DATOS PARA LOS SERVICIOS DE DICCIONARIO,
DIRECTORIO Y CONSULTA 92
6.1.1 Módulo de inicio 92
6.1.2 Módulo de registro de usuarios 101
6.1.3 Módulo de consulta médica 107
6.1.4 Módulo del diccionario médico 114
6.1.5 Módulo de artículos médicos 122
6.1.6 Módulo de directorio médico 128
6.1.7 Artículos médicos 136
7 INDERFAZ A LA BASE DE DATOS PARA LOS SERVICIOS DE CORREO
ELECTRONICO, LISTAS DE CORREO, CHAT Y FOROS VIRTUALES. 145
7.1 ESPECIFICACIÓN FUNCIONAL DEL PROYECTO 145
7.1.1 Foros Virtuales 146
7.1.2 Correo Electrónico 147
7.1.3 Chat 148
12
7.1.4 Listas de Correo 149
7.1.5 Contactos 160
8 CONCLUSIONES 168
BIBLIOGRAFÍA 173
13
LISTA DE TABLAS
pag.
Tabla 1. Herramientas necesarias para el protal 44
Tabla 2. Esquema de la tabla diccionario 60
Tabla 3. Esquema de la tabla tblarticulos 60
Tabla 4. Esquema de la tabla tblconsultas 60
Tabla 5. Esquema de la tabla tbldirectorio 61
Tabla 6. Esquema de la tabla tblmedicos 61
Tabla 7. Esquema de la tabla tblusuarios 62
Tabla 8. Esquema de la tabla tbladmon 62
14
LISTA DE FIGURAS
pag.
Figura 1. Encuesta 36
Figura 2. Encuesta 37
Figura 3. Encuesta 37
Figura 4. Encuesta 38
Figura 5. Encuesta 38
Figura 6. Encuesta 39
Figura 7. Encuesta 40
Figura 8. Encuesta 40
Figura 9. Encuesta 41
Figura 10. Encuesta 42
Figura 11. Encuesta 42
Figura 12. Encuesta 43
Figura 13. Esquema de navegación 63
Figura 14. Bosquejo de las interfaces 64
Figura 15. Página de inicio 71
Figura 16. Sección de registro de usuarios 80
Figura 17. Sección de consulta médica 87
Figura 18. Sección diccionario médico 93
Figura 19. Sección de artículos médicos 99
15
Figura 20. Sección de directorio médico 106
Figura 21. Pagina Principal Foros Virtuales 142
Figura 22. Página principal Correo Electrónico 143
Figura 23. Página principal del Chat. 144
Figura 24. Página de registro en Listas de Correo. 145
Figura 25. Página Contáctenos. 156
16
LISTA DE ANEXOS
pag.
Anexo A. Formato de encuesta 171
Anexo B. Diccionario Petmud 172
Anexo C. Entidades por localidades del directorio médico Petmud 275
17
I N T R O D U C C I Ó N
Actualmente el desarrollo acelerado de un gran número de tecnologías ha abierto un sin
igual campo de posibilidades de aplicación en diferentes áreas de la ciencia y el
conocimiento. Entre estas herramientas se encuentra Internet, la cual ha creado un mundo
en el que se posibilita el intercambio de información de una manera sencilla y accesible
para la mayoría de la población. La multiplicidad de servicios que se pueden ofrecer por
medio de Internet como Correo Electrónico, Chat, Intercambio de Información, entre
muchos otros, han convertido a Internet en la Red de Computadoras más grande del
Mundo.
El Proyecto “Portal Especializado en Telemedicina Universidad Distrital PETMUD”, se ha
realizado con el objeto de aprovechar Internet como una herramienta tecnológica de fácil
acceso y como un medio de comunicación, para ponerlo en beneficio de la Medicina y la
Salud en Colombia.
Correo electrónico, chat, foros virtuales, listas de distribución, diccionario médico, registro
de usuarios, consulta en línea, publicación de artículos médicos, directorio médico de la
18
ciudad de Bogotá y el servicio de búsquedas avanzadas de artículos o términos en el portal,
son los servicios que se han implementado dentro del proyecto.
El proyecto se dividió en dos grupos y para objeto de este documento se presenta la diseño
y desarrollo de los servicios de diccionario médico, artículos, registro de usuarios,
directorio médico de Bogotá, consulta en línea, búsquedas avanzadas y el centro de
administración de estos servicios.
El desarrollo de éstos servicios se llevó a cabo utilizando Mandrake Linux 8.1 como
Sistema Operativo, Apache como servidor Web, HTML y PHP como lenguajes de
programación. Todas estas herramientas se consideran de Código Abierto (Open Source),
requisito indispensable en la realización del Portal, para mantener un bajo nivel de gastos,
demostrando así que es posible el desarrollo de aplicaciones usando este tipo de
herramientas.
En éste proyecto también se estudio la viabilidad de la implementación del Portal mediante
la realización de un estudio de mercados, llegando a la conclusión de que el proyecto es
viable por cuanto en Colombia no existen Portales Médicos actualmente con las
características de PETMUD.
El proyecto posee un amplio contenido social porque provee un eficaz medio para el fácil
acceso a diversos servicios médicos en Colombia, permitiendo a través de sus servicios, el
intercambio de información entre las personas interesadas en la medicina y la salud, tales
19
como Estudiantes, Médicos, Personal administrativo de Instituciones Médicas o
Internautas.
Dentro de los servicios que se implementaron en el Portal se encuentran correo electrónico,
chat, foros virtuales, registro de usuarios, listas de distribución, diccionario médico,
consultas en línea, publicación de artículos médicos, búsquedas avanzadas de artículos o
términos médicos y un directorio de entidades o instituciones médicas de la ciudad de
Bogotá.
La implementación de éstos servicios se llevaron a cabo utilizando Red Hat Linux 7.1
como Sistema Operativo, Apache como servidor Web, Sendmail como agente de
Transporte de Correo, Majordomo como servidor de Listas de Correo, MySql como Motor
de Bases de Datos y otras herramientas como Zorum, Openwebmail, y PhpMyChat. Dentro
de los lenguajes utilizados se encuentran Html, Php, Perl y JavaScript.
Todas las anteriores herramientas son consideradas de Código Abierto (Open Source),
requisito indispensable en la realización del Portal, para evitar incurrir en gastos de
Licencias y se han escogido teniendo en cuenta la compatibilidad con el Sistema Operativo
y la Compatibilidad entre ellas mismas.
En éste proyecto también se estudio la viabilidad de la implementación del Portal mediante
la realización de un serio estudio de mercados, un estudio técnico, un estudio financiero,
un estudio administrativo y un estudio económico, llegando a la conclusión que el proyecto
es muy viable por cuanto en Colombia no existen Portales Médicos actualmente.
Además de ser un proyecto viable económicamente, el Portal tiene un amplio contenido
social porque éste sería un eficaz medio para la gestión del conocimiento de la medicina en
Colombia, puesto que permitiría a través de sus servicios, el intercambio de valiosa
20
información entre las personas interesadas en la medicina y la salud en Colombia como
Estudiantes, Médicos, Personal administrativo de Instituciones Médicas o Internautas.
1 G E N E R A L I D A D E S
1 . 1 A N T E C E D E N T E S
Siguiendo el desarrollo del grupo de tratamiento de historias clínicas “TRHISCUD” y
utilizando como marco de referencia la investigación realizada por este en el área de la
telemedicina, surge la inquietud de la creación de un portal especializado en este tema.
Cuando se inicio la investigación no existían antecedentes directos, ya que tan solo existían
páginas web de telemedicina en las cuales era posible realizar interconsultas o páginas para
consultas de especialistas, o páginas que simplemente ofrecen servicio de información
relacionada con el ramo, actualmente existen algunos sitios web que brindan servicios
relacionados con los que se desean implementar en el proyecto, a continuación se
mencionan y describen algunos de ellos que se encuentran en idioma español, cabe señalar
que ninguno de ellos presta sus servicios para Colombia:
21
• PortalesMédicos.com: Es un portal médico que incluye los servicios de: Foros,
bolsas de empleo, auto evaluación, tablón de anuncios, enlaces colaboraciones,
noticias médicas también incluye un servicio de búsqueda de libros y una sección de
portales afiliados a portalesmedicos.com.
• Citimed.com: Es un portal mejicano dedicado a la salud en este país, ofrece los
servicios de consulta en línea, publicación de artículos en secciones clasificadas y
suscripción a boletines.
• Discovery Health: Es un web site que ofrece acceso a diferentes artículos médicos y
herramientas para la salud, no ofrece otros servicios adicionales a estos.
Adicionalmente a estos existen infinidad de sitios web que de una u otra manera tiene que
ver con la medicina y la salud, pero como ya se ha establecido no tiene aplicación directa
para Colombia.
1 . 2 M A R C O T E Ó R I C O
1.2.1 Telemedicina
La telemedicina es definida como la utilización de tecnologías de comunicación e
información para proveer asistencia y educación médica a distancia. La esencia de esta
tecnología es el intercambio de información a distancia, la misma puede ser voz, imágenes
estáticas, vídeo, datos de registros médicos o inclusive comandos a un robot quirúrgico. El
22
desarrollo de nuevas tecnologías en las áreas de comunicaciones y computación, tales
como; transmisión de datos e imágenes de alta calidad a una mayor velocidad, técnicas de
compresión irreversibles de imágenes más eficientes y técnicas de adquisición directa de
imágenes digitales, han permitido un gran avance en ésta nueva área de la medicina. La
Telemedicina como tecnología está creciendo día a día, y la misma es completamente
aplicable a casi todas las especialidades médicas.
Actualmente, la telemedicina es predominantemente vista como una manera de resolver
problemas como: insuficiencia de especialistas, escasez y centralización de recursos,
centros de salud rurales con servicios médicos limitados y dificultades geográficas de
comunicación; de esta manera logrando el objetivo de proveer igualdad en servicios de
salud, sin importar la localización geográfica. Aunado a esto, se están incrementando las
necesidades de intercambiar información entre distintas instituciones médicas,
adicionalmente existe una creciente necesidad de crear y administrar grandes bases de datos
que incluyan historias médicas, registros de señales e imágenes y otros datos que puedan
ser procesados para generar estadísticas, reportes de diagnósticos y tratamientos.
Otro de los aspectos muy interesantes y en los que la telemedicina está cobrando una gran
preponderancia, radica en la obtención de una "segunda opinión" a cargo de un experto en
una materia concreta. En tal sentido, la medicina rural, la medicina deportiva, la medicina
de emergencia (catástrofes, terremotos, inundaciones, etc.) o simplemente la medicina
habitual que requiere de expertos en casos concretos, están encontrando a través de este
sistema, una excelente vía de comunicación y trabajo en equipo.
23
El desarrollo de tecnologías en las áreas de computación y comunicaciones ha
proporcionado los medios para el impulso del desarrollo de la telemedicina como
herramienta de consulta y diagnóstico a distancia.
1.2.2 Portales
Internet, por su propia naturaleza, no es estructurada, no existe orden ni clasificación
previa, con lo que desde sus orígenes fue necesario realizar esfuerzos encaminados a
facilitar la navegación y la localización de los crecientes recursos en la red.
Surgieron lugares especializados en indexar los contenidos de las páginas existentes en
Internet, tales como Yahoo (http://www.yahoo.com), creado en 1994, que recogía
información sobre el contenido de un 20 % de las páginas existentes en aquella época,
ofreciendo un motor de búsqueda y una clasificación temática o índice de esos contenidos.
Poco a poco se fueron sofisticando los sistemas de indexación, incorporando robots para el
rastreo automático e incrementando el número de páginas referenciadas. Sin embargo, éstas
siempre eran muchas menos que las existentes, en continuo crecimiento hasta las actuales
más de 800 millones de páginas, de las que los robots más eficientes apenas consiguen
indexar el 35% del total.
Estos índices y motores de búsqueda han debido asumir el fracaso en la imposible labor de
registrar todo el contenido de Internet, siendo además cada vez mayor la sobrecarga de
24
información que dicho número de páginas representa, a lo que se une el hecho de que la
insuficiente calidad de la búsqueda es habitualmente una de las principales quejas de los
usuarios. Ello trajo consigo la evolución de las páginas de estos sistemas de búsqueda, que
incorporaron diversos servicios de valor añadido.
La otra evolución se produjo desde lugares como grandes proveedores de servicios Internet
al estilo AOL (http://www.aol.com) o la página principal de Netscape
(http://www.netscape.com), configurada como página de inicio por defecto en sus browsers
de versión superior a la 2.0. Observaron que muchos usuarios iniciaban a diario la
navegación desde esta página, lo que producía alto número de visitas, haciendo muy
rentable la publicidad albergada en esas páginas, decidiendo así implantar servicios
tendentes a potenciar el tráfico recibido y hacer fieles a los usuarios.
De forma simple se puede definir portal como:
• Un punto de entrada a Internet donde se organizan sus contenidos, ayudando al
usuario y concentrando servicios y productos, de forma que le permitan a éste hacer
cuanto necesite en Internet sin tener que salir de dicho website.
• Una puerta de entrada a los servicios, productos y en general, ofrecimientos que una
compañía puede brindar a sus clientes ya sean individuos o empresas.
• Mega Sitio Web que constituye el punto inicial de la navegación; lugar con multitud
de servicios que se erige en referencia para el usuario de la red.
25
• Reorganización de los contenidos de la red para adecuarse a la demanda de los
usuarios que están en el sitio o para atraer a otras personas.
• Reestructuración de las organizaciones encaminada a lograr que una página web sea
el "home page" del mayor número de usuarios y no precisamente de manera
eventual.
El objetivo que se pretende mediante un portal es hacer fieles a los usuarios para conseguir
no solo que éstos coloquen dicha página en su bookmark, sino que dicha página sea la
página de inicio del navegador del usuario, con lo que se generará un tráfico en ese web que
garantice la supervivencia en la red.
Hasta ahora un portal de carácter general u horizontal ofrece servicios de valor añadido
como comunidades virtuales, espacio web gratuito, información de diverso tipo,
personalización de la información, chat, email gratuito, mensajes a teléfonos móviles,
software gratuito, grupos de discusión, comercio electrónico, buscador, etc.
Sin embargo este modelo empieza a quedarse obsoleto, pues a ese nivel tan amplio solo
pueden sobrevivir unos pocos y empieza a haber demasiados portales de tipo general,
orientados a usuarios principiantes y basados en servicios poco especializados inadecuados
para los usuarios más expertos lo que está haciendo necesario redimensionar este mercado a
través de la especialización geográfica, temática o corporativa.
26
Cada vez hay más usuarios con experiencia que demandan servicios especializados y
personalizados como los que ofrecen portales verticales y corporativos. Es en este ámbito
donde sí sería posible la convivencia de un amplio número de portales.
Un portal corporativo es una Intranet que provee de información de la empresa a los
empleados así como acceso a una selección de Web públicos y Web de mercado vertical
(proveedores, vendedores, etc.) Incluye un motor de búsqueda para documentos internos así
como la posibilidad de personalizar el portal para diferentes grupos de usuarios y
particulares. Sería el equivalente interno a los portales de carácter general de Internet.
Los portales corporativos tienden a ser una prolongación natural de las Intranet
corporativas, en las que se ha cuidado la organización de la información y la navegación,
donde se permite, y sobre todo se potencia, el acceso a información de la propia institución,
la edición de material de trabajo propio, el contacto con clientes y proveedores, etc. En
ellos se distingue la parte intramuros y la parte extramuros o externa, dependiendo de que el
destinatario de esa información sea miembro de nuestra institución o bien un elemento
externo a ésta.
Un portal vertical es un Web site que provee de información y servicios a una industria en
particular. Es el equivalente industrial específico de los portales generales del Web.
Los portales verticales han de contener más datos sobre su mercado que cualquier otro sitio,
lo que en sí mismo ya es un valor añadido considerable. Es mediante este tipo de portales
27
como se puede conseguir cubrir las carencias que muestran muchos de los portales de tipo
general también llamados horizontales. Los portales además de ser corporativos o
verticales, se dividen en portal básico, portal mediano y portal grande.
Un portal básico, esta enfocado a las pequeñas compañías que estén empezando en Internet
y únicamente quieren plasmar su imagen dentro del Web. Este tipo de portal brinda
servicios de comunicación como email, chat, foros de discusión, etcétera. El propósito es
incrementar la interacción de los usuarios dentro del sitio.
Un portal mediano, esta destinado a empresas o instituciones medianas y busca reorientar el
diseño gráfico para hacer más llamativo su portal, así como añadir servicios de contenido
los cuales adquieren un valor mucho más importante debido a la demanda de un mayor
número de usuarios.
Un portal grande, es decir a la medida esta enfocado a aquellas empresas que requieren
satisfacer las necesidades más complicadas, tomando en cuenta los requerimientos del
cliente.
1 . 3 P L A N T E A M I E N T O D E L P R O B L E M A
Dentro del desarrollo de una investigación anterior realizada por el grupo “TRHISCUD” se
manejo un concepto clave para el tratamiento que este grupo realizo del tema de su
28
investigación, este concepto fue la Telemedicina. Dentro de esta visión surgen una
diversidad de temas y tópicos de investigación y desarrollo, los cuales, si se ven de una
forma separada pueden ser buenos en sí mismos pero agrupados en un conjunto de posibles
servicios son aún más fuertes y provechosos; unida a esta idea, se encuentran las
características de nuestro sistema de salud que por más que se intente desarrollar hacia un
manejo más amplio en cuanto a posibilidad de servicio y cobertura, se encuentra con
infinidad de dificultades.
Por estos dos puntos en especial nace la idea de crear un Portal especializado en
telemedicina, que ofrezca la oportunidad de unir los desarrollos creados dentro de la
Universidad por la linea de investigación de Telemedicina en un solo sitio y que éste a su
vez brinde una amplia cobertura en el sector salud a ciertos grupos de la población a los
cuales el solo desplazamiento hasta un centro de salud les resulta imposible o muy costoso,
así como la oportunidad de optimizar el desempeño de este sector mediante un grupo de
servicios que ofrece el portal.
1 . 4 O B J E T I V O S
1.4.1 Objetivo general
Este trabajo tiene como objetivo principal diseñar e implementar un portal especializado en
telemedicina, con el fin de optimizar el manejo de información médica desde el punto de
29
vista de accesibilidad, fiabilidad y disponibilidad, permitiendo a través de este, los servicios
de: consultas médicas, servicio de diccionario médico, servicio de directorio médico,
manejo de conocimiento médico mediante la publicación de artículos médicos, entre otros
servicios propios de un portal especializado.
1.4.2 Objetivos Específicos:
• Determinar los requisitos que se deben tener en cuenta para el diseño e
implementación de un portal en Internet.
• Identificar las técnicas o herramientas disponibles para diseñar e implementar el
portal.
• Establecer y describir cada una de las actividades que se deben llevar a cabo para
construir el diseño y realizar la implementación.
• Definir los recursos, técnicas, herramientas y procedimientos a utilizar.
• Definir los resultados que se deben esperar de cada una de las actividades
propuestas.
30
• Proveer igualdad en servicios de salud, sin importar la localización geográfica o
capacidad económica y cumpliendo con el concepto de salud de la OMS1.
• Brindar cobertura médica de mejor calidad que la existente, posibilitando las
consultas médicas o interconsultas entre especialistas.
• Abrir la posibilidad de una fuente de recursos para el área de investigación, ya que
como sabemos un portal bien manejado es una buena fuente de ingresos por la
publicidad que este puede manejar.
1 . 5 P R E G U N T A S D E I N V E S T I G A C I Ó N
La presente investigación busca dar respuesta a los siguientes interrogantes:
• ¿Qué requisitos se deben tener en cuenta para el diseño e implementación de un
Portal de Telemedicina?
• ¿Qué técnica o herramientas se tienen disponibles para el diseño e implementación
del Portal de Telemedicina?
1 Organización Mundial de la Salud
31
• ¿Qué actividades se deben llevar a cabo para construir el diseño y realizar la
implementación del portal?
• ¿Que impactos sobre la sociedad puede tener el proveer igualdad en servicios de
salud, sin importar la localización geográfica o la capacidad económica?
• ¿Es posible mediante la implementación del Portal de Telemedicina brindar
cobertura médica de mejor calidad que la existente?
• ¿Qué servicios se deben tener en cuenta para el diseño e implementación de un Portal de
Telemedicina?
• ¿Cuáles serían los servicios que mejor se adaptarían en un Portal Especializado en
Telemedicina para Colombia?
• ¿Qué herramientas de código abierto se pueden utilizar en el diseño e implementación
del Portal de Telemedicina?
• ¿Hasta dónde llega la posibilidad de una fuente de recursos para el área de investigación
a través del Portal de telemedicina?
1 . 6 J U S T I F I C A C I Ó N
Aunque Internet ya está vinculado enteramente a nuestra vida cotidiana, tanto como
herramienta de trabajo, fuente de información o simplemente como instrumento de
32
diversión, aún existe una diversa gama de posibilidades por explorar. Y la innovación
última tiene que ver con el potencial brindado por la Red para realizar todo tipo de
negocios.
Pero para que un sitio web fuese rentable es necesario un gran número de "clientes" o
cibernautas. Y éstos se conseguían en los sitios que ofrecieran servicios de correo
electrónico, salas de charla, buscadores, FTP2, noticias y hospedaje gratuito de páginas. De
allí surge una nueva idea de centralizar la mayor cantidad de servicios en un macro sitio y
reunir a todos los usuarios, a éste concepto se le denomina Portal de Internet.
La idea de realizar un Portal de Telemedicina no sólo surge con la intención de lucro o
negocio para la entidad o entidades que los patrocinen, sino también la de proveer igualdad
en servicios de salud, sin importar la localización geográfica o capacidad económica y
cumpliendo con el concepto de salud de la OMS (Organización Mundial de la Salud), que
no sólo contempla el buen estado físico y mental de la población, sino también el de su
"entorno social".
Centralizando la mayor cantidad de servicios en un Portal de Internet donde se logre
concentrar a todos los usuarios de todo nivel del área de la salud (Hospitales, Instituciones
Hospitalarias, EPS3´s, ARS4´s, Médicos, Facultades de Medicina de las Universidades, y
2 Protocolo de transferencia de archivos (Transferer File Protocol)
3 Entidad promotora de salud
4 Adminidtradoras de regimen subcidiado
33
Pacientes) se busca dar cobertura médica de alta calidad, en primera instancia, a todo el
Distrito Capital, y en un período de tiempo considerable poder resolver problemas de
desprotección de los sectores más desfavorecidos en el área de salud, insuficiencia de
especialistas, centros de salud rurales con servicios médicos limitados y dificultades
geográficas de comunicación.
Este proyecto implementará para cumplir sus objetivos un portal especializado en
telemedicina con los servicios de: diccionario médico, registro de usuarios, directorio
médico, servicio de articulos médicos y un módulo de consulta en línea para el diagnostico
de pacientes y consultas a especialistas por parte de estudiantes.
1 . 7 V I A B I L I D A D D E L P R O Y E C T O
Con el auge de Internet en los últimos años se ha abierto un sin número de posibilidades
para aplicar ésta tecnología en diferentes áreas. El proyecto Portal Especializado en
Telemedicina “PETMUD” busca implementar éstas tecnologías en el área de la medicina y
la salud en Colombia, brindando un medio efectivo para mantener a la población
actualizada con los nuevos avances científicos en el área de la medicina
Una parte importante de la investigación es ver la viabilidad de la implementación de un
Portal Especializado en Telemedicina para el país, mediante la realización de un completo
34
estudio de mercados el cuál incluye: el análisis del estado actual del mercado y la
determinación de la demanda.
1.7.1 Análisis del estado actual del mercado
Actualmente se encuentran gran número de portales especializados en diferentes áreas de la
medicina, estos portales están enfocados a médicos, estudiantes, pacientes e interesados en
algún tema específico de la salud. Algunos de ellos están especializados en áreas más
puntuales de la medicina como cardiología, pediatría, medicina alternativa, radiología, etc.
La mayoría de estos portales tienen un cubrimiento en el ámbito latinoamericano pero
ninguno de ellos está especializado en el ambiente de la medicina y la salud en Colombia.
La mayoría de portales analizados ofrecen servicios de: noticias médicas, diccionario
médico y artículos médicos, otros servicios que ofrecen algunos portales son: centros de
consulta, buscadores internos, suscripción de usuarios y directorios médicos.
1.7.2 Determinación de la demanda
La demanda y potenciales usuarios del producto van a ser todas aquellas personas,
entidades u organizaciones del campo de la salud, comprometidas con prestar un mejor
servicio a la comunidad médica e interesados en ella, y que podrían de una u otra manera
apoyar el Portal para que éste sea viable y pueda prestar eficientemente los servicios y
35
suministrar información oportuna a todos los interesados en la Medicina y la Salud en
Colombia.
En éste orden de ideas se pueden clasificar a los posibles demandantes en dos grupos,
usuarios generales e instituciones médicas.
Usuarios generales: Se consideran como usuarios generales a médicos, estudiantes,
pacientes o cibernautas casuales. Estos usuarios serán aquellas personas que dependiendo
del grupo específico al que pertenezca, consultarían el Portal por diferentes motivos tales
como:
• Realizar consultas en línea.
• Participar en foros, conferencias, chat y otras actividades que contengan temas
específicos relacionados con la materia de su interés y que se puedan llevar a cabo
por medio del portal.
• Solicitar opiniones de otras personas acerca de un caso específico, por medio de e
mail o foros virtuales.
36
Entidades u organizaciones médicas: Dentro de éste tipo de demandantes se encuentran
todos aquellos entes que podrían colaborar en éste proyecto. Dentro de éstas posibles
instituciones se encuentran:
• Ministerio de Salud: Es una entidad de carácter público y que actualmente no cuenta
en su portafolio con el producto que estamos ofreciendo.
• Superintendencia de Salud Pública: Es el ente gubernamental encargado de
supervisar, vigilar y regular la prestación de servicios de salud y que al igual que la
entidad mencionada anteriormente no cuenta tampoco con todos los servicios que el
Portal esta ofreciendo.
• E.P.S`s: Son todas las entidades, públicas o privadas, encargadas de prestar los
servicios de medicina directamente al paciente y que en la actualidad no cuentan
tampoco con proyectos como el que estamos desarrollando. Dentro de las
principales entidades de éste tipo se puede enumerar las siguientes: Famisanar, ISS,
Compensar, Cafesalud, Caprecom, Coomeva, Cruz Blanca, Humanavivir y Salud
Total entre otras.
• I.P.S5`s: Son aquellas instituciones prestadoras de servicios de salud y que también
tienen contacto directo con los pacientes. Dentro de las instituciones de éste tipo se
5 Institución prestadora de servicios de salud
37
encuentran entre otras las siguientes: Adsalud, Dinámica, Fundemos, Corvesalud,
Punto de salud y Red salud.
• Secretarías de salud municipales: Son las entidades de carácter público local que se
encargan de regular a las entidades que prestan servicios de salud en los diferentes
municipios de los distintos departamentos del país.
1.7.3 Resultado de la encuesta:
a) ¿Tiene usted un vínculo directo con el área de la medicina?
• Si 65%
• No 35%
b) ¿En qué forma se relaciona con el área de la medicina?
• Estudiantes 60%
38
Si 65%
No 35%
Figura 1 Encuesta
• Médicos 5%
• Usuarios 35%
c) ¿Tiene usted acceso a Internet?
• Si 98%
• No 2%
39
E s tu d ia n te s
6 0 %
U s u a rio s 3 5 %
M é d ic o s 5 %
Figura 2 Encuesta
No %2
Si %98
Figura 3 Encuesta
d) ¿Con qué frecuencia hace uso de Internet?
• Diariamente 18%
• Semanalmente 54%
• Mensualmente 10%
• Casualmente 18%
e) ¿Tiene usted conocimiento de algún portal médico en Internet?
• Si 48%
• No 52%
40
Diar iamente
1 8%
Semanalmente
54%
Casualmente
1 8%
Mensualmente
1 0%
Figura 4 Encuesta
Si %48
No %52
Figura 5 Encuesta
f) ¿Qué sitios en Internet conoce usted relacionados con la medicina?
• Citimed 8%
• Discovery health 14%
• Mediline 9%
• Otros 20%
• No sabe 49%
g) ¿Sabe usted de algún sitio en Internet que publique artículos médicos o relacionados
con la salud?
• Citimed 8%
• Discovery health 10%
• Otros 25%
• No Sabe 57%
41
Citimed
8%Discovery health
14%
Mediline
9%
Otros
20%
No sabe
49%
Figura 6 Encuesta
h) ¿Cuál de los sitios de Internet que usted conoce relacionados con la medicina ofrece
consulta en línea?
• Citimed 10%
• Otros 22%
• Ninguno 68%
42
Citimed
8% Discovery health
10%
Otros
25%
No sabe
57%
Figura 7 Encuesta
Citimed
10%
Otros
22%
Ninguno
68%
Figura 8 Encuesta
i) ¿Cuál de los sitios de Internet que usted conoce relacionados con la medicina ofrece
el servicio de directorio en línea?
• Citimed 5%
• Otros 8%
• Ninguno 87%
j) ¿Conoce algún sitio en Internet a nivel Colombiano que le ofrezca servicios como
chat, correo electronico, listas de correo y foros?
80%
4%8% 8%
No
encolombia.comIladiba.com
No Sabe
Figura No 10. Encursta
43
Citimed
5% Otros
8%
Ninguno
87%
Figura 9 Encuesta
• El 80% no conoce ningún sitio a nivel colombiano
• El 8% conoce Iladiba.com
• El 8% no sabe si existe un sitio en Internet a nivel colombiano que ofrezca
alguno de estos servicios.
• El 4% conoce encolombia.com
A nivel Colombiano existen Páginas Web que tiene información médica publicada como lo
son: “iladiba.com” y “encolombia.com”, pero ninguno de ellos puede considerarse como un
Portal médico.
k) ¿Algunos de los sitios relacionados con la salud y la medicina que usted conoce
ofrece alguno de sus servicios dirigidos especialmente para la ciudad de Bogotá?
• Si 0%
• No 100%
44
Si 0%
No100%
Figura 11 Encuesta
l) ¿Le gustaria encontrar en Internet un sitio dedicado a la salud en Colombia?
• Si 80%
• No 12%
• No está interesado 8%
De los resultados obtenidos en la encuesta se puede deducir que el proyecto es realmente
viable ya que no existe un competidor directo para los servicios que ofrece en la comunidad
de la ciudad de Bogotá, por lo cual captaría casi el 100% de los potenciales usuarios.
45
Si
80%
No
12%
No está interesado
8%
Figura 12 Encuesta
2 A N Á L I S I S D E L A S H E R R A M I E N T A S D E D E S A R R O L L O
Dentro del desarrollo del proyecto se usaron unas herramientas que permiten administrar
los servicios que se presta el portal. Estas herramientas son de código abierto, para
minimizar los costos del proyecto y tomando en cuenta también su grado de robustez. Las
herramientas utilizadas se presentan en la siguiente tabla en donde se relacionan con el
servicio que prestan en la implementación del portal
Tabla 1 Herramientas necesarias para el portal
SERVICIO HERRAMIENTASistema Operativo Mandrake Linux 8.1Servidor Web ApacheMotor de Bases de Datos MySQLLenguaje de Programación HTML, PHPServidor de Listas de Correo MajordomoAgente de Transporte de Correo Sendmail
Todas estas herramientas cumplen con las siguientes condiciones, las cuales fueron
establecidas en el inicio del proyecto:
46
• Son de licencia de libre distribución, con el fin de mantener un presupuesto bajo
para el desarrollo del Portal.
• Presentan bastante confiabilidad para la implementación del portal.
• Son compatibles y manejables dentro de una máquina Linux.
• Ofrecen un buen soporte en caso de consultas referentes a instalación,
configuración.
2 . 1 S I S T E M A O P E R A T I V O L I N U X
Linux es una implementación de libre distribución UNIX para computadoras personales
(PC), servidores, y estaciones de trabajo. Fue desarrollado para el i386 y ahora soporta los
procesadores i486, Pentium, Pentium Pro, Pentium II, Pentium III y Pentium IV, así como
las diferentes variedades de AMD y Cyrix. También soporta máquinas basadas en SPARC,
DEC Alpha, PowerPC/PowerMac, y Mac/Amiga Motorola 680x0.
Como sistema operativo, Linux es muy eficiente y tiene un excelente diseño. Es multitarea,
multiusuario, multiplataforma y multiprocesador; en las plataformas Intel corre en modo
protegido; protege la memoria para que un programa no pueda hacer caer al resto del
sistema; carga sólo las partes de un programa que se usan; comparte la memoria entre
47
programas aumentando la velocidad y disminuyendo el uso de memoria; usa un sistema de
memoria virtual por páginas; utiliza toda la memoria libre para cache; permite usar
48
bibliotecas enlazadas tanto estática como dinámicamente; se distribuye con código fuente;
usa hasta 64 consolas virtuales; tiene un sistema de archivos avanzado pero puede usar los
de los otros sistemas; y soporta redes tanto en TCP/IP6 como en otros protocolos.
La distribución de Linux usada en la implementación del portal es Mandrake Linux 8.1 ya
que esta distribución incluye, entre las muchas herramientas que posee, las herramientas
necesarias para la implementación del portal, como el servidor web Apache, el servidor de
bases de datos MySQL y soporte para el lenguaje de programación PHP.
2 . 2 S E R V I D O R W E B
Un servidor web es un software que sirve como soporte para la implementación de sitios o
portales para Internet o intranets, es el encargado de dar soporte a la conexión con los
motores de bases de datos, interpretar el código del lenguaje de programación para
presentar la interfaz al usuario y soportar el enlace con todos los otros servicios que se
implementen como correo electrónico, chat, etc.
Para la implementación y desarrollo del proyecto se eligió Apache Web Server, ya ofrece
unas características de competitividad al nivel de otros servidores Web de distribución
6 Protocolo de Control de Transmisión/Protocolo Internet (Transmission Control Protocol/ Internet Protocol)
49
comercial, es de libre distribución y ofrece buen nivel de documentación y soporte en su
sitio Web.
La necesidad de este servidor Web surge del requerimiento del manejo de ciertos servicios
propios de un portal, entre ellos el manejo y la administración de una base de datos con
información sobre los usuarios del servicio de telemedicina a través del portal.
Apache facilita y soporta el enlace mediante cualquier leguaje interpretado de alto nivel con
la base de datos del portal mediante una configuración y codificación sencilla, además de
brindar la base para el funcionamiento de toda la implementación.
2 . 3 M O T O R D E B A S E S D E D A T O S
Una base de datos es un depósito de información y un motor de bases de datos es un
sistema de software que administra la manera en que se almacenan y se recuperan los datos.
Para el desarrollo del proyecto se uso como motor de bases de datos MySQL el cual es uno
de los mas utilizados en Internet, este motor de bases de datos proporciona al portal el
medio de almacenamiento de la información necesaria para la implementación y puesta en
marcha de todos los servicios del portal.
50
MySQL ofrece grandes ventajas sobre otros motores de bases de datos existentes, ya que es
robusto, ofrece gran velocidad, fácil integración con PHP, etc. además es de libre
distribución y totalmente compatible con Mandrake Linux 8.1 y la mayoría de
distribuciones Linux existentes:
Su principal objetivo de diseño fue la velocidad, por lo que se sacrificaron algunas
características esenciales en sistemas más "serios" con este fin. Otra característica
importante es que consume muy pocos recursos, tanto de CPU como de memoria, MySQL
ofrece una licencia GPL a partir de la versión 3.23.19.
2 . 4 L E N G U A J E S D E D E S A R R O L L O
Los lenguajes de programación que se utilizaron en el desarrollo del portal permiten la
conexión con la base de datos del proyecto así como también la implementación de una
interfaz amigable para los futuros visitantes de PETMUD.
2.4.1 HTML
Por tratarse del desarrollo de una aplicación WEB, no se puede pensar en dejar de lado el
HTML7, ya que este es la base de cualquier diseño o desarrollo de este tipo. Mediante el
lenguaje de marcado de hipertexto se desarrollara la interfaz del portal.
7 Hypertext Markup Language
51
HTML ofrece la ventaja de ser compatible en las diferentes plataformas existentes ya que
fue desarrollado como estándar para la WWW8.
2.4.2 PHP
PHP9 es un lenguaje interpretado de alto nivel embebido en páginas HTML y ejecutado en
el servidor. Permite crear contenido dinámico en páginas HTML. Dispone de múltiples
herramientas que permiten acceder a bases de datos de forma sencilla, por lo que es ideal
para crear aplicaciones para Internet.
PHP es multiplataforma, funciona tanto para Unix (con Apache) como para Windows (con
Microsoft Internet Information Server). La mayoría de su sintaxis es similar a C, Java y
Perl, con solamente un par de características PHP específicas.
Para el proyecto, PHP permite la conexión y el enlace controlado con la base de datos, tanto
para los diferentes servicios que ofrece el portal, así como también para la seguridad y
control de acceso al centro de administración de PETMUD.
8 World Wide Web
9 acrónimo de "PHP: Hypertext Preprocessor"
52
2 . 5 A G E N T E D E T R A N S P O R T E D E C O R R E O
Uno de los servicios que más caracteriza a los portales es el de correo electrónico, pues éste
servicio se ha constituido en uno de los más utilizados y populares en Internet debido a las
comodidades que ésta herramienta ofrece en un mundo donde el tiempo se ha convertido en
una necesidad de vital importancia.
Uno de los aspectos poderoso del Internet es la capacidad de interactuar con la gente
alrededor del mundo vía su PC. En el Portal se implementara el servicio de correo
electrónico con el fin de brindarle a toda la comunidad que hará parte de la familia
“PETMUD”, las ventajas que el servicio de correo electrónico ofrece.
Los beneficios que ofrecería el servicio de correo electrónico en nuestro portal se pueden
resumir en el siguiente punto:
• Ofrecer a todos los integrantes del portal un medio seguro, cómodo y rápido que
permita enviar y recibir mensajes de texto en cualquier lugar del mundo generando la
oportunidad tener una dirección electrónica a donde enviar información.
En el portal “PETMUD” se implementara el servidor de correo electrónico Sendmail
debido a las notables ventajas que éste ofrece con respecto a Qmail, dentro de las cuales se
pueden mencionar mayor fiabilidad, mayor rapidez y menor consumo de recursos.
Sendmail es el agente de transporte de correo que más se está utilizando actualmente,
maneja cerca del 90% de la transferencia de correo electrónico en Internet. Sendmail es el
abuelo de los programas MTA disponibles en Unix. Por tal motivo se puede encontrar
mayor información sobre éste agente de transporte de correo. Éste agente de transporte de
correo electrónico es el más común de Internet principalmente en los sistemas UNIX.
53
Aunque actúa principalmente como MTA10, también puede ser utilizado como MUA11
(aunque no posee interfaz de usuario), siendo ésta una razón muy determinante en la
decisión que se ha tomado.
2 . 6 S E R V I D O R D E L I S T A S D E C O R R E O
Para “PETMUD” es muy importante ofrecer el servicio de Listas de Correo, porque por
medio de éstas, el Portal podría enviar alguna información determinada a todos los correos
electrónicos que estén adscritos a ésta. Para conseguir esto se necesita de un Servidor de
Listas de Correo.
Algunos otros beneficios que ofrecería el Servidor de Listas de Correo dentro del Portal y
para la Comunidad Medica serían:
• Enviar información a todos los médicos sobre alguna conferencia o foro que éste
programado, por entidades o instituciones que estén vinculados con la salud.
• De la misma manera los usuarios adscritos podrían compartir información médica
sobre avances o descubrimientos realizados como producto de sus investigaciones, con
los demás integrantes de la lista de correo y no tendrían que esperar tanto hasta tener
que publicarla.
• Por medio de las listas de correo, se podrían realizar preguntas de carácter médico a los
demás miembros de la lista, dentro de los cuales encontramos especialistas que podrían
dar solución efectiva a dichas inquietudes.
• Finalmente las Listas de Correo serían el medio más indicado para informar a toda la
comunidad (médicos, especialistas, estudiantes, farmaceutas o gente interesada) sobre
los nuevos avances en la medicina, y los usuarios contarían con la información más
actualizada en el área de la Salud.
10 Agente de transporte de correo
11 Agente de usuario de correo
54
Como se puede observar ésta herramienta ofrece un gran número de servicios que se
pueden implementar en el Portal con el ánimo de mejorar el nivel de conocimientos
médicos, no sólo entre los especialistas sino también entre todas las personas interesadas en
conocer y saber las últimas noticias y avances médicos.
Luego de haber analizado y estudiando las mejores herramientas de Listas de Correo que
hay en el mercado del software libre, se decidió optar por Majordomo, porque ésta
herramienta nos ofrece notables ventajas con respecto a Mailman.
Dentro de estas ventajas se encuentran que Majordomo es un servidor de Listas de Correo
altamente configurable, permite adjuntar archivos, permite moderadores múltiples para
cada lista y puede ser instalado en la plataforma que se selecciono para el desarrollo del
Portal.
Pero la razón más concluyente para seleccionar el Servidor de Listas de Correo majordomo
es que éste servidor es el más compatible y probado en plataformas Linux y con el
Servidor Web Apache, argumentos que estamos buscando para elegir las herramientas que
emplearemos en el desarrollo de nuestro Portal “PETMUD”.
Majordomo es un conjunto de programas en PERL12 que permiten administrar
eficientemente las listas de correo electrónico en Internet, ya que reduce al mínimo la
intervención del administrador. Majordomo consta de los programas majordomo, resend,
wrapper, bounce y aprobe.
12 Practical Extraction and Reporting Language
55
3 F U N C I O N A L I D A D D E T A L L A D A D E L P R O Y E C T O
El resultado final de este proyecto se constituye en un portal especializado de telemedicina,
cuya finalidad esta orientada a brindar facilidad de acceso a ciertos servicios médicos a la
población de la ciudad de Bogotá inicialmente y hacia un futuro cercano al país completo.
Tales servicios son:
• Registro de usuarios, para brindar información vía mail de diversos eventos
relacionados a la medicina.
• Consulta médica, con el fin de dar la oportunidad de fácil acceso a la consulta con
especialistas.
• Diccionario médico, en el cual tanto estudiantes como internautas comunes podrán
conocer el significado de diversos términos médicos.
• Artículos médicos, sección mediante la cual los usuarios del portal tendrán acceso a
publicaciones de actualidad médica en diferentes tópicos.
56
• Directorio médico, para brindar información de la ubicación de los diferentes
centros de salud de la ciudad de Bogotá, en sus diferentes localidades.
Adicional al portal se desarrolló un centro de administración del mismo en el cual el
administrador realizará el mantenimiento y actualización del Web site, en este se podrá
realizar las tareas de administrar el diccionario médico, las consultas médicas, los médicos
adscritos, los artículos médicos, el directorio y los usuarios autorizados para manejar el
centro de administración del portal. Para el centro de administración no se plantea una
funcionalidad vía web, si no una funcionalidad centralizada que puede ser en el mismo
servidor o una máquina conectada a este.
3 . 1 F U N C I O N A L I D A D D E L P O R T A L
Cuando el usuario del portal acceda a este a través de Internet, se encontrará con una
interfaz Web amigable y sencilla donde podrá acceder a los diferentes servicios del portal
sin la necesidad de registrarse previamente, en el caso de que el usuario decida registrarse,
esto no afectará su manera de trabajar directamente sobre el portal, pero si lo hará acreedor
a que se le envié información vía mail de los eventos relacionados con la medicina de los
que el portal tenga conocimiento.
Desde la página principal el usuario tendrá acceso a las diferentes secciones del portal,
evitando así, una tediosa profundidad en la navegación del Website; además, presentara
57
esta página la información del contenido de cada una de las secciones con sus novedades.
Desde aquí el usuario podrá acceder al registro de usuarios, diccionario médico, sección de
consulta, directorio médico de la ciudad, sección de artículos, búsquedas avanzadas dentro
del Web Site y una sección de información acerca de PETMUD y sus integrantes.
3.1.1 Registro de usuarios:
En la sección de registro, el usuario deberá digitar algunos datos personales, tales como:
nombre, apellido, edad, profesión, sexo, ciudad y email. Después de esto le quedarán
guardados sus datos en la base de datos del portal, a partir de la cual el administrador podrá
informarlo de los eventos relacionados a la salud que se realicen en el país.
3.1.2 Consulta médica:
En la sección de consulta el usuario proveerá al sistema de algunos datos básicos relevantes
para que los médicos den una respuesta mas acertada a su problema, estos datos son:
nombre, apellido, sexo, edad, especialidad médica a la cual dirige su pregunta, email para
la respuesta y la consulta como tal.
Una vez los datos quedan guardados en la base de datos del portal, el administrador enviará
esta información a los médicos adscritos para que estos den respuesta vía email a los
usuarios.
58
3.1.3 Diccionario médico:
En la sección del diccionario, el usuario podrá hacer clic sobre los hipervínculos
respectivos a cada letra con lo cual el portal hará un select a la base de datos
correspondiente a las palabras que empiecen por dicha letra y le mostrara al usuario la
respuesta en pantalla de cada una de las palabras.
3.1.4 Artículos médicos:
La interfaz de búsqueda de artículos médicos será bastante sencilla, el usuario podrá hacer
búsquedas por palabra clave y por categoría, de manera de obtener una respuesta mucho
mas inteligente que con formatos de búsqueda más simples. Para tal efecto el usuario
digitará la palabra clave, después seleccionará la categoría de búsqueda y el sistema le dará
como respuestas todos los artículos que tengan que ver con la palabra introducida y en la
categoría seleccionada.
3.1.5 Directorio médico:
Para realizar búsquedas en el directorio médico, el usuario seleccionara el tipo de centro
médico a buscar y la localidad de la ciudad en la que hará la búsqueda, con estos datos el
sistema deberá seleccionar de la base de datos los registros que concuerden con los criterios
introducidos por el usuario y dar como respuesta las coincidencias con el nombre de la
institución, la dirección y el teléfono.
59
3.1.6 Búsqueda Total:
El usuario podrá realizar en un solo paso búsquedas totales dentro del portal, esto quiere
decir que con introducir una palabra clave el sistema le dará como respuesta las
coincidencias existentes, tanto en el diccionario como en los artículos médicos.
3.1.7 Otras opciones y servicios:
Las demás secciones y servicios que se implementarán en el portal tales como servicio de
correo electrónico, chat, listas de correo y foros, serán implementadas por otro grupo de
trabajo del proyecto, razón por la cual no se relacionan en este documento.
3 . 2 F U N C I O N A L I D A D D E L C E N T R O D E A D M I N I S T R A C I Ó N
El centro de administración del portal permitirá el mantenimiento y actualización del portal
de manera automática a través de una interfaz web, la cual no será vía Internet, sino de
manera local. Mediante el centro los administradores podrán gestionar el diccionario
médico, el directorio, las consultas, los médicos adscritos al portal, el envío de información
a los usuarios, los artículos médicos y el acceso de ellos mismos al centro. Para el inicio en
este centro de administración el sistema le pedirá al usuario el ingreso de su nickname y
60
clave, para validar el acceso de este, en caso de concordar le permitirá la entrada a los
diferentes servicios.
3.2.1 Gestión del diccionario:
Para la gestión del diccionario el centro de administración del portal brindará las opciones
de agregar, modificar y eliminar palabras. Para agregar una palabra el administrador
escribirá dicha palabra y su significado en la interfaz, luego hará clic sobre el botón aceptar
y esta será agregada al diccionario.
Para modificar una palabra existente, el administrador escribirá esta y su nuevo significado,
hará clic sobre el botón aceptar y el centro de administración se encargará de buscarla en la
base de datos y actualizar su significado.
Para eliminar una palabra existente, el administrador deberá escribir dicha palabra en la
interfaz del centro, éste se encargará de buscar dicha palabra en la base de datos y
eliminarla si existe o reportar si ésta no existe.
3.2.2 Gestión del directorio:
La gestión del directorio médico es similar a la gestión del diccionario, tendrá las opciones
de agregar entidad, modificarla o eliminarla. Para agregar una nueva entidad bastará con
ingresar los datos pertinentes a esta y hacer clic sobre el botón aceptar, los datos necesarios
61
serán nombre de la entidad, tipo de entidad, localidad a la que pertenece, dirección,
teléfono, email y dirección web si la posee.
Para modificar una entidad, esta será seleccionada o buscada primero en la base de datos,
luego se cargará la información correspondiente a dicha entidad en un formulario y el
administrador modificará los campos deseados, para después guardar dichos cambios en la
base de datos.
Para eliminar una entidad de la base de datos, el proceso será el siguiente: primero se
buscará la entidad en la base de datos a través de la interfaz web, luego se le pedirá al
centro que elimine este registro de la base de datos.
3.2.3 Gestión de los artículos:
Para la gestión de artículos médicos el portal manejara una interfaz que permitirá: agregar,
modificar o eliminar la información que poseerá la base de datos acerca de los artículos
publicados en el portal.
Para agregar un artículo, el administrador proveerá a la interfaz el título del artículo, un
breve resumen, autor, ruta del archivo que posee el artículo completo y la categoría médica
a la que pertenece.
62
Para la modificación de la información de la base de datos sobre un artículo en particular, el
administrador deberá buscar el artículo mediante la interfaz web, con lo que se cargarán los
datos relacionados con este en un formulario, listos para ser modificados por el
administrador.
Para eliminar un artículo de la base de datos, se hará una búsqueda de este mediante la
interfaz web y luego confirmar la eliminación del mismo para borrar el registro
correspondiente de la base de datos.
3.2.4 Gestión de consultas:
Para la gestión de consultas, el portal manejará una interfaz en la cual el administrador
podrá revisar y asignar las consultas a los médicos adscritos al portal. Para esta gestión se
hará una selección de las consultas hechas por los usuarios en una fecha determinada y el
centro de administración del portal se encargará de enviarlas al correo de los médicos
adscritos al portal según la especialidad de estos.
3.2.5 Gestión de médicos:
La gestión de médicos permitirá las opciones de agregar, modificar o eliminar los registros
de la base de datos según sea la necesidad. Para agregar un nuevo médico, el administrador
deberá proporcionar los datos del mismo mediante la interfaz web, estos datos serán:
63
nombre del medico, apellido, especialidad, institución, ciudad y email; este ultimo debe ser
perteneciente al portal, por ejemplo [email protected].
Para modificar el registro de algún médico, el administrador buscará el medico en la base
de datos por medio de su email, el cual será único, para poder cargar los datos
correspondientes y modificarlos, la eliminación se hará de la misma forma.
3.2.6 Envío de información a usuarios:
El envío de información se hará desde la interfaz web generada por el centro de
administración, de manera automática a todos los usuarios registrados en el portal. Para
esto el administrador escribirá en un formulario la información deseada y luego el centro
mediante un ciclo enviará a cada uno de los usuarios la información.
3.2.7 Gestión de administradores:
Los procesos de gestión de administradores, solo los podrá hacer el administrador de
permiso de nivel cero, el cual solo podrá ser uno en la base de datos, estos procesos
incluyen: agregar administrador, modificar y eliminar. Para esto se pedirá al administrador
que suministre nuevamente su password y nickname para comprobar su nivel de permiso,
una vez comprobados estos datos se le dará acceso al modulo de gestión de administradores
o se le negará.
64
4 D I S E Ñ O D E L P O R T A L
Dentro del diseño del portal existen dos secciones de gran importancia para la creación del
mismo, estas son: el diseño de la base de datos y el diseño de la interfaz web del portal; la
primera con el fin de garantizar la permanencia de la información y el fácil manejo de esta
y la segunda con el fin de garantizar un fácil manejo por parte de los usuarios del portal de
todos los servicios referentes a este.
4 . 1 D I S E Ñ O D E L A B A S E D E D A T O S
La base de datos está diseñada para almacenar la información referente al diccionario
médico, a los artículos médicos, a las consultas hechas por los usuarios del portal, al
directorio médico, a los médicos adscritos al portal, a los usuarios que se suscriban y a la
administración del mismo. Las tablas que posee la base de datos son las siguientes:
• diccionario: en esta tabla se almacenan cada una de las palabras con su respectivo
significado.
65
Tabla 2 Esquema de la tabla diccionario
diccionariopalabra Varchar(50)significado Text
• tblarticulos: guarda información referencial a los artículos publicados en el portal,
para facilitar la búsqueda de artículos.
Tabla 3 Esquema de la tabla tblarticulos
tblarticulosfecha Datetitulo Varchar(100)resumen Textautor Varchar(100)archivo Varchar(100)categoria Varchar(100)
• tblconsultas: guarda información de las consultas hechas por los usuarios del portal.
Tabla 4 Esquema de la tabla tblconsultas
tblconsultasfecha Datenombre Varchar(50)apellido Varchar(50)sexo Char(1)edad Varchar(10)especialidad Varchar(100)email Varchar(100)consulta Text
66
• tbldirectorio: guarda información de las instituciones médicas de la ciudad de
Bogotá.
Tabla 5 Esquema de la tabla tbldirectorio
tbldirectorioentidad Varchar(60)tipo Varchar(15)localidad Varchar(60)direccion Varchar(100)telefono Varchar(100)mail Varchar(60)url Varchar(100)
• tblmedicos: guarda información de los médicos afiliados al portal.
Tabla 6 Esquema de la tabla tblmedicos
tblmedicosnombre Varchar(50)apellido Varchar(50)especialidad Varchar(100)institucion Varchar(100)ciudad Varchar(100)email Varchar(100)
• tblusuarios: guarda información referente a los usuarios que se suscriban al portal.
67
Tabla 7 Esquema de la tabla tblusuarios
tblusuariosfecha Datenombre Varchar(50)apellido Varchar(50)sexo Char(1)edad Varchar(10)profesion Varchar(50)ciudad Varchar(50)email Varchar(100)
• tbladmon: en la que se almacena la información referente a los administradores del
portal.
Tabla 8 Esquema de la tabla tbladmon
tbladmonnickname Varchar(15)clave Varchar(15)permiso Char(1)
4 . 2 D I S E Ñ O D E L A I N T E R F A Z W E B
68
La interfaz web del portal esta diseñada para brindar una navegabilidad sencilla al usuario,
mediante esta el internauta tiene acceso al diccionario médico, al directorio, a los diferentes
artículos, a la opción de registro de usuarios y la opción de búsqueda inteligente.
4.2.1 Esquema de enlaces internos del portal
Para el diseño de la interfaz web siempre se tuvo en cuenta el requisito de hacer un sitio lo
mas plano posible en cuanto a su navegabilidad, de manera que para acceder a las
diferentes secciones del mismo, sin importar en cual se encuentre el usuario, baste con un
solo clic del ratón. Para lograr esto se incluye en cada una de las secciones un menú de
navegación del sitio.
69
Pagina de Inicio Registro Consulta
Médica Diccionario Artículos Directorio Quienessomos
Usuario
Internet
Servidor Web
Pagina de Inicio Registro Consulta
Médica Diccionario Artículos Directorio Quienessomos
Pagina de Inicio Registro Consulta
Médica Diccionario Artículos Directorio Quienessomos
Usuario
Internet
Servidor Web
Figura 13 Esquema de navegación
Esquema de navegación
4.2.2 Bosquejo de las interfaces
Como se estableció en el punto anterior la interfaz web del portal incluye un menú de
navegación en cada una de las páginas del sitio, esto permite al usuario un fácil y rápido
acceso a cada una de las diferentes secciones del portal.
El menú de navegación se ubica en la sección izquierda de cada página, otro elemento
común es el encabezado el cual contiene además del logotipo de PETMUD un vínculo para
búsquedas rápidas en la sección de artículos y diccionario médico, en la parte inferior se
coloca el slogan del grupo. En la sección central de cada pagina se ubica el cuerpo y
contenido perteneciente a cada una de ellas. Todas estas características se pueden observar
en la gráfica siguiente.
70
71
Figura 14 Bosquejo de las interfaces
5 D E S A R R O L L O D E L P O R T A L
5 . 1 P R E L I M I N A R E S
Para el desarrollo del “Portal Especializado en Telemedicina PETMUD”, se instalaron
inicialmente las herramientas mencionadas al comienzo de este documento. Como la
distribución de Linux elegida fue el Mandrake Linux 8.1 la configuración del Servidor Web
Apache y el Servidor de Bases de Datos MySQL no presentaron mayores inconvenientes ya
que estas quedan instaladas al instalar el sistema operativo.
Dentro de las especificaciones que cabe mencionar se refieren a las rutas de los archivos
necesarios para el desarrollo del portal, por ejemplo, la ruta de todos los archivos que se
crearon para la interfaz web se encuentran en la ruta “/var/www/html/portal_petmud/” y la
ruta de los archivos de la base datos se encuentran en la ruta “/var/lib/mysql/petmud/”.
En el caso de que la distribución Linux elegida fuese otra los cambios que se deben realizar
para la configuración del servidor web y el servidor de bases de datos son sencillos. A
continuación se hará una breve descripción del proceso de instalación de la base de datos
72
MySQL, de un servidor web Apache con PHP, en una máquina con sistema operativo
Linux.
Lo primero que se debe hacer es conseguir los paquetes necesarios, y que mejor para ello
que dirigirse a las páginas web de los programas en cuestión:
Apache: www.apache.org
MySQL: www.mysql.com
PHP: www.php.net
Para poder realizar todo el proceso de instalación se ha de tener acceso como root a la
máquina Linux. Se debe crear un directorio de instalación. Una vez que ya se han
conseguido los paquetes y se tienen en el directorio /root/install, lo primero que se hace es
descomprimirlos:
cd /usr/local
tar zxvf /root/install/apache-1.3.x.tar.gz
tar zxvf /root/instal/mysql-3.22.x.tar.gz
tar zxvf /root/instal/php-3.0.x.tar-gz
Se crean enlaces sencillos (blandos) a código fuente
ln -s /usr/local/apache-1.3.x /usr/local/apache
ln -s /usr/local/mysql-3.22.x /usr/local/mysql
ln -s /usr/local/php-3.0.x /usr/local/php
Se preparan las fuentes para la compilación de Apache
73
cd /usr/loca/apache
./configure --prefix=/usr/local/apache
Se compila e instala MySQL
cd /usr/local/mysql
./configure --witout-debug --prefix=/usr/local/mysql
make
make install
cp /usr/local/support-files/mysql.server /etc/rc.d/init.d/mysql
chmod 755 /etc/rc.d/init.d/mysql
Se crean las bases de datos del sistema MySQL
/usr/local/mysql/bin/mysql_install_db
Se arranca el servidor MySQL
/etc/rc.d/init.d/mysql start
Se asigna el password del administrador (root) de MySQL
/usr/local/mysql/bin/mysqladmin -u root password "clave"
Una vez se ha terminado con MySQL, se compila PHP como módulo de Apache.
cd /usr/local/php
./configure --with-mysql=/usr/local/mysql \
--with-apache=/usr/local/apache \
--enable-track-vars
make
74
make install
#cp php3.ini-dist /usr/local/lib/php3.ini
Se compila Apache
cd /usr/local/apache
./configure --prefix=/usr/local/apache \
--activate-module=src/modules/php3/libphp3.a
# si hemos compilado PHP4 utilizaremos
#--activate-module=src/modules/php4/libphp4.a
# quitar los comentarios para habilitar el módulo de proxy
#--activate-module=src/modules/proxy/libproxy.a
make
make install
Para definir las extensiones de los scripts PHP, hay que añadir las siguientes líneas en el
fichero de configuración de apache (httpd.conf):
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3 .php
AddType application/x-httpd-php3 .phtml
Ahora ya sólo queda arrancar el servidor, pero primero hay que copiar el script de arranque
en /etc/rc.d/init.d
cp /usr/local/apache/bin/apachecte /etc/rc.d/init.d/apache
/etc/rc.d/init.d/apache start
Para comprobar la instalación se crea un fichero llamado test.php3 con la siguiente línea:
75
<?php phpinfo() ?>
Se coloca en el directorio de documentos de Apache y se llama desde el navegador. Si no se
ha cometido algún error saldrá una página con todas las variables de PHP.
5.1.1 Instalación y Configuración del Servicio de Correo Electrónico
La puesta en marcha del servicio de correo electrónico está dividida en 2 módulos, estos
son instalación y configuración del MTA e instalación y configuración del MUA.
Instalación del MTA Sendmail
Sendmail es uno de los agente de transporte de correo que viene predeterminado en Red
Hat Linux 7.1 y para su instalación es necesario seleccionarlo cuando se instala el sistema
operativo.
Para comprobar que éste servicio se encuentra instalado se debe ejecutar la siguiente
instrucción en la consola del sistema operativo
[root@petmud /root]# rpm -q sendmail
Lo cual nos muestra la versión de Sendmail que se encuentra instalada. En nuestro caso
sendmail-8.11.2-14
Configuración del MTA Sendmail
Como ya es conocido, los archivos de configuración de sendmail son muy complejos y
difíciles de configurar. El secreto para utilizar sendmail con éxito es empezar a partir de
uno de los archivos de configuración enlatados m4 que vienen en la distribución y
76
adaptarlos para las necesidades requeridas. Los archivos correspondientes al MTA se
distribuyen por un buen número de carpetas, las cuales son:
• /etc/mail/
• /usr/bin/
• /usr/lib/
• /usr/sbin/
• /usr/share/man/
• y otros directorios
Esta distribución de los archivos de sendmail se debe a la configuración que se realiza
durante el proceso de instalación del sistema operativo la cual viene por defecto. Para
controlar la distribución de los archivos se debe realizar una instalación con archivos
ejecutables precompilados.
Para la configuración de sendmail hay una archivo .mc de macros m4. Este se tiene que
convertir en un archivo .cf. Los cambios realizados al archivo sendmail.mc fueron los
siguientes:
ALIAS_FILE : Si no se desea que el procesamiento de alias se efectúe en la estación de
trabajo, sino que se prefiere que se haga en le concentrador, hay que añadir la línea:
undefine(`ALIAS_FILE')dnl
Esta variable define la dirección del archivo que procesara los alias del servidor, para ello
se agrego la línea
define(`ALIAS_FILE', `/etc/aliases')dnl
Esta elección dependerá de si los usuarios de la estación de trabajo tienen todos acceso
como root. Si se implementa el procesamiento de alias éste estará probablemente limitado a
77
encaminar el correo root hacia algún lugar más adecuado, en el caso del Portal PETMUD
al propio correo del root.
ACCESS_DB : Esta variable suministra el nivel de control sobre qué mensajes se
aceptaran, bien sea para su envío o bien para su intermediación.
FEATURE(`access_db')dnl
OPTIONS_DAEMON : En ésta variable se definen los valores correspondientes al
demonio del agente de transporte de correo.
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
• Port= smtp : smtp13 es el protocolo que hoy día transporta casi todo el email del
mundo. Para una comunicación de MTA con MTA, todo lo que se necesita es el
protocolo de transferencia de correo sencillo o SMTP.
• Addr=127.0.0.1 : Dirección IP de la máquina en la cual ésta corriendo el demonio del
MTA o agente de transporte de correo.
• Name=MTA = Nombre del demonio. Mail Transfer Agent
VIRTUSERTABLE : Esta variable indica en donde se ubicara la tabla de usuarios virtual
para sendmail.
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl
13 Simple Mail Protocol, Protocolo de transferencia de correo sencillo
78
Al ejecutar el archivo, éste creará una tabla de usuarios virtuales en la dirección que se ha
especificado e indica a sendmail que hacer con el correo para esos dominios extras.
Contiene dos clases de líneas:
• Para usuarios individuales
• Para host completos
Una línea para usuarios individuales tendría un aspecto como el siguente:
[email protected] usuario – local
Esto le dice a sendmail que el correo para [email protected] debe ser enviado a usuario
local.
MAILERTABLE : Al ejecutar el archivo, éste creara el archivo mailertable en la dirección
que se ha especificado en dicha variable.
FEATURE(`mailertable',`hash -o /etc/mail/mailertable')dnl
RELAY_BASED_ON_MX : Esta línea se necesita para determinar que se esta manejando
más dominios que el dominio primario.
dnl FEATURE(`relay_based_on_MX')dnl
Como se muestra en la línea anterior en el caso del Portal PETMUD no es necesario
habilitar esta variable.
Éstas son las variables más importantes que fueron configuradas para el perfecto
funcionamiento del agente de transporte de correo seleccionado.
79
5.1.2 Instalación y configuración del MUA OpenWebMail
Para poder instalar y configurar openwebmail en Linux Red Hat 7.1 y utilizando a sendmail
como agente de transporte de correo, es necesario instalar algunos otros paquetes
necesarios para el funcionamiento de éste. Éstos paquetes son: CGI.pm, MIMEBase64, y
libnet
Para instalar CGI.pm se copia el archivo de instalación a la carpeta /tmp y se ejecuta en la
consola de comandos:
# cd /tmp
# tar zxvf CGI.pm2.74.tar.gz
# cd CGI.pm2.74
# perl Makefile.PL
# make
# make install
Para instalar MIMEBase64 se copia el archivo de instalación a la carpeta /tmp y se ejecuta
en la consola de comandos:
# cd /tmp
# tar zxvf MIMEBase642.12.tar.gz
# cd MIMEBase642.12
# perl Makefile.PL
# make
# make install
Para instalar libnet se copia el archivo de instalación a la carpeta /tmp y se ejecuta en la
consola de comandos:
# cd /tmp
80
# tar zxvf libnet1.0901.tar.gz
# cd libnet1.0901
# perl Makefile.PL
# make
# make install
El proceso para la instalación de openwebmail es el siguiente:
# cp openwebmail1.70.tgz /var/www
# cd /var/www
# tar zxvBpf openwebmail1.70.tgz
# cd –
# patch /var/www/cgibin/openwebmail/auth_unix.pl < auth_unix.pl.diff
# patch /var/www/cgibin/openwebmail/etc/openwebmail.conf <
openwebmail.conf.diff
# ln sf /var/www /usr/local/www
# ln sf /var/www/data/openwebmail /var/www/html/openwebmail
# mkdir p /var/www/html/openwebmail/download/{icons,screenshots}
# ln sf /var/www/data/openwebmail/doc /var/www/html/openwebmail/download/
doc
# cd /etc/smrsh
# ln sf /var/www/cgibin/openwebmail/vacation.pl vacation.pl
Las nuevas versiones de Openwebmail facilitan el proceso de instalación de Openwebmail
y de los archivos necesarios para su funcionamiento, ya que trae consigo todos los paquetes
necesarios y un script de instalación llamado “install.sh”. De esta manera el proceso de
instalación se reduce a los siguientes pasos:
81
1. Se baja el paquete OpenWebMail1.70 del sitio
2. Se copia en la carpeta /tmp
3. Se abre la consola de comandos y se ejecuta:
# cd /tmp
# ./install.sh
5.1.3 Instalación y configuración del Servidor de Listas de Correo Majordomo.
1. Crear en el sistema operativo un grupo y usuario Majordom, bajo los cuales funcionarán
el servidor de listas de correo.
2. Se crea un directorio para la instalación de Majordomo.
/var/local/majordomo/
3. Se entra con el usuario majordom en el sistema y se desempaqueta la distribución de
Majordomo
4. Se edita el archivo Makefile, específicamente las siguientes variables.
• Directotio de Perl: PERL = /usr/bin/perl
• Compilador de C: CC=gcc
• Directorio de instalación: W_HOME = /usr/local/majordomo
• Número del usuario Majordomo: W_USER = 1004
• Número de grupo (Daemon): W_GROUP = 2
5. Guardar el simple.cf como Majordomo.cf y editar las siguientes variables.
• Nombre de la máquina:
82
#whereami = "petmud.com";
• Email de Majordomo:
$whoami = "Majordomo\@$whereami";
• Email administrador de las listas:
$whoami_owner = "webmaster\@$whereami";
• Directorio de instalación: $homedir = "/usr/local/majordomo";
6. Se abre la consola de comandos de linux y se ejecuta:
# make wrapper
7. Cambiarse a la cuenta root y ejecutar en la línea de comandos:
# make installwrapper
8. Se crea un enlace simbólico al wrapper de Majordomo:
# cd /etc/smrsh
# ln s /usr/local/majordomo/wrapper wrapper
9. Se cambia a una cuenta de usuario normal y se ejecuta en línea de comandos:
# cd ..
# cd ..
# cd usr/local/majordomo
# ./wrapper configtest
83
Éste script comprueba si la configuración de Majordomo es correcta e informa de posibles
problemas. Se debe revisar la configuración y volver a ejecutar el comando hasta que no
genere ningún error. Normalmente no se presenta ningún problema.
10. Se añade las entradas necesarias al fichero alias de sendmail en /etc/aliases.
# Alias para Majordomo
Majordomo: "|/usr/local/majordomo/wrapper majordomo"
# Alias para la persona que administra la instalación
webmaster: [email protected]
Con los anteriores pasos se ha instalado y configurado el Servidor de Listas de Correo
Majordomo, y se encuentra listo para la creación de listas, y para la distribución de los
correos electrónicos de las personas inscritas en las mismas.
5.1.4 Instalación y Configuración del servicio de Chat
1. Descomprimir el archivo phpMyChat0.14.5.tar.gz bajado de la página de Internet http://
www.phpmychat.com
Éste archivo se puede descomprimir utilizando alguna herramienta para descomprimir
archivos .tar.gz, en Linux Red Hat 7.1 el programa Archivador.
Éste archivo debe descomprimirse en una carpeta localizado en el servidor Web.
Posteriormente se debe cargar la página setup.php3 utilizando algún visualizador como por
ejemplo Netscape o Konqueror entre otros.
84
Los pasos son los siguientes:
1. Seleccionar el idioma para el proceso de configuración.
2. Determinar todos los paramentos de la Base de Datos, éstos son:
• Seleccionar el tipo de servidor.
• Nombre del Host del servidor SQL
localhost
• Nombre de la base de datos del server. Ésta Base de datos debe ser creada
antes de realizar el proceso de instalación del chat.
chat
• Login de la base de datos.
root
• Creación de las tablas del chat. (Estas tablas se han creado con anterioridad)
• Nombres de las tablas de la base de datos.
3. Opciones del Chat
• Opciones de tiempo.
Número de horas hasta que los mensajes son borrados. Este valor se utiliza
para determinar el número de horas que pasaran antes de borrar los mensajes
de la base de datos.
Número de minutos hasta que los usuarios inactivos son borrados. Este
valor de utiliza para evitar que el chat se congestione de usuarios que no están
participando de las charlas.
85
• Salas de charla que se crearán.
Públicas. Esta variable se utiliza para determinar que salas públicas harán
parte del chat, para todos los usuarios. En el chat del Portal PETMUD se
crearan las salas públicas:
General, Cardiología, Neurología, Odontología y Pediatría.
• Idioma por defecto
El idioma por defecto es ingles, y para agregar más idiomas es necesario
bajarlos de la página http://www.phphmychat.com y ubicarlos en el
directorio /chat/localización.
• Seguridad y restricciones.
Mostrar los link para administración de recursos en la página inicial?
Mostrar los link que permiten a los usuarios borrar sus datos?
Usuarios pueden acceder… En el chat del Portal PETMUD los usuarios sólo
pueden acceder a las salas que se han creado.
Verificar malas palabras. Estas palabras se configuraran en el archivo
/chat//lib/swearing.lib.php3
• Acumulación de Mensajes.
Para los mensajes se pueden seleccionar las siguientes propiedades:
Utilizar gráficos sonrisas, (Configurados en el archivo
chat/lib/smilies.lib.php3)
Guardar efecto de negrita, itálica y subrayado en mensajes.
Mostrar HTML tags descartados.
• Características de los salones de charlas
Forma en que aparecerán los mensajes. En el Portal PETMUD los mensajes
se mostraran del último hacia arriba.
86
Número de mensajes por efecto a mostrar. En el Portal PETMUD el número
de mensajes que se mostrara será de 20.
Mostrar mensaje de bienvenida. Este archivo es configurado en
chat/lib/welcome.lib.php3.
4. Registro del Administrador (Sólo son requerido los 2 primeros datos)
• login o nick
• Clave
• Nombre
• Apellido
• Sexo
• Idiomas
• Sitio Web
• Email
5. Creación del Archivo config.lib.php3.
Este archivo contiene todos los valores que contienen la configuración del chat, este
y otros archivos deben ser configurados para el funcionamiento del chat en el Portal
PETMUD.
6. El último paso busca darle seguridad al servicio de chat del Portal.
• Eliminar el archivo setup.php3
• Eliminar el directorio chat/install
5.1.5 Instalación y Configuración del servicio de Foros Virtuales
87
1. Descomprimir el archivo forum_2_4.tar.gz bajado de la página de Internet
http://www.zorum.com/
Éste archivo se puede descomprimir utilizando alguna herramienta para descomprimir
archivos .tar.gz como Archivador.
Éste archivo debe descomprimirse en una carpeta localizado en el servidor Web.
2. Posteriormente se debe cargar la página foruminstall.php utilizando algún visualizador
como por ejemplo Netscape o Konqueror entre otros.
http://petmud/Foros/foruminstall.php
Al cargar la página de instalación de zorum esta nos presenta 3 posibilidades, las cuales
son:
• Edit Parameters
• Install portal (and Forum!)
• Install Forum
3. Editar los parámetros de la base de datos de los foros. Dichos parámetros son:
• MySql user name
• Pasword
• Database name
• Hostmane
• Port
• Socket
88
4. Instalar foros. Este paso verifica el buen funcionamiento de algunos elementos que
deben estar instalados en el sistema como php y mysql. Si alguno de estos módulos no
funciona correctamente la instalación de los foros se cancelara automáticamente.
5. Eliminar la página foruminstall.php del directorio http://petmud/foros.
10.2.5.1 Configuración del servicio de Foros Virtuales
1. Cambio de Contraseña para el administrador
• Ingresar a los foros PETMUD.
• Registrarse como Administrador.
• Ingresar a Funciones de Usuario.
• Clic en el link Cambiar Contraseña
2. Configuración General de los Foros Virtuales.
• Ingresar a los foros PETMUD.
• Registrarse como Administrador
• Ingresar a Funciones del Administrador.
• Clic en el link Configuración general.
5 . 2 D E S A R R O L L O D E L A B A S E D E D A T O S
89
La base de datos del portal se creo utilizando el servidor de bases de datos MySQL sin
utilizar ninguna herramienta adicional, es decir, que las instrucciones SQL necesarias para
la creación de tablas se introdujeron directamente desde una consola o terminal de las
muchas que provee Mandrake Linux 8.1.
El proceso inicial fue la creación de la base de datos mediante la instrucción SQL
requerida, con lo que el motor de base de datos crea una carpeta con el nombre de la base
de datos elegido, en este caso “petmud”. Esto en la carpeta “/var/lib/mysql/”. Una vez
creada la base de datos se debe seleccionar esta para poder crear las tablas correspondientes
con los campos descritos en el diseño de la base de datos.
Con la instrucción SQL de creación de cada tabla MySQL crea tres archivos para cada
tabla, por ejemplo cuando se crea la tabla diccionario MySQL crea los archivos
“diccionario.frm”, “diccionario.MYI” y “diccionario.MYD”.
Una vez creadas las tablas del diccionario, tblarticulos, tblconsultas, tbldirectorio,
tblmedicos, tblusuarios y tbladmon; se cargaron unos datos iniciales en la tabla del
diccionario y en la tabla tbldirectorio desde archivos de texto plano que contenían
información referente para poder proceder con el enlace y pruebas con la interfaz web.
5 . 3 D E S A R R O L L O D E L A I N T E R F A Z W E B
90
Para el desarrollo de la interfaz web se utilizó una herramienta para la edición de páginas
web que esta incluida en la distribución de Mandrake Linux 8.1 llamada Quanta Plus, la
cual está diseñada para editar HTML pero que se adapta bien a la inclusión de códigos de
PHP.
El desarrollo se realizó respetando el bosquejo inicialmente planteado en la etapa de diseño
del portal. Para evitar que el hecho de la inclusión del menú de navegación, el encabezado
con la opción de búsqueda total y el pie de página común en cada una de las diferentes
páginas del sitio se convirtiera en el proceso tedioso rutinario y desgastador de escribir una
y otra vez el código necesario en cada página, se creo una librería en PHP que manejaba las
funciones que se encargarían de hacer esto. El llamado de estas funciones se hizo en cada
página y se agilizó de esta manera el desarrollo y futuros cambios en la estructura gráfica
del portal, para que esto fuese posible todos los archivos que componen el sitio han sido
grabados con extensión “.php” para que el servidor web sea capaz de interpretar el código
incluído en cada uno de ellos.
91
6 I N T E R F A Z A L A B A S E D E D A T O S P A R A L O S S E R V I C I O S
D E D I C C I O N A R I O , D I R E C T O R I O Y C O N S U L T A
6.1.1 Módulo de inicio
En el módulo de inicio del portal se incluyó una breve explicación de las secciones que
maneja PETMUD y un listado de los últimos artículos incluidos en la base de datos. Las
funciones que maneja este módulo son: búsqueda total en el sitio y enlace a las demás
secciones.
92
Figura 15 Página de inicio
La función de búsqueda total está escrita en el archivo búsqueda_total.php y hace uso de las
funciones buscar_palabra y buscar_articulo incluídas en la librería que es común a todas las
páginas del sitio y su tarea es realizar un select en las tablas del diccionario y de artículos
de acuerdo a la palabra introducida por el usuario. En la siguiente figura se ve el código del
archivo busqueda_total.
<?php
include("libreria.php");
hacer_encabezado('petmud inicio');
?>
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%">
<?php buscar_palabra($palabra)?>
<tr><td width="100%"> </td></tr>
<?php buscar_articulo($palabra)?>
</table>
<!--fin del cuerpo del documento-->
<?php
hacer_pie();
?>
y el código de las funciones llamadas por éste es el siguiente:
93
Function buscar_palabra($palabra){
$basedatos = "petmud";
//conexión con el servidor
$link = @mysql_connect("localhost","root","");
//comprobación de la conexion con el servidor
if(!$link){
echo "<h2 align='center'>ERROR: Imposible establecer conexión con el
servidor</h2>";
exit;
}
mysql_select_db($basedatos, $link);
$result = mysql_query("select * from diccionario where palabra like '%
$palabra%' order by palabra",$link);
$filas = mysql_affected_rows($link);
if($row = mysql_fetch_array($result)){
if ($filas > 1){
echo "<tr><td width='100%' bgcolor='bfdfff'><b><font
color='000066'>Busqueda en el diccionario ($filas coincidencias)</font></
b></td></tr>";
}else{
echo "<tr><td width='100%' bgcolor='bfdfff'><b><font
color='000066'>Busqueda en el diccionario ($filas
coincidencia)</font></b></td></tr>";
}
do{
echo "<tr>";
94
echo "<td width='100%' bgcolor='#12B9E3'><b>".
$row["palabra"]."</b></td>";
echo "</tr>";
echo "<tr>";
echo "<td width='100%' bgcolor='#dfdfff'>".
$row["significado"]."</td>";
echo "</tr>";
echo "<tr><td width='100%'> </td></tr>";
}while($row = mysql_fetch_array($result));
}else{
echo "<tr><td width='100%' bgcolor='bfdfff'><b><font
color='000066'>Búsqueda en el diccionario ($filas coincidencias)</font></
b></td></tr>";
}
}
Ambas funciones hacen un select de la base de datos según la palabra que el usuario
introduce y generan un reporte en formato HTML para presentarle la respuesta al usuario
de su solicitud.
La función de enlace a cada una de las demás secciones del portal la realiza mediante el
menú de navegación que es común a todas las páginas del sitio y que esta escrito en la
librería en la función hacer_encabezado(). Esta función genera el menú de navegación y el
encabezado de cada página que visualiza el usuario, para lo cual recibe el título de la
página.
95
Function hacer_encabezado($titulo){
echo "<html>\n";
echo "<head><title>$titulo</title></head>\n";
echo "<body bgcolor='#4790BE' link='#000066' vlink='#6666ff'
alink='#000066'>\n";
echo "<table border='0' cellpadding='0' cellspacing='0' width='700'
background='imagenes/baner.gif'>\n";
echo "<tr>\n";
echo "<td width='100%'>\n";
echo "<img border='0' src='imagenes/logo.gif' width='243' height='90'
align='left'></td>\n";
echo "</tr>\n";
echo "</table><br>\n";
echo "<table border='0' cellpadding='0' cellspacing='0' width='700'>\n";
echo "<tr>\n";
//celda que contiene los links a las diferentes secciones
echo "<td width='23%' align='left' valign='top'>\n";
//tabla que contiene los links a servicios
echo "<table border='1' cellpadding='0' cellspacing='0'
bordercolor='#000066' width='90%' bgcolor='#BFDFFF'>\n";
echo "<tr>\n";
echo "<td width='100%' bgcolor='#000066'><b>\n";
echo "<font size='2' color='#FFFFFF'>SERVICIOS</font></b></td>\n";
echo "</tr>\n";
echo "<tr>\n";
96
echo "<td width='100%'><font size='2' color='#000066'><a
href='inicio.php'>Página de inicio</a></font></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td width='100%'><font size='2' color='#000066'><a
href='frm_registro.php'>Registro</a></font></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td width='100%'><font color='#000066' size='2'>Foros
Virtuales</font></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td width='100%'><font size='2'
color='#000066'>Correo</font></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td width='100%'><font size='2' color='#000066'><a
href='chat/index.html' target='self'>Chat</a></font></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td width='100%'><font size='2'><font color='#000066'>Listas de
Correo</font></span></td>\n";
echo "</tr>\n";
echo "</table><br>\n";
//tabla que contiene los links a sección medica
echo "<table border='1' cellpadding='0' cellspacing='0'
bordercolor='#000066' width='90%' bgcolor='#BFDFFF'>\n";
echo "<tr>\n";
97
echo "<td width='100%' bgcolor='#000066'><b>\n";
echo "<font size='2' color='#FFFFFF'>SECCIÓN
MÉDICA</font></b></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td width='100%'><font size='2' color='#000066'><a
href='frm_consulta.php'>Consulta Médica</a></font></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td width='100%'><font color='#000066' size='2'><a
href='frm_diccionario.php'>Diccionario</a></font></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td width='100%'><font size='2' color='#000066'><a
href='frm_articulos.php'>Artículos<a></font></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td width='100%'><font size='2' color='#000066'><a
href='frm_directorio.php'>Directorio</a></font></td>\n";
echo "</tr>\n";
echo "</table><br>\n";
//tabla que contiene los links a información del grupo
echo "<table border='1' cellpadding='0' cellspacing='0'
bordercolor='#000066' width='90%' bgcolor='#BFDFFF'>\n";
echo "<tr>\n";
echo "<td width='100%' bgcolor='#000066'><b>\n";
echo "<font size='2' color='#FFFFFF'>ACERCA DE
PETMUD</font></b></td>\n";
98
echo "</tr>\n";
echo "<tr>\n";
echo "<td width='100%'><font size='2' color='#000066'><a
href='quienes.php'>¿Quiénes somos?</a></font></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td width='100%'><font color='#000066' size='2'><a
href='http://www.udistrital.edu.co'>Universidad
Distrital</a></font></td>\n";
echo "</tr>\n";
echo "</table><br>\n";
echo "<table border='0' cellpadding='0' cellspacing='0' width='90%'>\n";
echo "<tr><td align='center'>\n";
echo "<img src='imagenes/escudo.gif' width='57' height='76'
align='middle' border='0'>\n";
echo "</td></tr></table>\n";
echo "</td>\n";
//celda que contiene el cuerpo de la sección
echo "<td width='77%' valign='top' align='center'
background='imagenes/globo.gif' bgcolor='#ffffff'>\n";
echo "<table border='0' cellpadding='0' cellspacing='0'
width='100%'>\n";
echo "<tr>\n";
echo "<td width='100%' align='right' bgcolor='#000066'>\n";
echo "<form method='POST' action='busqueda_total.php'>\n";
echo "<input type='text' name='palabra' size='20'>\n";
99
echo "<input type='submit' name='buscar' value='buscar'
size='20'> \n";
echo "</form>\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "<p style='margin-top: 0; margin-bottom: 0'> </p>\n";
}
Otra función que es llamada por esta página de inicio del portal así como el resto de ellas es
la función hacer_pie(), la que está incluída en la librería.
Function hacer_pie(){
echo "</td></tr></table>\n";
//tabla con el pie de página
echo "<br>\n";
echo "<table border='0' cellspacing='0' cellpadding='0' width='700'>\n";
echo "<tr><td align='center'>\n";
echo "<hr>\n";
echo "<b><i><font color='#ffffff' size='4'>"Somos la tecnología
informática al servicio de la salud"</font></i></b>\n";
echo "</td></tr>\n";
echo "</table>\n";
echo "</body>\n";
echo "</html>\n";
}
100
6.1.2 Módulo de registro de usuarios
En el módulo de registro el usuario se encuentra con un formulario para el ingreso de los
datos. Una vez el usuario ha introducido la información correspondiente en el formulario y
pulsado el botón de aceptar, mediante código PHP se realiza el registro en la base de datos.
Esta sección del sitio también incluye las funciones que se explicaron anteriormente. La
anterior figura ilustra la página web que observa el usuario.
101
Figura 16 Sección de registro de usuarios
Dado que la explicación de las funciones comunes a las diferentes secciones del sitio se
explicaron en el modulo de inicio, en adelante se explicarán sólo los códigos
correspondientes al cuerpo de cada sección.
El módulo de registro de usuarios se desarrollo en dos archivos, el inicial que presenta el
formulario “frm_registro.php” y el que realiza la inserción del registro en la base de datos
“registro.php”. El cuadro siguiente presenta el código escrito para el desarrollo del
formulario.
<?php
include("libreria.php");
hacer_encabezado('petmud registro');
?>
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%">
<tr>
<td width="80%" valign="bottom"><b><font
color="000066">Registrese como usuario de PETMUD </font></b>
y reciba notificaciones via mail de nuestras novedades, eventos
relacionados, etc.</td>
<td width="20%"><img border="0" src="imagenes/registro.gif"
width="40" height="50" align="right"></td>
</tr>
</table><br>
<table border="0" cellpadding="0" cellspacing="0" width="95%">
<tr><td><center>
<form action="registro.php" method="POST">
102
<table border="0" CELLSPACING=0 CELLPADDING=0>
<tr><td align="right">NOMBRE : </td>
<td><input type="text" name="nombre" size=50
maxlength=50><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">APELLIDO : </td>
<td><input type="text" name="apellido" size=50
maxlength=50><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">SEXO : </td>
<td><select name="sexo">
<option value="m">Masculino</option>
<option value="f">Femenino</option>
</select><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">EDAD : </td>
<td><select name="edad">
<option value="menos de 15">Menos de 15</option>
<option value="16 - 20">16 - 20</option>
<option value="21 - 25">21 - 25</option>
<option value="26 - 30">26 - 30</option>
<option value="31 - 40">31 - 40</option>
<option value="mas de 40">Mas de 40</option>
</select><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">PROFESION : </td>
<td><select name="profesion">
<option value="estudiante">Estudiante</option>
<option value="profesional">Profesional</option>
<option value="docente">Docente</option>
103
<option value="tecnologo">Tecnólogo</option>
<option value="otros">Otros ...</option>
</select><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">CIUDAD : </td>
<td><select name="ciudad">
<option value="Bogotá">Bogotá</option>
<option value="Cali">Cali</option>
<option value="Medellin">Medellín</option>
<option value="Barranquilla">Barranquilla</option>
<option value="Manizales">Manizales</option>
<option value="Otra">Otra ...</option>
</select><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">EMAIL : </td>
<td><input type="text" name="email" size=50
maxlength=100><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right"></td>
<td align="right"><input type="submit" name="enviar"
value="Aceptar">
<input type="reset" name="Borrar" value="Borrar"></td></tr>
</table>
</form></center></td></tr>
</table><br>
<!--fin del cuerpo del documento-->
<?php
hacer_pie();
104
?>
Para realizar el registro en la base de datos se desarrolló el siguiente código:
<?php
include("libreria.php");
hacer_encabezado('petmud registro');
?>
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%">
<tr><td><center>
<?php
$basedatos = "petmud";
//conexión con el servidor
$link = @mysql_connect("localhost","root","");
//comprobación de la conexion con el servidor
if(!$link){
echo "<h2 align='center'>ERROR: Imposible establecer conexión
con el servidor</h2>";
exit;
}
if($enviar){
if($nickname != '' and $clave != '' and $nombre != '' and
$apellido != '' and $email != ''){
mysql_select_db($basedatos, $link);
105
mysql_query("select nickname from tblusuarios where
nickname = '$nickname'");
if(mysql_affected_rows($link)==0){
$sql = "insert into tblusuarios(fecha, nombre, apellido,
sexo, edad, profesion, ciudad, email)";
$sql .= "values(current_date, '$nombre', '$apellido',
'$sexo', '$edad', '$profesion', '$ciudad', '$email')";
$result = mysql_query($sql);
echo "<img border='0' src='imagenes/registro.gif'
width='40' height='50' align='center'>";
echo "¡OK! Ha sido agregado con éxito";
}else{
echo "<img border='0' src='imagenes/registro.gif'
width='40' height='50' align='center'>";
echo "¡Nickname existente! Cámbielo por favor";
}
}else{
echo "<img border='0' src='imagenes/registro.gif'
width='40' height='50' align='center'>";
echo "Datos incompletos";
}
}//end if
?></center></td></tr>
</table>
<!--fin del cuerpo del documento-->
<?php
hacer_pie();
?>
106
El código anterior realiza las siguientes tareas: primero verifica que los datos necesarios par
el registro en la base de datos no se encuentren vacíos, luego verifica que el nickname no se
repita entre los registros anteriores, una vez que ha pasado las dos pruebas anteriores agrega
a la base de datos el registro.
6.1.3 Módulo de consulta médica
Esta sección del portal se implementó al igual que la anterior en dos archivos, el archivo
“frm_consulta.php” que muestra al usuario el formulario de entrada de los datos y el
archivo “consulta.php” que se encarga de hacer el registro en la base de datos. Las
funciones específicas de registro en la base de datos de la consulta del usuario
implementadas en “consulta.php” validan primero que los datos esenciales no se encuentren
vacíos, de ser así envía un mensaje de error al usuario y pide que se ingresen nuevamente,
si pasa esta prueba entonces procede a anexar un registro en la tabla “tblconsultas” de la
base de datos con la información correspondiente.
107
108
En la siguiente figura se puede observar la composición del formulario para consultas, en el
cual el usuario ingresará sus datos personales y relevantes para que los médicos afiliados
puedan emitir un juicio al respecto.
Para la implementación de dicha interfaz se generó el siguiente código:
<?php
include("libreria.php");
hacer_encabezado('petmud consulta');
?>
109
Figura 17 Sección de consulta médica
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr>
<td width="80%" valign="top" align="left"><font
color="000066"><b>Consulta Médica:</b></font></td>
<td width="20%" valign="bottom" align="left">
<img border="0" src="imagenes/medicina.gif" width="40" height="50"
align="right"></td></tr></table>
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr><td
width="100%" valign="top" align="left">
<!--******************************************************************-->
<form action="consulta.php" method="POST">
<table border="0" CELLSPACING=0 CELLPADDING=0>
<tr><td align="right">NOMBRE : </td><td><input type="text" name="nombre"
size=50 maxlength=50><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">APELLIDO : </td><td><input type="text"
name="apellido" size=50 maxlength=50><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">SEXO : </td><td><select name="sexo">
<option value="m">Masculino</option>
<option value="f">Femenino</option>
</select><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">EDAD : </td><td><select name="edad">
<option value="menos de 15">Menos de 15</option>
<option value="16 - 20">16 - 20</option>
<option value="21 - 25">21 - 25</option>
110
<option value="26 - 30">26 - 30</option>
<option value="31 - 40">31 - 40</option>
<option value="mas de 40">Mas de 40</option>
</select><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">ESPECIALIDAD : </td><td><select
name="especialidad">
<option value="general">Medicina General</option>
<option value="anestesiología">Anestesiología</option>
<option value="cardiología">Cardiología</option>
<option value="cirugía">Cirugía</option>
<option value="dermatología">Dermatología</option>
<option value="gastroenterología">Gastroenterología</option>
<option value="ginecología">Ginecología</option>
<option value="hematología">Hematología</option>
<option value="neurología">Neurología</option>
<option value="nutrición">Nutrición</option>
<option value="odontología">Odontología</option>
<option value="oftalmología">Oftalmología</option>
<option value="oncología">Oncología</option>
<option
value="otorrinolaringología">Otorrinolaringología</option>
<option value="patología">Patología</option>
<option value="pediatría">Pediatría</option>
<option value="psiquiatría">Psiquiatría</option>
<option value="traumatología">Traumatología</option>
<option value="urología">Urología</option>
<option value="otros">Otros ...</option>
</select><td></tr>
<tr><td> </td><td> <td></tr>
111
<tr><td align="right">EMAIL : </td><td><input type="text" name="email"
size=50 maxlength=100><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right" valign="top">CONSULTA : </td><td><textarea
name="consulta" cols="50" rows="4"></textarea><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right"></td><td align="right">
<input type="submit" name="enviar" value="Aceptar">
<input type="reset" name="Borrar" value="Borrar"></td></tr>
</table>
</form>
<!--******************************************************************-->
</td></tr></table><br>
<!--fin del cuerpo del documento-->
<?php
hacer_pie();
?>
y para la implementación de la función de anexar el registro a la base de datos se generó el
siguiente código:
<?php
include("libreria.php");
hacer_encabezado('petmud consulta');
?>
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr>
112
<td width="80%" valign="top" align="left"><font
color="000066"><b>Consulta Médica:</b></font></td>
<td width="20%" valign="bottom" align="left">
<img border="0" src="imagenes/medicina.gif" width="40" height="50"
align="right"></td></tr></table>
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr><td
width="100%" valign="top" align="center">
<!--*****************************************************************-->
<?php
$basedatos = "petmud";
//conexión con el servidor
$link = @mysql_connect("localhost","root","");
//comprobación de la conexión con el servidor
if(!$link){
echo "<h2 align='center'>ERROR: Imposible estableser conexión con el
servidor</h2>";
exit;
}
if($enviar){
if($nombre != '' and $apellido != '' and $email != '' and $consulta !
= ''){
mysql_select_db($basedatos, $link);
$sql = "insert into tblconsultas(fecha, nombre, apellido, sexo,
edad, especialidad, email, consulta)";
$sql .= "values(current_date, '$nombre', '$apellido', '$sexo',
'$edad', '$especialidad', '$email', '$consulta')";
$result = mysql_query($sql);
113
echo "¡OK! Su consulta será atendida";
}else{
echo "Datos incompletos";
}
}//end if
?>
<!--*****************************************************************-->
</td></tr></table>
<!--fin del cuerpo del documento-->
<?php
hacer_pie();
?>
6.1.4 Módulo del diccionario médico
El módulo del diccionario se implemento en dos archivos “frm_diccionario.php” y
“diccionario.php”, el primero para mostrar la interfaz con el formulario de entrada de datos
para la búsqueda en el diccionario y el segundo para realizar el select en la base de datos y
mostrar los resultados al usuario.
114
El proceso implementado en el módulo de diccionario médico es el siguiente: el usuario
selecciona un hipervínculo referente a la letra que desea buscar en el diccionario, este
hipervínculo pasa al servidor web mediante php el parámetro de la letra que el usuario
desea y mediante php se hace una selección en la base de datos de la tabla “diccionario”
para presentar el resultado en el navegador. En la anterior figura se muestra el resultado de
una de las búsquedas realizadas.
115
Figura 18 Sección diccionario médico
Para implementar el formulario inicial que se le presenta al usuario se generó el siguiente
código:
<?php
include("libreria.php");
hacer_encabezado('petmud diccionario');
?>
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr>
<td width="100%" valign="top" align="center">
<img border="0" src="imagenes/libro.gif" width="40" height="50"
align="center"><br>
<font color="000066" size="+2"><b>Buscar por letra:</b></font><br>
<a href="diccionario.php?letra=a">A </a>
<a href="diccionario.php?letra=b">B </a>
<a href="diccionario.php?letra=c">C </a>
<a href="diccionario.php?letra=d">D </a>
<a href="diccionario.php?letra=e">E </a>
<a href="diccionario.php?letra=f">F </a>
<a href="diccionario.php?letra=g">G </a>
<a href="diccionario.php?letra=h">H </a>
<a href="diccionario.php?letra=i">I </a>
<a href="diccionario.php?letra=j">J </a>
<a href="diccionario.php?letra=k">K </a>
<a href="diccionario.php?letra=l">L </a>
<a href="diccionario.php?letra=m">M </a>
<a href="diccionario.php?letra=n">N </a>
116
<a href="diccionario.php?letra=o">O </a>
<a href="diccionario.php?letra=p">P </a>
<a href="diccionario.php?letra=q">Q </a>
<a href="diccionario.php?letra=r">R </a>
<a href="diccionario.php?letra=s">S </a>
<a href="diccionario.php?letra=t">T </a>
<a href="diccionario.php?letra=u">U </a>
<a href="diccionario.php?letra=v">V </a>
<a href="diccionario.php?letra=w">W </a>
<a href="diccionario.php?letra=x">X </a>
<a href="diccionario.php?letra=y">Y </a>
<a href="diccionario.php?letra=z">Z </a>
</td></tr></table><br>
<h3>Busca en nuestro diccionario los términos de tu interés y
resuelve tus inquietudes</h3>
<!--fin del cuerpo del documento-->
<?php
hacer_pie();
?>
y para generar la búsqueda en la base de datos y presentación del resultado al usuario se
desarrollo el siguiente código:
<?php
include("libreria.php");
hacer_encabezado('petmud diccionario');
117
?>
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr>
<td width="100%" valign="top" align="center">
<img border="0" src="imagenes/libro.gif" width="40" height="50"
align="center"><br>
<font color="000066" size="+2"><b>Buscar por letra:</b></font><br>
<a href="diccionario.php?letra=a">A </a>
<a href="diccionario.php?letra=b">B </a>
<a href="diccionario.php?letra=c">C </a>
<a href="diccionario.php?letra=d">D </a>
<a href="diccionario.php?letra=e">E </a>
<a href="diccionario.php?letra=f">F </a>
<a href="diccionario.php?letra=g">G </a>
<a href="diccionario.php?letra=h">H </a>
<a href="diccionario.php?letra=i">I </a>
<a href="diccionario.php?letra=j">J </a>
<a href="diccionario.php?letra=k">K </a>
<a href="diccionario.php?letra=l">L </a>
<a href="diccionario.php?letra=m">M </a>
<a href="diccionario.php?letra=n">N </a>
<a href="diccionario.php?letra=o">O </a>
<a href="diccionario.php?letra=p">P </a>
<a href="diccionario.php?letra=q">Q </a>
<a href="diccionario.php?letra=r">R </a>
<a href="diccionario.php?letra=s">S </a>
<a href="diccionario.php?letra=t">T </a>
<a href="diccionario.php?letra=u">U </a>
118
<a href="diccionario.php?letra=v">V </a>
<a href="diccionario.php?letra=w">W </a>
<a href="diccionario.php?letra=x">X </a>
<a href="diccionario.php?letra=y">Y </a>
<a href="diccionario.php?letra=z">Z </a>
<?php
$basedatos = "petmud";
//conexión con el servidor
$link = @mysql_connect("localhost","root","");
//comprobación de la conexión con el servidor
if(!$link){
echo "<h2 align='center'>ERROR: Imposible establecer conexión con el
servidor</h2>";
exit;
}
mysql_select_db($basedatos, $link);
$result = mysql_query("select * from diccionario where palabra like
'$letra%' order by palabra",$link);
$filas = mysql_affected_rows($link);
echo "<h1>DICCIONARIO MEDICO ($letra)</h1>";
if($row = mysql_fetch_array($result)){
if ($filas > 1){
echo "existen $filas coincidencias";
}else{
echo "existe $filas coincidencia";
}
119
echo "<table border = '0'> \n";
do{
echo "<tr>\n";
echo "<td><b>".$row["palabra"]."</b></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td bgcolor='#dfdfff'>".$row["significado"]."</td>\n";
echo "</tr>\n";
}while($row = mysql_fetch_array($result));
echo "</table>\n";
}else{
echo "¡No existen coincidencias por $letra!";
}
?>
<!--*************************************-->
</td></tr></table><br>
<!--fin del cuerpo del documento-->
<?php
hacer_pie();
?>
En este ultimo se incluye nuevamente la generación del formulario junto con el resultado de
la búsqueda para que el usuario no tenga que regresar hasta el formulario inicial en caso de
querer realizar una nueva búsqueda.
120
121
6.1.5 Módulo de artículos médicos
El desarrollo del módulo de artículos médicos se realizó en dos archivos
“frm_artículos.php” y “articulos.php”, en el primero se implementó la interfaz del
formulario en el cual el usuario ingresa los criterios de búsqueda y en el segundo se
implementaron las funciones para seleccionar de la base de datos los artículos que
corresponden con los criterios suministrados por el usuario y su respectiva presentación en
formato web. La imagen muestra el resultado de una búsqueda realizada en la sección de
artículos.
122
Figura 19 Sección de artículos médicos
Para la implementación del formulario de captura de datos se generó el siguiente código:
<?php
include("libreria.php");
hacer_encabezado('petmud artículos');
?>
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr>
<td width="80%" valign="top" align="left"><font
color="000066"><b>Artículos:</b></font></td>
<td width="20%" valign="bottom" align="left">
<img border="0" src="imagenes/articulos.gif" width="40" height="50"
align="right"></td></tr></table>
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr><td
width="100%" valign="top" align="left">
<!--**********************************************-->
<form action="articulos.php" method="POST">
<table width="100%" cellspacing=0 border=0 cellpadding=0>
<tr><td align="right">Palabra clave : </td><td><input type="text"
name="palabra" size=25 maxlength=100></td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">Categoría : </td><td><select
name="categoria">
<option value="">Todas las categorias</option>
<option value="general">General</option>
<option value="niños">Niños</option>
<option value="adolescentes">Adolescentes</option>
<option value="adultos">Adultos</option>
123
<option value="hombres">Hombres</option>
<option value="mujeres">Mujeres</option>
<option value="sexualidad">Sexualidad</option>
<option value="odontología">Odontología</option>
</select></td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right"></td><td align="center">
<input type="submit" name="enviar" value="Aceptar">
<input type="reset" name="Borrar" value="Borrar"></td></tr>
</table>
</form>
<!--*******************************************-->
</td></tr></table><br>
<!--fin del cuerpo del documento-->
<?php
hacer_pie();
?>
Y para la implementación de las funciones de búsqueda de los artículos y la presentación
del resultado en formato web se desarrollo el siguiente código:
<?php
include("libreria.php");
hacer_encabezado('petmud artículos');
?>
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr>
124
<td width="80%" valign="top" align="left"><font
color="000066"><b>Artículos</b></font></td>
<td width="20%" valign="bottom" align="left">
<img border="0" src="imagenes/articulos.gif" width="40" height="50"
align="right"></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr><td
width="100%" valign="top" align="center">
<!--**********************************************-->
<form action="articulos.php" method="POST">
<table width="100%" cellspacing=0 border=0 cellpadding=0>
<tr><td align="right">Palabra clave : </td><td><input type="text"
name="palabra" size=25 maxlength=100></td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right">Categoría : </td><td><select
name="categoria">
<option value="">Todas las categorias</option>
<option value="general">General</option>
<option value="niños">Niños</option>
<option value="adolescentes">Adolescentes</option>
<option value="adultos">Adultos</option>
<option value="hombres">Hombres</option>
<option value="mujeres">Mujeres</option>
<option value="sexualidad">Sexualidad</option>
<option value="odontología">Odontología</option>
</select></td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right"></td><td align="center">
<input type="submit" name="enviar" value="Aceptar">
<input type="reset" name="Borrar" value="Borrar"></td></tr>
125
</table>
</form><br><hr><br>
<!--*******************************************-->
<?php
$basedatos = "petmud";
//conexión con el servidor
$link = @mysql_connect("localhost","root","");
//comprobación de la conexión con el servidor
if(!$link){
echo "<h2 align='center'>ERROR: Imposible establecer conexión con el
servidor</h2>";
exit;
}
mysql_select_db($basedatos, $link);
$result = mysql_query("select * from tblarticulos where categoria like
'%$categoria%' and resumen like '%$palabra%'",$link);
$filas = mysql_affected_rows($link);
if($row = mysql_fetch_array($result)){
if ($filas > 1){
echo "existen $filas coincidencias";
}else{
echo "existe $filas coincidencia";
}
echo "<table border = '0'> \n";
do{
echo "<tr>\n";
126
echo "<td bgcolor='#12B9E3'><b>Título : ".$row["titulo"]."</
b></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td bgcolor='#dfdfff'><b>Resumen : </b><br>".
$row["resumen"]."</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td bgcolor='#dfdfff' align='right'><b>Categoria : </b>".
$row["categoria"]." <b>Autor : </b>".$row["autor"]."</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td align='right'><a href='".$row["archivo"]."'>ver
artículo</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td> </td>\n";
echo "</tr>\n";
}while($row = mysql_fetch_array($result));
echo "</table>\n";
}else{
echo "¡No existen coincidencias!";
}
?>
<!--****************************************************************-->
</td></tr></table><br>
<!--fin del cuerpo del documento-->
<?php
127
hacer_pie();
?>
En el código anterior se incluye nuevamente el formulario de búsqueda de artículos para
facilitar nuevas búsquedas al usuario. La función de búsqueda en la base de datos realiza un
select de la tabla “tblarticulos” de la base de datos de acuerdo a los criterios de búsqueda, y
la función que presenta el resultado carga mediante un ciclo cada uno de los registros
seleccionados dándole un formato agradable para la presentación.
6.1.6 Módulo de directorio médico
Para el modulo de directorio médico se desarrollaron dos archivos: “frm_directorio.php” y
“directorio.php”, el primero con la finalidad de presentar al usuario un formulario inicial
para la búsqueda de entidades de acuerdo al tipo de estas y la localidad a la que pertenecen,
en este se incluyó un menú despleglable para seleccionar el tipo de entidad y otro para
seleccionar la localidad en la que el usuario desea hacer la búsqueda.
128
129
El otro archivo “directorio.php” implementa las funciones de seleccionar de la base de
datos los registros que corresponden con el criterio de búsqueda y la función de
presentación en pantalla de los resultados obtenidos. Para la primera función el módulo
genera un select de la base de datos según los criterios indicados por el usuario y en la
segunda función, mediante un ciclo se cargan uno a uno los registros coincidentes de la
base de datos en la interfaz web. La siguiente figura muestra el resultado de una búsqueda
realizada.
130
Figura 20 Sección de directorio médico
Para el desarrollo del formulario inicial de búsqueda en el directorio se generó el siguiente
código:
<?php
include("libreria.php");
hacer_encabezado('petmud directorio');
?>
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr>
<td width="100%" valign="top">
<img border="0" src="imagenes/libro.gif" width="40" height="50"
align="right"><br>
<font color="000066" size="+2"><b>Directorio:</b></font><br> <br>
<!--***************************************************************-->
<form method="post" action="directorio.php">
<table border="0" CELLSPACING=0 CELLPADDING=0>
<tr><td align="right">Tipo : </td>
<td><select name="tipo">
<option value="Centro de salud">Centro de salud</option>
<option value="Clínica">Clínica</option>
<option value="Droguería">Droguería</option>
<option value="Hospital">Hospital</option>
</select><td>
<td align="right"> Localidad : </td>
<td><select name="localidad">
<option value="">Todas </option>
131
<option value="Usaquén">1 Usaquén</option>
<option value="Chapinero">2 Chapinero</option>
<option value="Santafé">3 Santafé</option>
<option value="San Cristóbal">4 San Cristóbal</option>
<option value="Usme">5 Usme</option>
<option value="Tunjuelito">6 Tunjuelito</option>
<option value="Bosa">7 Bosa</option>
<option value="Kennedy">8 Kennedy</option>
<option value="Fontibón">9 Fontibón</option>
<option value="Engativá">10 Engativá</option>
<option value="Suba">11 Suba</option>
<option value="Barrios Unidos">12 Barrios Unidos</option>
<option value="Teusaquillo">13 Teusaquillo</option>
<option value="Los Mártires">14 Los Mártires</option>
<option value="Antonio Nariño">15 Antonio Nariño</option>
<option value="Puente Aranda">16 Puente Aranda</option>
<option value="La Candelaria">17 La Candelaria</option>
<option value="Rafael Uribe">18 Rafael Uribe</option>
<option value="Ciudad Bolivar">19 Ciudad Bolivar</option>
</select><td>
<td align="right"> <input type="submit" name="enviar"
value="Buscar"></td></tr>
</table>
<form><br>
<!--****************************************************************-->
</td></tr></table><br>
<!--fin del cuerpo del documento-->
<?php
132
hacer_pie();
?>
y para la implementación de las funciones búsqueda y presentación en pantalla se generó el
siguiente código:
<?php
include("libreria.php");
hacer_encabezado('petmud directorio');
?>
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%"><tr>
<td width="100%" valign="top">
<img border="0" src="imagenes/libro.gif" width="40" height="50"
align="right"><br>
<font color="000066" size="+2"><b>Directorio:</b></font><br> <br>
<!--******************************************************************-->
<form method="post" action="directorio.php">
<table border="0" CELLSPACING=0 CELLPADDING=0>
<tr><td align="right">Tipo : </td>
<td><select name="tipo">
<option value="Centro de salud">Centro de salud</option>
<option value="Clínica">Clínica</option>
<option value="Droguería">Droguería</option>
<option value="Hospital">Hospital</option>
</select><td>
133
<td align="right"> Localidad : </td>
<td><select name="localidad">
<option value="">Todas </option>
<option value="Usaquén">1 Usaquén</option>
<option value="Chapinero">2 Chapinero</option>
<option value="Santafé">3 Santafé</option>
<option value="San Cristóbal">4 San Cristóbal</option>
<option value="Usme">5 Usme</option>
<option value="Tunjuelito">6 Tunjuelito</option>
<option value="Bosa">7 Bosa</option>
<option value="Kennedy">8 Kennedy</option>
<option value="Fontibón">9 Fontibón</option>
<option value="Engativá">10 Engativá</option>
<option value="Suba">11 Suba</option>
<option value="Barrios Unidos">12 Barrios Unidos</option>
<option value="Teusaquillo">13 Teusaquillo</option>
<option value="Los Mártires">14 Los Mártires</option>
<option value="Antonio Nariño">15 Antonio Nariño</option>
<option value="Puente Aranda">16 Puente Aranda</option>
<option value="La Candelaria">17 La Candelaria</option>
<option value="Rafael Uribe">18 Rafael Uribe</option>
<option value="Ciudad Bolivar">19 Ciudad Bolivar</option>
</select><td>
<td align="right"> <input type="submit" name="enviar"
value="Buscar"></td></tr>
</table>
<form><br><hr>
<?php
$basedatos = "petmud";
134
//conexión con el servidor
$link = @mysql_connect("localhost","root","");
//comprobación de la conexion con el servidor
if(!$link){
echo "<h2 align='center'>ERROR: Imposible establecer conexión con el
servidor</h2>";
exit;
}
mysql_select_db($basedatos, $link);
$result = mysql_query("select * from tbldirectorio where localidad like
'%$localidad%' and tipo like '$tipo' order by entidad",$link);
$filas = mysql_affected_rows($link);
echo "<h3>Busqueda: $localidad por $tipo</h3>";
if($row = mysql_fetch_array($result)){
if ($filas > 1){
echo "existen $filas coincidencias";
}else{
echo "existe $filas coincidencia";
}
echo "<table border = '0'> \n";
do{
echo "<tr>\n";
echo "<td bgcolor='#dfdfff'><b>".$row["entidad"]."</b></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>".$row["direccion"]."</td>\n";
echo "</tr>\n";
echo "<tr>\n";
135
echo "<td>".$row["telefono"]."</td>\n";
echo "</tr>\n";
}while($row = mysql_fetch_array($result));
echo "</table>\n";
}else{
echo "¡No existen coincidencias por $letra!";
}
?>
<!--****************************************************************-->
</td></tr></table><br>
<!--fin del cuerpo del documento-->
<?php
hacer_pie();
?>
6.1.7 Artículos médicos
Los artículos médicos que se publiquen en el portal deben ser desarrollados en un archivo
de extensión php en el cuál se incluyen las funciones encabezado_articulo(),
titulo_articulo() y pie_articulo(), las cuales están incluídas en una librería semejante a la
utilizada en los diferentes módulos del portal pero que esta diseñada especialmente para los
artículos médicos.
136
La función de cada una de ellas es similar a la de sus correspondientes en la librería de los
módulos, la única adicional es titulo_articulo(), que maneja la presentación del título del
artículo correspondiente, esta se implemento con el fin de mantener una presentación
estándar para todos los artículos publicados en el portal. A continuación se incluye el
código generado para dicha librería.
<?php
Function encabezado_articulo($titulo){
echo "<html>\n";
echo "<head><title>$titulo</title></head>\n";
echo "<body bgcolor='#000066' link='#aaaaff' vlink='#aaaaff'
alink='#ffffaa'>\n";
//echo "<br>\n";
echo "<table border='0' cellpadding='0' cellspacing='0' width='700'
bgcolor='#ccccff'>\n";
echo "<tr>\n";
echo "<td width='50%'>\n";
echo "<img border='0' src='../imagenes/logo.gif' width='243' height='90'
align='left'></td>\n";
echo "<td width='50%' valign='bottom' align='right'
background='../imagenes/baner.gif'>\n";
echo "<form method='POST' action='busqueda_total.php'>\n";
echo "<input type='text' name='palabra' size='20'>\n";
echo "<input type='submit' name='buscar' value='buscar'
size='20'> \n";
echo "</form>\n";
echo "</td>\n";
echo "</tr>\n";
137
echo "</table><br>\n";
echo "<table border='0' cellpadding='0' cellspacing='0' width='700'>\n";
echo "<tr>\n";
//celda que contiene los links a las diferentes secciones
echo "<td width='25%' align='left' valign='top'>\n";
//tabla que contiene los links a servicios
echo "<table border='0' cellpadding='0' cellspacing='0' width='90%'>\n";
echo "<tr>\n";
echo "<td width='100%' bgcolor='#000066' colspan='2'
align='right'><b>\n";
echo "<font size='3' color='#ffcc33'>SERVICIOS</font></b></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
echo "<td width='90%'><font size='2'><a
href='../inicio.php'>Página de inicio</a></font></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
echo "<td width='90%'><font size='2'><a
href='../frm_registro.php'>Registro</a></font></td>\n";
138
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
echo "<td width='90%'><font size='2'><a href='../foros/index.php'
target='_blank'>Foros Virtuales</a></font></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
echo "<td width='90%'><font size='2'><a href='../correo/index.php'
target='_blank'>Correo</a></font></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
echo "<td width='90%'><font size='2'><a href='../chat/index.html'
target='_blank'>Chat</a></font></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
139
echo "<td width='90%'><font size='2'><a href='../'
target='_blank'>Listas de Correo</a></font></span></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "</table><br>\n";
//tabla que contiene los links a sección medica
echo "<table border='0' cellpadding='0' cellspacing='0' width='90%'>\n";
echo "<tr>\n";
echo "<td width='100%' bgcolor='#000066' colspan='2'
align='right'><b>\n";
echo "<font size='3' color='#ffcc33'>SECCIÓN
MÉDICA</font></b></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
echo "<td width='90%'><font size='2'><a
href='../frm_consulta.php'>Consulta Médica</a></font></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
140
echo "<td width='90%'><font size='2'><a
href='../frm_diccionario.php'>Diccionario</a></font></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
echo "<td width='90%'><font size='2'><a
href='../frm_articulos.php'>Artículos<a></font></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
echo "<td width='90%'><font size='2'><a
href='../frm_directorio.php'>Directorio</a></font></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "</table><br>\n";
//tabla que contiene los links a información del grupo
echo "<table border='0' cellpadding='0' cellspacing='0' width='90%'>\n";
echo "<tr>\n";
echo "<td width='100%' bgcolor='#000066' colspan='2'
align='right'><b>\n";
echo "<font size='3' color='#ffcc33'>SOBRE PETMUD</font></b></td>\n";
141
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
echo "<td width='90%'><font size='2'><a href='../quienes.php'>¿Quíenes
somos?</a></font></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "<tr>\n";
echo "<td width='10%'><img src='../imagenes/punto.gif' width='15'
height='15'></td>\n";
echo "<td width='90%'><font size='2'><a
href='http://www.udistrital.edu.co'>Universidad
Distrital</a></font></td>\n";
echo "</tr>\n";
echo "<tr height='5'><td colspan='2'><img height='5'
src='../imagenes/linmenu.gif' width='100%' border='0'></td></tr>\n";
echo "</table><br>\n";
echo "<table border='0' cellpadding='0' cellspacing='0' width='90%'>\n";
echo "<tr><td align='center'>\n";
echo "<img src='../imagenes/escudo.gif' width='57' height='76'
align='middle' border='0'>\n";
echo "</td></tr></table>\n";
echo "</td>\n";
142
//celda que contiene el cuerpo de la sección
echo "<td width='75%' valign='top' align='left' bgcolor='#ffffff'>\n";
echo "<p style='margin-top: 0; margin-bottom: 0'> </p>\n";
}
Function titulo_articulo($titulo_articulo){
echo "<h1><font
color='#000066'>$titulo_articulo</font></h1><hr><br><br>\n";
}
Function pie_articulo(){
echo "</td></tr></table>\n";
//tabla con el pie de pagina
echo "<br>\n";
echo "<table border='0' cellspacing='0' cellpadding='0' width='700'>\n";
echo "<tr><td align='center'>\n";
echo "<img height='5' src='../imagenes/linmenu.gif' width='700'
border='0'>\n";
echo "<b><i><font color='#ffffff' size='4'>"Somos la tecnología
informática al servicio de la salud"</font></i></b>\n";
echo "</td></tr>\n";
echo "</table>\n";
echo "</body>\n";
echo "</html>\n";
}
143
144
7 I N D E R F A Z A L A B A S E D E D A T O S P A R A L O S S E R V I C I O S
D E C O R R E O E L E C T R O N I C O , L I S T A S D E C O R R E O , C H A T Y
F O R O S V I R T U A L E S .
7 . 1 E S P E C I F I C A C I Ó N F U N C I O N A L D E L P R O Y E C T O
El Portal a realizar es un Web site enfocado a toda la comunidad médica Colombiana, para
esto se tendrán en cuenta médicos, estudiantes, funcionarios de la salud, y en fin todas las
personas que deseen vincularse con la saluden Colombia. Este Portal médico prestara los
servicios habituales de un Portal como foros virtuales, listas de correo, chat, registro de
usuarios, correo electrónico y unos servicios más específicos orientados a la medicina como
diccionario médico, búsqueda avanzada de artículos médicos, consultas médicas y un
directorio médico de las entidades o instituciones médicas de la ciudad de Bogotá.
Para el desarrollo del prototipo se utilizarán las mejores herramientas y lenguajes de
programación. En la selección de dichas herramientas se tendrán en cuenta las siguientes
características:
• Debe ser de licencia de libre distribución, con el fin de manejar un presupuesto bajo
para el desarrollo del Portal.
• Debe ofrecer buen soporte en caso de consultas referentes a instalación, configuración
y mantenimiento.
• Debe ser bastante confiable para la implementación del portal.
145
• Debe ser compatible y manejable dentro de una máquina Linux.
La implementación de los servicios que se prestarán en el Portal está dada temiendo en
cuenta unas restricciones o condiciones que buscan orientar el Portal hacia su función
educativa y social, las restricciones o condiciones para cada uno de los servicios que se
implementaran en el Portal son:
7.1.1 Foros Virtuales
• Todas las personas que ingresen a los foros virtuales del Portal podrán leer los
diferentes asuntos y todos los detalles de los mismos.
• Para que los usuarios puedan participar activamente en los foros virtuales del
Portal deben registrarse en los foros.
• Solamente el administrador del Portal podrá crear foros nuevos y modificar los
foros existentes.
• Todos los usuarios registrados podrán crear nuevos asuntos en los foros y
responder a los asuntos existentes.
• Ningún usuario puede borrar mensajes dejados en los foros excepto los mensajes
que ha creado el mismo.
• Solamente el administrador tiene permiso de borrar Foros, asuntos y mensajes sin
importar quién sea el creador de los mismos.
• Todos los datos de los usuarios son públicos excepto el correo electrónico, pues
cada usuario elige si este dato es publico o no.
146
figura 21 Pagina Principal Foros Virtuales
7.1.2 Correo Electrónico
• El servicio de correo electrónico será para uso exclusivo los funcionarios del
Portal (médicos, ingenieros).
147
figura 22 Página principal Correo Electrónico
7.1.3 Chat
• Todos los usuarios podrán participar en las diferentes salas del chat.
• Solamente el administrador puede crear nuevas salas de chat, eliminarlas y
bloquear a los usuarios.
148
figura No. 23 Página principal del Chat.
7.1.4 Listas de Correo
• Todos los usuarios podrán suscribirse y desuscribirse de las diferentes listas de
correo y enviar mensajes a las listas que estén suscritos, también pueden enviar
archivos adjuntos a las listas de correo.
• Solamente el administrador del Portal podrá crear nuevas listas de correo,
modificar las existentes y eliminarlas.
• El administrador podrá eliminar a los usuarios que no utilicen de forma adecuada
las listas de correo a las que estén suscritos.
149
figurra 24 Página de registro en Listas de Correo.
Código fuente frnlistas.php: Esta página contiene el formulario de solicitud de
suscripción a las listas de correo del Portal y llama a listas.php.
<?php
include("libreria.php");
hacer_encabezado('PETMUD Portal Especializado en Telemedicina
Universidad Distrital');
150
?>
<!--Cuerpo del documento-->
<table border="0" cellpadding="0" cellspacing="0" width="95%">
<tr><td align="center">
<h1><font color="#000066">Listas de Correo
"PETMUD"</font></h1>
</td></tr>
<tr>
<FONT color="6666ff">
<td width="80%" valign="bottom"><font color="6666ff"><b>Seleccione
las listas
de correo a las que desea suscribirse</font></b> y recibiras
información
via e-mail de las listas seleccionadas.<br>
<font color="6666ff"></font></td>
<td width="20%"><img border="0" src="imagenes/correo3.gif"
width="55" height="70" align="right"></td>
</tr>
</table><br>
<table border="0" cellpadding="0" cellspacing="0" width="95%">
<tr><td><center>
<form action="listas.php" method="POST">
<table border="0" CELLSPACING=0 CELLPADDING=0 width="377"
height="428">
<tr>
<td align="right" width="95"><font color="#000066">NOMBRE :
</font></td>
151
<td width="260">
<input type="text" name="nombre" size=40 maxlength=40>
<td width="64">
</tr>
<tr>
<td width="95"> </td>
<td width="260">
<td width="64">
</tr>
<tr>
<td align="right" width="95" height="28"><font
color="#000066">E-MAIL
: </font></td>
<td width="260" height="28">
<input type="text" name="email" size=40 maxlength=40>
<td width="64" height="28">
</tr>
<tr>
<td height="27" width="95"> </td>
<td height="27" width="260">
<td height="27" width="64">
</tr>
<tr>
<td align="right" colspan="2">
<div align="center"><font color="#000066"><b>SELECCIONE
LAS LISTAS
EN QUE DESEA SUSCRIBIRSE: </b></font></div>
</td>
<td width="64">
</tr>
152
<tr>
<td width="95"> </td>
<td width="260">
<td width="64">
</tr>
<tr>
<td align="right" height="32" width="95">
<div align="center">
<input type="checkbox" name="general" value="checkbox">
</div>
</td>
<td height="32" width="260">
<div align="center"><font
color="#000066"><b>General</b></font></div>
<td height="2" width="64">
</tr>
<tr>
<td height="27" width="95">
<div align="center">
<input type="checkbox" name="cardiologia"
value="checkbox">
</div>
</td>
<td height="32" width="260">
<div align="center"><font
color="#000066"><b>Cardiología</b></font></div>
<td height="32" width="64">
</tr>
153
<tr>
<td height="28" width="95">
<div align="center">
<input type="checkbox" name="neurologia"
value="checkbox">
</div>
</td>
<td height="32" width="260">
<div align="center"><font
color="#000066"><b>Neurología</b></font></div>
<td height="32" width="64">
</tr>
<tr>
<td height="28" width="95">
<div align="center">
<input type="checkbox" name="odontologia"
value="checkbox">
</div>
</td>
<td height="32" width="260">
<div align="center"><font
color="#000066"><b>Odontología</b></font>
</div>
<td height="32" width="64">
</tr>
<tr>
<td align="right" height="29" width="95">
<div align="center">
154
<input type="checkbox" name="optometria"
value="checkbox">
</div>
</td>
<td height="32" width="260">
<div align="center"><font
color="#000066"><b>Optometría</b></font>
</div>
</td>
</tr>
<tr>
<td height="28" width="95">
<div align="center">
<input type="checkbox" name="pediatria"
value="checkbox">
</div>
</td>
<td height="32" width="260">
<div align="center"><font
color="#000066"><b>Pediatría</b></font></div>
<td height="32" width="64">
</tr>
<tr>
<td height="28" width="95">
<div align="center">
<input type="checkbox" name="psicologia"
value="checkbox">
</div>
</td>
155
<td height="32" width="260">
<div align="center"><font
color="#000066"><b>Psicología</b></font></div>
<td height="32" width="64">
</tr>
<tr>
<td width="95"> </td>
<td width="260">
<td width="64">
</tr>
<tr>
<td align="right" width="95" height="36"></td>
<td align="right" width="260" height="36">
<input type="submit" name="enviar" value="Aceptar"
style="COLOR: #f0f9ff; BACKGROUND-COLOR: #000099">
<input type="reset" name="Borrar" value="Borrar"
style="COLOR: #f0f9ff; BACKGROUND-COLOR: #000099">
</td>
</tr>
</table>
</form></center></td></tr>
</table><br>
<!--fin del cuerpo del documento-->
<?php
hacer_pie();
?>
156
Código fuente listas.php: Esta es la página encargada de realizar la conexión con la base
de datos y guardar las solicitudes de los usuarios para la suscripción a las listas de correo
del Portal.
<?php
include("libreria.php");
hacer_encabezado('Listas de Correo - PETMUD -');
?>
<!--Cuerpo del documento-->
<br> <br> <br> <br>
<table border="0" cellpadding="0" cellspacing="0" width="95%">
<tr><td align="center"><h1><font color="#000066">Listas de Correo
-PETMUD-</font></h1></td></tr>
<tr><td><center>
<?php
$basedatos = "petmud";
//conexión con el servidor
$link = @mysql_connect("localhost","root","");
//comprobación de la conexión con el servidor
if(!$link){
echo "<h2 align='center'>ERROR: Imposible establecer conexión
con el servidor</h2>";
exit;
}
if($enviar){
157
$vMensaje= 'm1';
$vFecha='12/12/2002';
if($nombre != '' and $email != ''){
mysql_select_db($basedatos, $link);
mysql_query("select id_usuario from tblusuarios where
id_usuario = -1");
//mysql_query("select nickname from tblusuarios where
nickname = '$nickname'");
if(mysql_affected_rows($link)==0){
$lists = '';
if($general==checkbox)
{$lists='General';}
if($cardiologia==checkbox)
{$lists.=', Cardiología';}
if($neurologia==checkbox)
{$lists.=', Neurología';}
if($odontologia==checkbox)
{$lists.=', Odontología';}
if($optometria==checkbox)
{$lists.=', Optometría';}
if($pediatria==checkbox)
{$lists.=', Pediatría';}
if($psicologia==checkbox)
158
{$lists.=', Psicología';}
$sql = "insert into `listas`(`Id_listas`, `Nombre`,
`email`, `listas`) values('m4', '$nombre', '$email', '$lists')";
//$sql .= "values('89', '5', '5', '5', '5', '5','5')";
// '$vMensaje', '$asunto', '$vFecha',
'$cedula', '$nombre', '$mensaje', '$email'
//$inst=" INSERT INTO `contacto` (`IdCont`, `Asunto`,
`Fecha`, `Cedula`, `Nombre`, `Mensaje`, `Email`) VALUES ('89', '$asunto',
'5', '5', '5', '5','5')";
mysql_query($sql);
echo "<img border='0' src='imagenes/bien.gif' width='40'
height='50' align='center'>";
echo "<br><br><h2 align='center'>¡OK! Ha sido agregado con
éxito</h2>";
}else{
echo "<img border='0' src='imagenes/registro.gif'
width='40' height='50' align='center'>";
echo "<br><br><h2 align='center'>¡Nickname existente!
Cambielo por favor</h2>";
}
}else{
echo "<img border='0' src='imagenes/mal.gif' width='40'
height='50' align='center'>";
echo "<br><br><h2 align='center'>Datos incompletos . .
.</h2>";
}
}//end if
?></center></td></tr>
159
</table>
<!--fin del cuerpo del documento-->
<?php
hacer_pie();
?>
7.1.5 Contactos
• Todos los usuarios pueden consultar los diferentes términos del diccionario
médico, realizar búsquedas avanzadas de los artículos, utilizar el directorio
médico y realizar consultas médicas.
figura No. 25 Página Contáctenos.
160
Código fuente frm_contectenos: Esta página contiene el formulario para los contactos
realizados por los usuarios y llama a contactenos.php.
<?php
include("libreria.php");
hacer_encabezado('petmud registro');
?>
<!--Cuerpo del documento-->
<!--script FOR="window" EVENT="ONLOAD">
var time=new Date();
var year=time.getYear();
var mes=time.getMonth();
if (mes<10){mes="0" + mes}
var dia=time.getDate();
if (dia<10){dia="0" + dia}
var hora=time.getHours();
if (hora<10){hora="0" + hora}
var minuto=time.getMinutes();
if (minuto<10){minuto="0" + minuto}
var segundo=time.getSeconds();
if (segundo<10){segundo="0" + segundo}
var id = "m" + year + mes + dia + "_" + hora + minuto + segundo;
var fecha = year + "/" + mes + "/" + dia;
document.FORM.Id_Sol.value = id;
161
document.FORM.fecha.value = fecha;
document.FORM.fecha1.value = fecha;
</script-->
<table border="0" cellpadding="0" cellspacing="0" width="95%">
<tr><td align="center"><h1><font color="#000066">CONTÁCTENOS . .
.</font></h1></td></tr>
<tr>
<FONT color="6666ff">
<td width="80%" valign="bottom"><font
color="6666ff"><b>Formulenos sus preguntas, inquietudes o
sugerencias</font></b>
y pronto recibirá respuesta.<br><font color="6666ff"><b>Gracias .
. . </b></font></td>
<td width="20%"><img border="0" src="imagenes/correo2.gif"
width="60" height="75" align="right"></td>
</tr>
</table><br>
<table border="0" cellpadding="0" cellspacing="0" width="95%">
<tr><td><center>
<form action="contactenos.php" method="POST">
<table border="0" CELLSPACING=0 CELLPADDING=0>
<tr><td align="right"><font color="#000066">ASUNTO :
</font></td>
<td><input type="text" name="asunto" size=50
maxlength=50><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right"><font color="#000066">CÉDULA :
</font></td>
162
<td><input type="text" name="cedula" size=15
maxlength=12><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right"><font color="#000066">NOMBRE COMPLETO :
</font></td>
<td><input type="text" name="nombre" size=50
maxlength=50><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right"><font color="#000066">EMAIL : </font></
td>
<td><input type="text" name="email" size=50
maxlength=50><td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right"><font color="#000066">MENSAJE :
</font></td>
<td><TEXTAREA style="SCROLLBAR-FACE-COLOR: #669dde;
SCROLLBAR-SHADOW-COLOR: gold" name=mensaje rows=5 cols=50></TEXTAREA>
</td></tr>
<tr><td> </td><td> <td></tr>
<tr><td align="right"></td>
<td align="right"><input type="submit" name="enviar"
value="Aceptar" style="COLOR: #f0f9ff; BACKGROUND-COLOR: #000099">
<input type="reset" name="Borrar" value="Borrar"
style="COLOR: #f0f9ff; BACKGROUND-COLOR: #000099"></td></tr>
</table>
</form></center></td></tr>
</table><br>
<!--fin del cuerpo del documento-->
163
<?php
hacer_pie();
?>
Código fuente contactenos.php: Esta es la página encargada de realizar la conexión con la
base de datos e intoducir los datos enviados por los usuarios en la tavla contactos.
<?php
include("libreria.php");
hacer_encabezado('petmud registro');
?>
<!--Cuerpo del documento-->
<br> <br> <br> <br>
<table border="0" cellpadding="0" cellspacing="0" width="95%">
<tr><td align="center"><h1><font color="#000066">CONTÁCTENOS . .
.</font></h1></td></tr>
<tr><td><center>
<?php
$basedatos = "petmud";
//conexión con el servidor
$link = @mysql_connect("localhost","root","");
//comprobación de la conexión con el servidor
if(!$link){
164
echo "<h2 align='center'>ERROR: Imposible establecer conexión
con el servidor</h2>";
exit;
}
if($enviar){
$vMensaje= 'm1';
//{$lists.=', Cardiología'
$vFecha='';
$dia=date ("d");
$mes=date ("m");
$year=date ("Y");
$vFecha.=$dia;
$vFecha.='/';
$vFecha.=$mes;
$vFecha.='/';
$vFecha.=$year;
if($asunto != '' and $nombre != '' and $cedula != '' and
$mensaje != '' and $email != ''){
mysql_select_db($basedatos, $link);
mysql_query("select id_usuario from tblusuarios where
id_usuario = -1");
//mysql_query("select nickname from tblusuarios where
nickname = '$nickname'");
if(mysql_affected_rows($link)==0){
165
$sql = "insert into `contacto`(`IdCont`, `Asunto`,
`Fecha`, `Cedula`, `Nombre`, `Mensaje`, `Email`) values('m4', '$asunto',
'$vFecha', '$cedula', '$nombre', '$mensaje','$email')";
//$sql .= "values('89', '5', '5', '5', '5', '5','5')";
// '$vMensaje', '$asunto', '$vFecha',
'$cedula', '$nombre', '$mensaje', '$email'
//$inst=" INSERT INTO `contacto` (`IdCont`, `Asunto`,
`Fecha`, `Cedula`, `Nombre`, `Mensaje`, `Email`) VALUES ('89', '$asunto',
'5', '5', '5', '5','5')";
mysql_query($sql);
echo "<img border='0' src='imagenes/bien.gif' width='50'
height='60' align='center'>";
echo "<br><br><h2 align='center'>¡OK! Ha sido agregado con
éxito</h2>";
}else{
echo "<img border='0' src='imagenes/mal.gif' width='40'
height='50' align='center'>";
echo "<br><br><h2 align='center'>¡Nickname existente!
Cambielo por favor</h2>";
}
}else{
echo "<img border='0' src='imagenes/mal.gif' width='60'
height='60' align='center'>";
echo "<br><br><h2 align='center'>Datos incompletos . .
.</h2>";
}
}//end if
?></center></td></tr>
</table>
<!--fin del cuerpo del documento-->
166
<?php
hacer_pie();
?>
167
8 C O N C L U S I O N E S
Una vez realizada la investigación referente al proyecto, así como también el desarrollo del
portal y el presente documento, el grupo se encuentra en capacidad de determinar que se ha
cumplido con los objetivos de esta investigación.
Con el desarrollo del prototipado del portal se entrevé una mejora sustancial de los
servicios médicos del país en cuanto a su cubrimiento y calidad, ya que el portal ofrece una
vía de comunicación y masificación de la información médica que poseen muchos
especialistas del ramo, así mismo una gran cantidad de pacientes potenciales de muchos
centros asistenciales no congestionarán estos puntos de atención con consultas que pueden
ser atendidas desde el portal, permitiendo que los diferentes centros asistenciales destinen
sus recursos y esfuerzos en la atención de pacientes que requieren realmente de este
servicio.
Este tipo de proyectos en la gran mayoría de casos se quedan en un simple modelamiento
teórico debido al alto costo de las herramientas comerciales requeridas para su desarrollo e
implementación. Con este proyecto se demuestra que existen una infinidad de herramientas
de libre distribución en el mercado que no envidian nada de sus competidores comerciales
168
en cuanto a su robustez y soporte, haciendo posible el llevar a buen término el desarrollo e
implementación de esta clase de proyectos que pueden brindar a la sociedad mejoras
sustanciales en su estilo de vida.
Por ejemplo un usuario del sistema médico tradicional, que se encuentre en un sitio donde
no posea fácil acceso a instalaciones médicas especializadas en ciertas ramas de la
medicina, tendría que desplazarse desde este sitio hasta una ciudad que posea el servicio de
especialistas médicos que él necesite, mientras que a través del portal puede obtener un
diagnostico primario de su sintomatología usando el módulo de consulta en línea con los
especialistas. Esto disminuye enteramente los costos para el paciente de la atención de su
problemática de salud.
Una herramienta que brinda los servicios ofrecidos en el portal y posee la facilidad de
navegación planteada, es buen foco para captar usuarios potenciales, tal como lo demostró
el estudio de mercados. Gracias a esto garantiza prácticamente la generación de recursos
mediante la publicidad que se le incluya con el manejo de banners publicitarios de las
diferentes entidades médicas que deseen publicitarse en el portal, tales como laboratorios
médicos, cadenas de droguerías, EPS, etc.
Durante la investigación del proyecto se determino que la utilización de herramientas de
código abierto era una muy buena posibilidad para el desarrollo de un Portal, éstas
permitirían mantener el bajo perfil económico que se debía mantener en el desarrollo del
Portal sin alterar la calidad del proyecto.
169
Durante el desarrollo del proyecto Portal Especializado en Telemedicina Universidad
Distrital “PETMUD” se alcanzaron los objetivos propuestos en el anteproyecto. Estos
logros son:
• Mediante el proceso de gestión de información, identificación del producto y el
análisis de la oferta se determinaron los requisitos (servicios, características,
lenguajes) que se debían tener en cuenta para el diseño e implementación de un
Portal en Internet.
• Se identificaron las principales herramientas disponibles para el desarrollo del
Portal.
o Motor de base de datos: MySql, Posgresql
o Servidor Web: Apache
o Servidor de listas de Correo: Mailman, Majordomo
o Servidores de Correo Electrónico: Sendmail, Qmail
o Lenguajes de Desarrollo: Html, Php, Perl, JavaScript
• En el anteproyecto se definieron las actividades que se debían desarrollar para
llegar a la implementación del Portal, en cada uno de los capítulos se describieron
estas actividades.
170
• Mediante la implementación del servicio de Diccionario Médico se le ofrecerá a
los usuarios del Portal la posibilidad de aclarar sus dudas acerca de los diferentes
términos médicos.
• Mediante la implementación del servicio de Directorio Médico se le ofrecerá a los
usuarios del Portal la posibilidad de encontrar facilmente información acerca de
los diferentes centros asistenciales de la ciudad.
• Mediante la implementación del servicio de Consulta Médica se le ofrecerá a los
usuarios del Portal la posibilidad de consultar a los diferentes especialistas
adscritos al portal.
• Mediante la implementación del servicio de Correo Electrónico que se le ofrecerá
a los médicos o especialistas del Portal se posibilita la interconsulta entre
especialistas.
• Con la implementación del servicio de foros virtuales se abre un espacio
importante para el debate de muchos temas de carácter médico y un importante
medio para la gestión del conocimiento.
• Con la implementación del Servicio de listas de correo se ofrece a la comunidad
médica una herramienta muy dinámica para la solución de inquietudes de tipo
171
médico en las diferentes áreas de interés dentro de la medicina y la salud en
Colombia.
• Mediante el análisis de la demanda se determino el interés de todos los vinculados
con el área de la salud por tener un Portal especializado en telemedicina para
Colombia. Abriendo así la posibilidad de una fuente de recursos para el área de
investigación y la Universidad Distrital.
• El Portal “PETMUD” es un espacio importante para la creación de grupos de
trabajo e investigación que vean en este producto un instrumento para el
desarrollo de nuevos proyectos científicos.
• Se desarrollaron todas las actividades necesarias para diseñar e implementar un
Portal Especializado en Telemedicina que permitiera a la comunidad médica
colombiana tener un sitio Web que les ofreciera un espacio para el debate, la
investigación y la gestión del conocimiento.
172
B I B L I O G R A F Í A
BANEN, Rich. Servidor Apache. México: Prentice Hall, 1998. 615 p.
BERKOW, Robert. Manual Merck de Información Médica para el Hogar. España: Océano, 1517 p.
MOHR, James. Linux Recursos para el Usuario. México Pearson Educación, 1999. 787 p.
POWELL, Thomas A. HTML Manual de Referencia. España Mc Graw Hill, 2000.1006 p.
SCHENK, Thomas. Administración de red hat linux al descubierto. España: Prentice Hall, 2001. 1148 p.
TANENBAUM, Andrews. Redes de ordenadores segunda edición. México: Prentice Hall, 1991. 759 p.
APACHE HTTP SERVER DOCUMENTATION. Apache HTTP Server Documentation Project. URL: http://httpd.apache.org/
DESARROLLO DE APLICACIONES WEB UTILIZANDO SOFTWARE LIBRE. Arquitectura y recomendaciones. URL: http://red.coral.com.mx/ceyusa/tesis/
DICCIONARIO MÉDICO – BIOLÓGICO. URL: http://clasicas.usal.es/dicciomed/
DICCIONARIO MÉDICO. URL: http://www.daxicor.com/users/meditechnical/
DICCIONARIO MÉDICO. Viatusalud. URL: http://www.viatusalud.com/diccionario.asp
HTML 4.01 SPECIFICATION. W3C HTML working group. URL: http://www.w3.org/TR/html4
MANUAL DE PHP. Grupo de documentadores de PHP. URL: http://www.php.net.
LINUX MANDRAKE. Reference manual. URL: http://www.linuxmandrake.com
MONTAR UNA WEB CON APACHE+PHP+POSTGRES EN LINUX. Rafael Martínez. URL: http://www.programacion.net/articulos/apache.php
173
MULTILINGUAL GLOSSARY OF TECHNICAL AND POPULAR MEDICAL TERMS IN NINE EUROPEAN LANGUAGES. URL: http://allserv.rug.ac.be/~rvdstich/eugloss/welcome.html
MYSQL. MySQL comparado con otras beses de datos. URL: http://www.salnet.com.ar/inv_mysql/mysql.htm
MYSQL. Reference manual. URL: http://www.mysql.com/documentation/
WEBMAESTRO. Manual de HTML. Francisco Arocena. URL: http://www.lander.es/webmaestro
174