Sunteți pe pagina 1din 236

UNIVERSIDAD CATLICA DE TEMUCO FACULTAD DE CIENCIAS

BASES PARA LA MIGRACION DE SISTEMA HOSPITALARIO SOME, DE VISUAL BASIC A PLATAFORMA WEB

Por

JESSICA MARCELA JARA MENA

Trabajo de Ttulo presentado a la Facultad de Ciencias de la Universidad Catlica de Temuco Para Optar al Ttulo de Ingeniero de Ejecucin en Informtica

- Temuco, 2004 -

COMISIN EXAMEN DE TITULO

Este Examen de Ttulo ha sido realizado en la Escuela de Informtica.

Presidente Comisin

............................................................................... Sr. Osvaldo Rubilar Alarcn Decano Facultad de Ciencias

Profesor Gua

............................................................................... Sr. Oriel Herrera Gamboa Ingeniero Civil Industrial M / Informtica Doctor (c) En Ciencias de la Computacin

Profesor Informante

............................................................................... Sra. Marcela Nualart Schindler Ingeniero Civil Informtico

Secretario Acadmico Escuela de Informtica

............................................................................... Sr. Luis Alberto Caro Saldivia Ingeniero Civil en Informtica

Coordinador de Tesis

............................................................................... Sr. Mario Ramrez Espinoza Master en Fsica

Temuco, Diciembre de 2004

INFORME DE TRABAJO DE TITULO

TITULO: ALUMNO:

"BASES PARA LA MIGRACIN DE SISTEMA HOSPITALARIO SOME, DE VISUAL BASIC A PLATAFORMA WEB Jssica Marcela Jara Mena

En mi calidad de profesor gua, mis apreciaciones del informe son las siguientes:

El informe cubre la mayora de los aspectos llevados a cabo en el trabajo de ttulo. Se evidencia un claro manejo de aspectos tcnicos en el tema. Adems, incluye una redaccin tcnica, fcil de leer, que facilita el seguimiento del informe. Se ve un buen potencial de desarrollo para la organizacin donde se desarroll el Trabajo de Ttulo. Se podra haber abordado una mayor cantidad de aspectos asociados a la implementacin.

Por lo anterior, califico el presente informe con nota 6,3 (seis coma tres).

____________________________ ORIEL HERRERA GAMBOA Profesor Gua Temuco, noviembre 30 de 2004.

INFORME TRABAJO DE TTULO

TTULO

: BASES PARA LA MIGRACIN DE SISTEMA HOSPITALARIO SOME, DE VISUAL BASIC A PLATAFORMA WEB

ALUMNA

: JESSICA MARCELA JARA MENA.

La revisin de este informe, y mi condicin de Profesora Informante del Trabajo de Ttulo al que se refiere, me permiten expresar las siguientes apreciaciones: El trabajo es una herramienta prctica para el sistema hospitalario, es beneficioso que se vaya a usar en forma real. El poder utilizarla por medio de Internet permite fcil acceso y adecuarse a los requerimientos actuales. El trabajo est bien desarrollado de acuerdo a los requerimientos planteados. La forma que escribi el informe es clara, ordenada y da a entender su trabajo. De acuerdo a estas consideraciones califico este trabajo con nota 6,0 (Seis coma cero).

_____________________________ Marcela Nualart Schindler Profesora Informante

Temuco, 6 de Diciembre de 2004

Dedicatoria

Dedicado a mis padres por su esfuerzo, sacrificio, comprensin, amor y dedicacin.

AGRADECIMIENTOS

A mis hermanos Karla, Victor, Luis, y a mi primo Gerardo por su cario y apoyo en los momentos en que ms lo he necesitado.

A mis amigos Carolina Charry, Hardy Aguilera, Soledad Sotomayor y Claudia Borje por los buenos momentos que hemos compartido, por su amistad y apoyo para lograr las metas que me he propuesto.

A Don Manuel Carrasco, Mara Teresa Lineros, Vernica Parra y Norma Lagazzi, por su disposicin, buena voluntad y generosidad durante estos meses de desempeo en el mundo laboral.

A todas las personas que de una u otra manera han pasado por mi vida y por las experiencias y enseanzas que me han dejado.

INDICE

INDICE DE FIGURAS ........................................................................................VI INDICE DE TABLAS .........................................................................................XII INDICE DE APENDICES ................................................................................ XIV RESUMEN ....................................................................................................... XV ABSTRACT .................................................................................................... XVII INTRODUCCION ................................................................................................ 1 1. DESCRIPCIN DEL PROBLEMA................................................................... 3 2. SOFTWARE UTILIZADO ................................................................................ 9 3. PLAN DE TRABAJO .................................................................................... 12 4. ANALISIS DEL SISTEMA SOME.................................................................. 16 4.1. VISIN GENERAL DEL SISTEMA SOME................................................. 16 4.2. DESCRIPCIN GENERAL DE LOS CASOS DE USO DEL SISTEMA ..... 19 4.3. FORMATO EXPANDIDO Y CURSO NORMAL DE EVENTOS PARA LOS DISTINTOS CASOS DE USO........................................................................... 25 4.4. MODELO DE ANLISIS............................................................................. 47 i

4.5. MODELO RELACIONAL ............................................................................ 58 4.5.1. DEPURACIN DEL MODELO DE DATOS............................................. 58 4.5.2. DETALLE DE MODIFICACIONES AL MODELO DE DATOS ................. 59 4.5.3. DESCRIPCIN DE TABLAS................................................................... 61 4.6. DIAGRAMAS DE FLUJOS DE DATOS...................................................... 74 4.7. DISEO DE INTERFACES........................................................................ 90 5. CONFIGURACION DE LA PLATAFORMA WEB ........................................ 108 5.1. INSTALACIN DE RED HAT LINUX 9 .................................................... 108 5.2. SOFTWARE COMPLEMENTARIO PARA RED HAT LINUX 9 ................ 109 5.2.1. WEBMIN ............................................................................................... 110 5.2.2. MACROMEDIA FLASH PLAYER PARA LINUX.................................... 110 5.2.3. JAVA PLUG-IN...................................................................................... 112 5.3. INSTALACIN DE ORACLE 9I PARA LINUX Y WINDOWS 2000 .......... 113 5.3.1. QU ES ORACLE?............................................................................. 113 5.3.2. INSTALACIN DE ORACLE................................................................. 114 5.3.2.1. INSTALACIN DEL CLIENTE DE ORACLE 9I PARA LINUX ........... 115 5.3.2.2. INSTALACIN DE CLIENTE ORACLE PARA WINDOWS................ 115 ii

5.3.2.3. INSTALACIN DE LA BASE DE DATOS ORACLE PARA WINDOWS ........................................................................................................................ 116 5.3.3. EJECUTAR PAQUETES INSTALADOS BAJO LINUX ......................... 116 5.3.4. ENTERPRISE MANAGER CONSOLE.................................................. 117 5.3.4.1. EJECUTAR LA APLICACIN ............................................................ 117 5.3.4.3. AGREGAR, MODIFICAR O ELIMINAR CAMPOS DE LAS TABLAS. 119 5.3.5. SQLPLUS.............................................................................................. 119 5.3.5.1. INICIAR Y DETENER LA BASE DE DATOS ..................................... 120 5.4. INSTALACIN DE APACHE Y PHP PARA LINUX Y WINDOWS ........... 122 5.5. MACROMEDIA FIREWORKS MX............................................................ 124 5.5.1 CREACIN DE COLLAGE .................................................................... 125 5.5.2. CREACIN BOTONES......................................................................... 128 5.6. SWISHMAX.............................................................................................. 130 5.7. MACROMEDIA DREAMWEAVER MX..................................................... 133 5.7.1. PGINA DE INICIO............................................................................... 133 5.7.2. ANIMACIN SUPERIOR, CON MEN................................................. 135 5.7.3. FORMULARIOS .................................................................................... 136 iii

6. PRIMEROS PASOS EN LA IMPLEMENTACION DEL SISTEMA FINAL.... 138 6.1. ORGANIZACIN DEL SITIO SOME........................................................ 138 6.2. CARACTERSTICAS DEL SITIO WEB .................................................... 139 6.3. DESCRIPCIN LENGUAJES UTILIZADOS Y ANLISIS DE CDIGOS 140 6.5. EJEMPLO CONSULTA PHP A ORACLE UTILIZANDO ORA.................. 143 6.6. FORMULARIOS EN PHP......................................................................... 148 6.7. CREACIN DINMICA DE ELEMENTOS DE FORMULARIO ................ 152 6.8. INTERACCIN ENTRE JAVASCRIPT Y PHP......................................... 154 6.9. DESCRIPCIN ESTRUCTURA PGINAS IMPLEMENTADAS .............. 155 6.10. DESCRIPCIN DE ALGUNOS CDIGOS UTILIZADOS ...................... 158 CONCLUSIONES ........................................................................................... 167 BIBLIOGRAFA ............................................................................................... 169 APENDICE A. INSTALACIN DE ORACLE 9I PARA LINUX......................... 172 APENDICE B. INSTALACIN DEL CLIENTE ORACLE PARA WINDOWS ... 187 APENDICE C. INSTALAR LA BASE DE DATOS ORACLE BAJO WINDOWS ........................................................................................................................ 189 APENDICE D. INSTALACIN DE APACHE Y PHP PARA WINDOWS 2000 192 iv

D.1. INSTALACIN DE APACHE PARA WINDOWS 2000 ............................ 192 D.2. INSTALACIN DE PHP DE WINDOWS 2000 ........................................ 192 APENDICE E. INSTALACIN DE APACHE Y PHP PARA RED HAT LINUX 9 ........................................................................................................................ 197 E.1. INSTALACIN DE APACHE PARA RED HAT LINUX 9 ......................... 197 E.2. INSTALACIN DE PHP PARA RED HAT LINUX 9................................. 199 APENDICE F. ALGUNAS FUNCIONES PHP (ORA) PARA ORACLE............ 207

INDICE DE FIGURAS

Figura 4.1. Visin general del sistema SOME. ................................................. 18 Figura 4.2. Modelo de anlisis para Autentificar usuario. ................................. 48 Figura 4.3. Modelo de anlisis para Crear agenda........................................... 49 Figura 4.4. Modelo de anlisis para Eliminar agenda....................................... 50 Figura 4.5. Modelo de anlisis para Modificar agenda. .................................... 51 Figura 4.6. Modelo de anlisis para Consultar agenda. ................................... 51 Figura 4.7. Modelo de anlisis para Crear citacin. ......................................... 52 Figura 4.8. Modelo de anlisis para Eliminar citacin. ..................................... 53 Figura 4.9. Modelo de anlisis para Modificar citacin..................................... 53 Figura 4.10. Modelo de anlisis para Consultar horas. .................................... 54 Figura 4.11. Modelo de anlisis para Consultar horas eliminadas. .................. 54 Figura 4.12. Modelo de anlisis para Crear registro de pacientes. .................. 55 Figura 4.13. Modelo de anlisis para Eliminar registro de pacientes. .............. 55 Figura 4.14. Modelo de anlisis para Modificar registro de pacientes. ............. 56 Figura 4.15. Modelo de anlisis para Consultar registro de pacientes. ............ 56 Figura 4.16. Modelo de anlisis para Cerrar sesin. ........................................ 57 Figura 4.17. Estructura de la tabla GG_TAGENDA.......................................... 61 Figura 4.18. Estructura de la tabla GG_TBLOQUE.......................................... 62 Figura 4.19. Estructura de la tabla GG_TCOMUNA. ........................................ 62 Figura 4.20. Estructura de la tabla GG_TDATPREV........................................ 62 Figura 4.21. Estructura de la tabla GG_TDIAGNO........................................... 63 vi

Figura 4.22. Estructura de la tabla GG_TESPEC............................................. 63 Figura 4.23. Estructura de la tabla GG_TESPRO. ........................................... 63 Figura 4.24. Estructura de la tabla GG_TESTABL. .......................................... 64 Figura 4.25. Estructura de la tabla GG_TPAIS................................................. 64 Figura 4.26. Estructura de la tabla GG_TPREES............................................. 64 Figura 4.27. Estructura de la tabla GG_TPRESTA. ......................................... 65 Figura 4.28. Estructura de la tabla GG_TPROFESION.................................... 65 Figura 4.29. Estructura de la tabla GG_TPROFESIONAL. .............................. 65 Figura 4.30. Estructura de la tabla GG_TRECHAZO. ...................................... 66 Figura 4.31. Estructura de la tabla GG_TSERPEP. ......................................... 66 Figura 4.32. Estructura de la tabla GG_TSESPEST. ....................................... 66 Figura 4.33. Estructura de la tabla SO_TECITAS. ........................................... 67 Figura 4.34. Estructura de la tabla SO_TLESPERA......................................... 68 Figura 4.35. Estructura de la tabla SO_TPACTE. ............................................ 69 Figura 4.36. Estructura de la tabla SO_TTITUL. .............................................. 70 Figura 4.37. Estructura de la tabla SS_TEMPRESAS...................................... 70 Figura 4.38. Estructura de la tabla SS_TEMPUSUARIO.................................. 71 Figura 4.39. Estructura de la tabla SS_TPARAME. ......................................... 71 Figura 4.40. Estructura de la tabla SS_TRECURSO........................................ 71 Figura 4.41. Estructura de la tabla SS_TRECURSOS. .................................... 72 Figura 4.42. Estructura de la tabla UR_TREGPAC. ......................................... 72 Figura 4.43. Principales tablas del sistema SOME y sus relaciones. ............... 73 Figura 4.44. Flujo de datos Autentificar usuario. ............................................. 75 Figura 4.45. Flujo de datos Crear agenda. ....................................................... 76 vii

Figura 4.46. Flujo de datos Eliminar agenda. ................................................... 77 Figura 4.47. Flujo de datos Modificar agenda. ................................................. 78 Figura 4.48. Flujo de datos Consultar agenda.................................................. 79 Figura 4.49. Flujo de datos Crear citacin........................................................ 80 Figura 4.50. Flujo de datos Eliminar citacin.................................................... 81 Figura 4.51. Flujo de datos Modificar citacin. ................................................. 82 Figura 4.52. Flujo de datos Consultar horas..................................................... 83 Figura 4.53. Flujo de datos Consultar horas eliminadas................................... 84 Figura 4.54. Flujo de datos Crear registro de pacientes................................... 85 Figura 4.55. Flujo de datos Eliminar registro de pacientes............................... 86 Figura 4.56. Flujo de datos Modificar registro de pacientes. ............................ 87 Figura 4.57. Flujo de datos Consultar registro de pacientes. ........................... 88 Figura 4.58. Flujo de datos Cerrar sesin. ....................................................... 89 Figura 4.59. Interfaz Ingreso de usuario........................................................... 91 Figura 4.60. Interfaz Formulario de contacto.................................................... 91 Figura 4.61. Interfaz Error conexin a la base de datos. .................................. 91 Figura 4.62. Interfaz Exito creacin de agenda. ............................................... 91 Figura 4.63. Interfaz Sitio web SOME para el usuario autentificado. ............... 92 Figura 4.64. Interfaz Generar calendario agenda mdica. ............................... 92 Figura 4.65. Interfaz Bsqueda agenda mdica............................................... 92 Figura 4.66. Interfaz Seleccin de horas de la agenda. ................................... 93 Figura 4.67. Interfaz Consulta especialistas mdicos. ..................................... 93 Figura 4.68. Interfaz Consulta de especialidades............................................. 94 Figura 4.69. Interfaz Modificar agenda mdica. ............................................... 94 viii

Figura 4.70. Interfaz Consulta de agenda mdica............................................ 95 Figura 4.71. Interfaz Consultar agenda. ........................................................... 95 Figura 4.72. Interfaz Agregar horas agenda mdica. ....................................... 96 Figura 4.73. Interfaz Confirmacin ingreso de horas........................................ 96 Figura 4.74. Interfaz Confirmacin modificacin de agenda............................. 96 Figura 4.75. Interfaz Eliminacin horas de agenda. ......................................... 97 Figura 4.76. Interfaz Confirmacin eliminacin horas de agenda..................... 97 Figura 4.77. Interfaz Trasladar horas de agenda. ............................................ 97 Figura 4.78. Interfaz Datos paciente citado. ..................................................... 98 Figura 4.79. Interfaz Citacin de pacientes. ..................................................... 98 Figura 4.80. Interfaz Citacin de pacientes Resultado bsqueda de horas... 99 Figura 4.81. Interfaz Confirmacin eliminacin de citacin. ............................. 99 Figura 4.82. Interfaz Confirmacin traslado horas de agenda.......................... 99 Figura 4.83. Interfaz Consulta de pacientes. .................................................. 100 Figura 4.84. Interfaz Consulta de agendas mdicas. ..................................... 100 Figura 4.85. Interfaz Consulta de citacin de pacientes. ................................ 101 Figura 4.86. Interfaz Eliminar citacin. ........................................................... 101 Figura 4.87. Interfaz Confirmacin eliminacin registro paciente. .................. 101 Figura 4.88. Interfaz Consulta de citacin de pacientes. ................................ 102 Figura 4.89. Interfaz Consulta horas eliminadas. ........................................... 102 Figura 4.90. Interfaz Imprimir carnet de paciente. .......................................... 103 Figura 4.91. Interfaz Imprimir citacin de paciente......................................... 103 Figura 4.92. Interfaz Confirmacin modificacin registro de paciente. ........... 103 Figura 4.93. Interfaz Bsqueda de citacin. ................................................... 104 ix

Figura 4.94. Interfaz Consulta registro de paciente........................................ 104 Figura 4.95. Interfaz Seleccin parmetro de bsqueda registro de paciente. ................................................................................................................. 104 Figura 4.96. Interfaz Consulta registro de paciente........................................ 105 Figura 4.97. Interfaz Consulta de horas. ........................................................ 105 Figura 4.98. Interfaz Creacin datos del titular............................................... 106 Figura 4.99. Interfaz Bsqueda de pacientes por nmero de ficha. ............... 106 Figura 4.100. Interfaz Bsqueda de pacientes registro de atencin de urgencia. ................................................................................................................. 106 Figura 4.101. Interfaz Creacin registro de paciente...................................... 107 Figura 4.102. Interfaz Consulta de folios de urgencia. ................................... 107 Figura 5.1. Estructura fsica de una base de datos Oracle............................. 114 Figura 5.2. Vista consola de comandos sql, SQL Plus. .................................. 120 Figura 5.3. Equipos de prueba para la conexin a la base de datos.............. 123 Figura 5.4. Equipos de prueba para la conexin a la base de datos.............. 123 Figura 5.5. Herramienta lazo polgono. .......................................................... 125 Figura 5.6. Panel de Herramientas Propiedades............................................ 126 Figura 5.7. Herramienta de texto.................................................................... 126 Figura 5.8. Aplicacin efecto Sombra sobre un texto. .................................... 127 Figura 5.9. Herramienta Divisin. ................................................................... 127 Figura 5.10. Collage con divisiones................................................................ 127 Figura 5.11. Panel Optimizar.......................................................................... 128 Figura 5.12. Herramienta Rectngulo Redondeado. ...................................... 129 Figura 5.13. Herramienta relleno y borde de color. ........................................ 129 x

Figura 5.14. Botn, resultado final.................................................................. 130 Figura 5.15. Vista SWISHMax........................................................................ 130 Figura 5.16. Lnea de tiempo.......................................................................... 131 Figura 5.17. Seleccin trozo de la imagen. .................................................... 134 Figura 5.18. Trozo de imagen utilizado como fondo....................................... 135 Figura 5.19. Modificar barra de navegacin. .................................................. 136 Figura 5.20. Formulario Agenda Mdica. ....................................................... 137 Figura 5.21. Formulario de bsqueda, en ventana emergente....................... 137 Figura 6.1. Sitio web sistema SOME, pgina inicial usuario autentificado. .... 140 Figura 6.2. Campo de texto. ........................................................................... 149 Figura 6.3. Casilla de verificacin................................................................... 149 Figura 6.4. Botn de opcin. .......................................................................... 150 Figura 6.5. Lista/Men.................................................................................... 150 Figura 6.6. Botn de formulario. ..................................................................... 151 Figura 6.7. Botn basado en una imagen....................................................... 152 Figura A.1. Alerta Ejecutar script como usuario root. ..................................... 179 Figura A.2. Ejecutar segundo script como usuario root.................................. 181 Figura D.1. Alerta para configurar manualmente el archivo httpd.conf........... 193 Figura D.2. Libreras de Oracle en pgina de prueba de Php. ....................... 196

xi

INDICE DE TABLAS

Tabla 4.1. Descripcin caso de uso Autentificar usuario. ................................. 25 Tabla 4.2. Curso normal de eventos para Autentificar usuario. ........................ 26 Tabla 4.3. Descripcin caso de uso Registrar y mantener la agenda mdica. . 27 Tabla 4.4. Curso normal de eventos para Registrar y mantener agenda mdica. ................................................................................................................... 29 Tabla 4.5. Descripcin caso de uso Consultar agendas mdicas..................... 31 Tabla 4.6. Curso normal de eventos de Consultar agendas mdicas............... 32 Tabla 4.7. Descripcin caso de uso Registrar y mantener citas. ...................... 33 Tabla 4.8. Curso normal de eventos para Registrar y mantener citas. ............. 37 Tabla 4.9. Descripcin caso de uso Consultar citas. ........................................ 39 Tabla 4.10. Curso normal de eventos Consultar citas. ..................................... 40 Tabla 4.11. Descripcin caso de uso Registrar y mantener pacientes. ............ 41 Tabla 4.12. Curso normal de eventos para Registrar y mantener pacientes. ... 43 Tabla 4.13. Descripcin caso de uso Consultar registro de pacientes. ............ 44 Tabla 4.14. Curso normal de eventos para Consultar registro de pacientes. ... 45 Tabla 6.1. Ejemplo cdigo utilizando ORA...................................................... 144 Tabla 6.2. Listar resultados de bsqueda con ORA ....................................... 146 Tabla 6.3. Estructura de formulario................................................................. 148 Tabla 6.4. Lista/Menu con elementos dinmicos. ........................................... 154 Tabla 6.5. Archivo configuracin.inc.php. ....................................................... 158 Tabla 6.6. Chequear si se llama directo al script. ........................................... 159 xii

Tabla 6.7. Conexin a la base de datos.......................................................... 159 Tabla 6.8. Cerrar conexin a la base de datos. .............................................. 159 Tabla 6.9. Ejemplo consulta a la base de datos. ............................................ 160 Tabla 6.10. Creacin variables de sesin. ...................................................... 160 Tabla 6.11. Destruccin de variable. .............................................................. 161 Tabla 6.12. Verificacin de sesin existente................................................... 161 Tabla 6.13. Archivo redirect.php. .................................................................... 161 Tabla 6.14. Archivo logout.php. ...................................................................... 162 Tabla 6.15. Abrir nueva ventana sin destruir sesin, primera parte................ 164 Tabla 6.16. Captura del enlace seleccionado para pasarlo al formulario en la ventana padre. ......................................................................................... 165 Tabla F1. Ejemplo de ora_fetch_into. ............................................................. 209

xiii

INDICE DE APENDICES

APENDICE A. Instalacin de Oracle 9i para Linux ......................................... 172 APENDICE B. Instalacin del cliente Oracle para Windows ........................... 187 APENDICE C. Instalar la base de datos Oracle bajo Windows....................... 189 APENDICE D. Instalacin de Apache y Php para Windows 2000 .................. 192 D.1. Instalacin de Apache para Windows 2000............................................. 192 D.2. Instalacin de PHP de Windows 2000..................................................... 192 APENDICE E. Instalacin de Apache y Php para Red Hat Linux 9 ................ 197 E.1. Instalacin de Apache para Red Hat Linux 9........................................... 197 E.2. Instalacin de Php para Red Hat Linux 9................................................. 199 APENDICE F. Algunas funciones Php (ORA) para Oracle ............................. 207

xiv

RESUMEN

La Internet ha experimentado un crecimiento vertiginoso en los ltimos aos. Cada da son ms y ms las personas e instituciones que acceden a ella, ya sea como una fuente de informacin, de entretencin, etc. Las instituciones gubernamentales partieron con sitios web de carcter mayoritariamente informativo, pero poco a poco han ido implementando aplicaciones orientadas a la prestacin de servicios, de modo de evitar por ejemplo, que una persona deba necesariamente tener que ir personalmente a un lugar para resolver necesidades, tales como, la obtencin de un certificado, la revisin de su estado de cuenta bancaria, etc. Los Servicios de Salud ya han comenzado a utilizar aplicaciones como ChileCompras, SIGFE, etc, dando inicio a una nueva era, en la cual se privilegia la mejor utilizacin, control, disponibilidad y accesibilidad de la informacin, lo cual evidentemente afectar de manera positiva a los establecimientos y por ende, al usuario comn y silvestre.

El Servicio de Salud Araucana Norte (SSAN) dispone actualmente de aplicaciones creadas en Visual Basic, con datos almacenados en una base de datos Oracle 9i. Estas aplicaciones se encuentran disponibles slo en 2 de las 11 comunas que cubre el Servicio; Angol y Victoria, gracias al enlace dedicado que conecta a ambas ciudades en red. Es necesario contar con estas

aplicaciones en todas las comunas del SSAN, ms ahora cuando ya han sido aprobados los proyectos de compra de computadores para instalar pequeas xv

redes en 4 5 comunas ms. Es entonces cuando cobra sentido la alternativa de migrar estas aplicaciones a la plataforma web, de modo de poder acceder a ellas, simplemente contando con un computador con conexin a Internet.

El siguiente trabajo de ttulo presenta el anlisis hecho sobre una de estas aplicaciones, el sistema SOME, de modo de facilitar su compresin y con ello, su posterior migracin a Php. Adems, se realiza una descripcin tanto de la instalacin, como de la utilizacin de cada uno de los softwares necesarios para el correcto funcionamiento del formato en plataforma web. Se presentan tambin ejemplos prcticos de cdigos implementados.

De esta manera, se contar con un servidor web configurado para realizar consultas a la base de datos en Oracle 9i, mediante Php, en Apache, y con un sistema SOME analizado, depurado e implementado en su parte bsica, lo cual facilitar su migracin total y el de los dems sistemas.

xvi

ABSTRACT

The Internet has experienced a vertiginous growth in the last years. Every day more and more people and institutions have access to it, using it as an information or entertaintment source, etc. The governmental institutions first Web sites were established mostly as informative places, but little by little they have implemented applications oriented to provide services, to avoid for example for an individual the need to go in person to a place to solve a problem, such as, getting a birth certificate, checking the balance of their bank account, etc. The Services of Health have already begun to use applications like ChileCompras, SIGFE, etc, beginning a new era, where a better use, control, availability and accessibility of the information is privileged, which evidently will affect in a positive way the establishments and therefore, the common user.

The Servicio de Salud Araucana Norte (SSAN) at the moment has some applications developed in Visual Basic, with data storaged in an Oracle 9i database. Theses aplications are available only in 2 out of the 11 communes covered by the Service; Angol and Victoria, thanks to the dedicated connection that connects both cities in a network. It is necessary to count on these

applications in all the communes of the SSAN, specially now, when a project to purchase a group of computers to install small networks in 4 or 5 communes, has already been approved. It is then when the alternative of migrating these applications to the Web platform makes sense, in a way to be able to accede xvii

them, simply by using a computer with a browser and a connection to the Internet.

The following essay presents the analysis done on one of these applications, SOME system, in a way to facilitate its understanding and with it, its total migration to Php. In addition, a description of the installation and the use of each one of the necessary software for the correct operation on the Web platform is made. Practical examples of implemented codes are also presented.

In this way, a Web server that executes queries to the database in Oracle 9i, using Php, in Apache, will be configured, besides a SOME system which has been analized, debugged and implemented in its basics, which will facilitate its total migration and in the future, the migration of the rest of the systems.

xviii

INTRODUCCION

Actualmente el Departamento de Informtica del S.S.A.N. (Servicio de Salud Araucana Norte) cuenta con varias aplicaciones diseadas en Visual Basic, orientadas a resolver las distintas actividades que se llevan a cabo en un Hospital, como por ejemplo: el control del stock disponible en Farmacia, control de los pacientes que son atendidos diariamente en el recinto, control de los insumos necesarios para el funcionamiento de los distintos departamentos, etc. Estas aplicaciones ya han sido depuradas casi en su totalidad, y por ser las primeras aplicaciones a las cuales se vieron enfrentados los usuarios del servicio, han servido para familiarizarlos en el manejo bsico-medio de un PC. Las aplicaciones han sido instaladas solamente en los Hospitales de Angol y Victoria, aprovechando que ambas ciudades se encuentran conectadas en red va enlace dedicado. En un par de meses comenzar la configuracin y puesta en marcha de pequeas redes en otras comunas de la provincia de Malleco, por lo que el habilitar a estos establecimientos con las aplicaciones actualmente utilizadas en los establecimientos ms grandes, es una necesidad imperante. La alternativa de una migracin de las aplicaciones a plataforma web, surge como una manera eficiente y eficaz para llevar a cabo esta tarea.

El siguiente informe se divide en tres grandes partes; en primer lugar, se somete a anlisis el sistema SOME, encargado de registrar y mantener la informacin relativa a pacientes, especialistas, citaciones, etc, se representa la 1

aplicacin mediante casos de uso, diagramas de flujo, modelo de datos, etc, lo que facilitar la comprensin del sistema en s, como la deteccin de posibles errores y mejoras a realizar. La segunda parte dice relacin con la instalacin, configuracin y utilizacin de cada las herramientas necesarias para el adecuado funcionamiento de la nueva plataforma. Esto permitir realizar una instalacin rpida y sin mayores complicaciones al momento de tener todos los cdigos implementados. Y finalmente, se da una visin de la etapa inicial de lo que ser el sistema SOME una vez finalizado, poniendo nfasis en la descripcin de la estructura del sitio, la interaccin entre los diferentes elementos y lenguajes que se utilizarn, la utilizacin de las funciones de Php para Oracle, y el anlisis de algunos cdigos que servirn de gua para las futuras implementaciones.

1. DESCRIPCIN DEL PROBLEMA

El fuerte del rea de Informtica del Servicio de Salud Araucana Norte (SSAN), recae sobre las aplicaciones programadas en Visual Basic y almacenadas en Oracle 9i, las cuales administran informacin relacionada con variadas reas, como por ejemplo; servicio de URGENCIA, servicio de SOME, servicio de FARMACIA, servicio de BANCO DE SANGRE, etc. Estas aplicaciones fueron depuradas en lo relativo a los cdigos en Visual Basic, ya que fueron cedidas por otro Servicio de Salud del pas. El primer sistema en ver la luz fue el sistema SOME, implementado en el Hospital de Angol. Posteriormente se pusieron en marcha los sistemas Urgencia y Farmacia. Hace pocos meses se comenz a utilizar el sistema SOME en la ciudad de Victoria, mediante la utilizacin de la red va enlace dedicado que une a ambas ciudades.

El sistema SOME se encarga de todo lo relacionado con los pacientes (fichas, registros de hospitalizacin), los mdicos (especialidades, horario de atencin) y citas (asignacin de horas basndose en la agenda confeccionada para cada especialista), entre otros. Para su implementacin, se requiere que un miembro del Departamento de Informtica del Servicio vaya personalmente e instale algunas libreras necesarias presentes en el cliente de Oracle 9i para Windows, y configurar unos parmetros en el Administrador de orgenes de datos ODBC, en el Panel de Control de Windows, de modo de poder realizar la conexin adecuadamente a las aplicaciones que se encuentran fsicamente en la ciudad 3

de Angol, especficamente en las dependencias del Departamento de Informtica, en el hospital de la misma ciudad. Esto evidentemente presenta inconvenientes, por el hecho de que cada nuevo equipo desde el cual se desee permitir el acceso a las aplicaciones en Visual Basic, debe ser configurado personalmente, muchas veces en comunas alejadas geogrficamente por varias horas. Adems, si se presentan inconvenientes posteriores, se deber volver a ir a la ciudad respectiva, desperdiciando horas en viaje que podran ser aprovechadas en la resolucin de otras tareas dentro del mismo Departamento.

Otro factor muy importante a considerar, es el econmico. El enlace dedicado que une a las ciudades de Angol y Victoria, si bien es cierto presenta los beneficios bsicos de toda red, que son el compartir archivos y aplicaciones, tiene la desventaja del costo, que es elevado. El SSAN no cuenta con los recursos para seguir ampliando la red interna, por lo que la alternativa de redes pequeas que salgan a Internet por un enlace de banda ancha es mucho ms atractiva. Evidentemente se pierde la posibilidad de compartir archivos en grandes cantidades, pero se obtiene a cambio la alternativa de poder acceder de una forma mucho ms fcil y econmica a las aplicaciones antes descritas, mediante la utilizacin de herramientas gratuitas que slo necesitarn ser instaladas en el servidor web del Servicio. A continuacin se destacan algunas de las ventajas de la implementacin de aplicaciones para la plataforma web:

Ahorro en servicios de Internet: Se estima que para acceder a una aplicacin web de consultas a una base de datos, con un movimiento de 4

datos mediano-alto, se debera disponer de una conexin de 40-42Kb por usuario. Esto significa que para una red pequea de unos 5 computadores, bastara con una conexin a Internet de banda ancha de 256k, la cual actualmente cuesta aproximadamente $ 25.000 mensuales. Por otro lado, el valor de una conexin dedicada, que permitira conectarse a la red actual y a Internet a travs de los servidores ubicados en la ciudad de Angol, implicara un gasto de alrededor de $ 300.000 mensuales. Evidentemente, el ahorro es significativo.

Accesibilidad: La posibilidad de poder conectarse a los sistemas no teniendo que estar fsicamente en alguno de los puntos de red, sino simplemente utilizando un computador con conexin a Internet. Esto permitira por ejemplo poder obtener informes de ltimo momento en alguna reunin fuera de la regin.

Ahorro en la compra y licencias del software: El poder bajar gratuitamente desde Internet software del tipo GNU (software libre, que puede descargarse y utilizarse en cualquier aplicacin, personal o profesional, de manera totalmente libre) implica un ahorro considerable de dinero, tanto en la compra del producto en s, como en el de las licencias, el cual crecer directamente a medida que aumente el nmero de usuarios. Utilizando software libre como Red Hat Linux, Apache, Php, se obtienen los beneficios antes mencionados, claro que especficamente en lo que a compra de software y licencias se refiere, ya que evidentemente a mayor 5

cantidad de usuarios inevitablemente habr que pensar en algn momento en ampliar los espacios de almacenamiento o la capacidad de

procesamiento de los servidores.

Optimizacin del tiempo de trabajo del personal Informtico: Como ya se mencion, cada vez que se instala un nuevo equipo en la red del SSAN, debe instalarse el cliente Oracle, y realizar la conexin ODBC a la base de datos. Esto implica que debe ir alguien personalmente a instalar estos paquetes, muchas veces incluso a otras comunas, lo cual evidentemente consume tiempo en transporte que podra estar siendo utilizado en solucionar algn problema local. De igual manera, si en el futuro surgen problemas con la aplicacin, se debe ir nuevamente al lugar donde se encuentra el computador afectado. Con un sistema basado en web, ya no ser necesario ir personalmente a instalar los paquetes disponibles computador por computador, ya que lo nico necesario para acceder a los sistemas ser un computador habilitado con un browser y conexin a Internet.

Ahorro de espacio en disco: El cliente de Oracle 9i ocupa unos cientos de Megabytes en espacio de instalacin en disco duro, lo cual a la larga repercutir especialmente en los equipos con capacidad de almacenamiento menor. Con la implementacin bajo plataforma web, no se necesitar instalar nuevos programas.

Si bien es cierto son muchas las ventajas de la implementacin en plataforma web, tambin existen algunas desventajas, las cuales no deben ser vistas tanto como desventajas, sino costos a pagar ante una ganancia mayor.

Rechazo por parte de algunos usuarios que ejecutan el software: Los usuarios de las aplicaciones actualmente disponibles en el SSAN, son personas que hasta hace poco trabajaban totalmente a papel y lpiz, varios de los cuales presentaron algo de reticencia al cambio, por lo cual no sera de extraar que estos mismos usuarios tuvieran algunas dificultades para asimilar algunos de los cambios ms que nada visuales entre el sistema SOME para Visual Basic y el sistema SOME para web. Sin embargo, este rechazo debera ser cada vez menor, debido a que varias instituciones gubernamentales han comenzado a otorgar sus servicios bajo plataforma web, de alguna manera forzando a esta modernizacin del servicio pblico, lo cual llegado un punto debera ser algo cotidiano para todos los usuarios.

Imposibilidad de compartir archivos y recursos va red: La contratacin de un servicio de Internet banda ancha por comuna, y no de un enlace dedicado que permita agregar otra sub-red a la red actualmente instalada, presenta la desventaja de no permitir compartir archivos entre usuarios y ocupar recursos como impresoras entre dos sub-redes distintas.

Diferencias entre los lenguajes de programacin Visual Basic y Php: Algunos de los objetos de Visual Basic, como las grillas, las animaciones 7

sobre las grillas, etc, son elementos que no se encuentran disponibles en Php o su funcionamiento es distinto, por lo cual se deben buscar elementos sustitutivos para lograr generar interfaces de usuario lo ms parecidas posible al original.

Aumento de la centralizacin Informtica por parte del Estado: El Gobierno est invirtiendo con fuerza en lo referente a la centralizacin de la informacin mediante la implementacin de aplicaciones web a lo largo del pas. Esto podra llevar a que algunas de las aplicaciones actualmente utilizadas puedan querer ser reemplazadas por las del gobierno. Sin embargo, se debe tener en cuenta, que difcilmente las aplicaciones a nivel nacional van a cumplir los mismos requisitos de informacin que las aplicaciones locales, y viceversa. Adems, las necesidades de desarrollo de software del SSAN van ms all de las aplicaciones Urgencia, Farmacia y Some, por lo tanto, el contar con la plataforma web ser de utilidad de todas maneras.

2. SOFTWARE UTILIZADO

En esta seccin se detallan las aplicaciones utilizadas para llevar a cabo el trabajo de ttulo. Como es evidente, se detalla en profundidad las aplicaciones bsicas para la implementacin de la plataforma web, y a grandes rasgos el resto de programas. Se pretende de esta manera presentar una gua prctica y til para la posterior experiencia del lector en la instalacin y configuracin de los distintos paquetes.

Red Hat Linux 9: Sistema operativo gratuito basado en Unix. Sobre l se instala el servidor web, las libreras de Oracle y el intrprete de Php, lo cual permite crear scripts en Php que realicen consultas a la base de datos Oracle.

Macromedia Flash Player para Linux: Permite ver pelculas Flash en equipos con sistema operativo Linux. De esta manera, las pelculas creadas en formato Flash, podrn desplegarse sin problemas.

Java-Plugin para Linux: Permite ver aplicaciones basadas en Java en el sistema operativo Linux. Se debe instalar esta aplicacin para poder administrar remotamente el servidor Linux desde Webmin.

Webmin: Utilidad que permite conectarse remotamente a un servidor Linux, y administrarlo. Se puede utilizar por ejemplo para editar a distancia archivos de configuracin de Linux, o para subir nuevos scripts al servidor web.

Oracle 9i: Motor de base de datos, tanto en su versin para Windows como para Linux. Se instal tanto la base de datos total (para trabajar localmente), como las libreras (para conectarse remotamente a la base de datos).

Apache: Servidor web, tanto para Linux como para Windows.

Php: Lenguaje de programacin orientado a web, que puede ser embebido dentro de HTML. A diferencia de Javascript, que se ejecuta en la mquina cliente, Php se ejecuta en el servidor. Php puede hacer cualquier cosa que se pueda hacer con un script CGI, como procesar la informacin de formularios, generar pginas con contenidos dinmicos, o mandar y recibir cookies. Quizs la caracterstica ms potente y destacable de PHP es su soporte para una gran cantidad de bases de datos. Adems, puede ser ejecutado desde mltiples plataformas, como Windows, Linux, Macintosh, etc. Se utiliza para la creacin de scripts con consultas a la base de datos Oracle.

Macromedia Dreamweaver: Herramienta para disear pginas web en un entorno visual. Se utiliza para la creacin de los mens, tablas y formularios del sistema SOME, entre otros. 10

Macromedia Fireworks: Herramienta de edicin de imgenes. Se utiliza para crear collages, botones, etc, que luego son insertados desde Dreamweaver a las pginas web.

SWISHMax: Utilidad para crear pelculas flash, las cuales pueden ser insertadas en las pginas web. Se utiliz para crear una animacin en el frame superior del sitio principal del sistema SOME.

11

3. PLAN DE TRABAJO

En esta seccin se detallan cada una de las tareas realizadas, en orden cronolgico.

1. Mediante el modelo de casos de uso, se dio una visin general del sistema, para cada uno de sus mdulos. Se utiliz tambin el formato expandido y el curso normal de los eventos para especificar los casos de uso de una parte del sistema. Como se debi partir de un sistema ya hecho, se utiliz la ejecucin de la aplicacin y la toma de notas como herramienta de recopilacin de las funcionalidades que equivaldran a los requerimientos.

2. Luego se procedi a analizar el cdigo, esto, combinado nuevamente con la ejecucin del programa, sirvi para comenzar a identificar los elementos que seran representados como interfaces, los procesos necesarios para llevar a cabo las distintas tareas y las tablas en las cuales se almacenaban los datos. Toda esta informacin es explicada en el modelo de anlisis.

3. Se examin nuevamente el cdigo, esta vez con mayor detenimiento, de modo de tomar nota de cada uno de los campos sobre los cuales realmente se efectuaba alguna accin, ya sea de insercin, actualizacin, etc, pues se saba que haban campos que realmente no eran utilizados (esta informacin fue obtenida directamente del personal del Departamento de 12

Informtica del SSAN). De esta manera, se dispondra de un modelo de datos actualizado, detallado, y sobre el cual se haran los ajustes necesarios para la aplicacin web. Se especifican las tablas, sus relaciones, etc. Se modifican las tablas, agregando campos, registros, referentes al nuevo sistema y sus privilegios.

4. Se grafican mediante diagramas de flujo los distintos procesos del sistema, de modo de tener una visin ms clara de lo que se debera implementar.

5. Observando las interfaces en Visual Basic, se tom nota al respecto, graficando formularios, elementos de formulario, alertas, etc... de modo de servir de gua para los formularios que ms tarde se realizaran en Macromedia Dreamweaver.

6. Una vez concluida la parte terica, se procede a meterse de lleno en la parte prctica. Lo primero que se hace es bajar el sistema operativo Linux Red Hat 9, como as tambin un par de aplicaciones necesarias para el total funcionamiento del servidor web. Se baja adems la versin para Linux de Oracle 9i, Apache y Php para Windows y Linux, de modo de realizar las pruebas y configuraciones necesarias sin tener que utilizar directamente el servidor. En la etapa final, una vez realizadas con xito todas las pruebas correspondientes, se proceder a repetir todo, pero esta vez en el servidor real.

13

7. Se interioriza un poco ms en las aplicaciones de administracin de Oracle 9i, como Oracle Enterprise Manager Console y SQLPlus, de modo de poder aplicar los cambios que fueron detectados durante la etapa de anlisis. Se investiga sobre las instrucciones en Php para acceso a base de datos Oracle.

8. Se bajan e instalan las aplicaciones las versiones de prueba de Macromedia Dreamweaver MX, Macromedia Fireworks MX y SWISHMax. Herramientas que sern utilizadas para la implementacin de las interfaces.

9. Comienza la etapa de diseo. Se disean en primer lugar las imgenes que irn en el sitio web; la imagen de la pgina de inicio, la imagen en el frame superior, botones, etc. Una vez listos esos elementos, se procede a crear las pginas, utilizando principalmente tablas de distintos tamaos, colores, etc, como contenedores de los elementos del formulario, basndose en las interfaces diseadas anteriormente. Finalmente, se recurre nuevamente a la aplicacin SOME, esta vez para copiar el nombre de los campos de los formularios y sus propiedades (largo, valor), de Visual Basic, a los formularios recin creados en Dreamweaver MX.

10. Se procede a implementar funcionalidades bsicas como la autentificacin de usuario, la implementacin de sesiones para restringir el acceso a personal no autorizado, la manipulacin de elementos del formulario

14

mediante Javascript y Php, y despliegue de listados en ventanas de ayuda del tipo pop-up.

11. Se detallan los cdigos implementados de modo de servir para las futuras implementaciones y como gua de referencia para el lector.

15

4. ANALISIS DEL SISTEMA SOME

4.1. Visin general del Sistema SOME

Actualmente, el Sistema SOME se encuentra implementado en Visual Basic y est siendo utilizado por usuarios de los Hospitales de Angol y Victoria. La aplicacin interacta directamente con la base de datos creada bajo Oracle 9i y cuyos registros se encuentran almacenados en un arreglo de discos en el Departamento de Informtica del Hospital de Angol. Los privilegios de acceso al sistema se encuentran almacenados en la base de datos. Existen usuarios con privilegios de administrador, con acceso a todas las funcionalidades de la aplicacin, como usuarios con privilegios mucho ms restringidos.

El sistema SOME abarca distintas y variadas tareas:

Registrar y mantener la agenda mdica. Consultar la agenda mdica. Registrar y mantener el informe diario de atencin. Consultar el informe diario de atencin. Registrar y mantener las citas otorgadas a los pacientes. Consultar las citas. Registrar y mantener los egresos hospitalarios. Consultar los egresos hospitalarios. 16

Registrar y mantener las listas de espera (interconsultas). Consultar las interconsultas. Registrar y mantener el registro de hospitalizacin. Consultar el registro de hospitalizacin. Registrar y mantener el registro de pacientes. Consultar el registro de pacientes. Generar informes estadsticos. Registrar y mantener otros registros como el de especialistas, pacientes titulares, servicios, etc...

Consultar otros registros.

La figura 4.1. muestra una visin general de los casos de uso del Sistema SOME.

17

Figura 4.1. Visin general del sistema SOME.

18

4.2. Descripcin general de los casos de uso del sistema

Autentificar usuario: Se encarga de validar a los usuarios que ingresen por la pgina web, conducindolos a la pgina de inicio del sistema, o a un mensaje de error.

Registrar y mantener la agenda mdica: Se encarga de crear las agendas mdicas, mediante la fijacin de un calendario de atencin que luego ser llenado al otorgar citas a los pacientes. Se encarga tambin de agregar, trasladar o eliminar horas ya otorgadas, y finalmente, se encarga de eliminar una agenda por completo.

Consultar la agenda mdica: Permite consultar las agendas disponibles para un mdico durante un perodo de tiempo determinado, mediante el correlativo de la agenda o el cdigo del mdico. Se encarga adems, de desplegar una agenda determinada, con el calendario de atencin general, sealando qu horas han sido ya otorgadas, cuales han sido rechazadas y cuales han sido eliminadas.

Registrar y mantener el informe diario de atencin: Se encarga de generar el Informe Diario de Atencin, una hoja en la cual se listan todos los pacientes que van a ser atendidos en un da en particular y que es entregada al mdico en la maana del mismo da. La hoja es completada

19

con algunos datos por parte del mdico, estos datos son posteriormente ingresados al sistema, con lo que el Informe Diario es completado.

Consultar el Informe diario de atencin: Permite consultar por los pacientes atendidos un da en particular, para averiguar por ejemplo si el paciente efectivamente fue atendido o no.

Registrar y mantener las citas otorgadas a los pacientes: Permite otorgar citaciones a los pacientes, para un mdico en particular, eso s, no sin antes haber ingresado al paciente al registro de pacientes. Una vez otorgada la cita, se imprime un comprobante que es otorgado al paciente.

Consultar las citas: Mediante el correlativo de la citacin o el nmero de ficha del paciente se puede acceder directamente a la informacin de la citacin o al listado de citas otorgadas al paciente.

Registrar y mantener los egresos hospitalarios: Permite egresar los pacientes que han sido dados de alta.

Consultar los egresos hospitalarios: Permite consultar por los pacientes que ya han sido egresados.

20

Registrar y mantener las listas de espera (interconsultas): Permite llevar un monitoreo de las interconsultas del paciente, de modo de poder manejar datos como el tiempo de espera para el otorgamiento de una hora, etc...

Consultar las interconsultas: Permite buscar informacin respecto a las interconsultas de un paciente.

Registrar y mantener el registro de hospitalizacin: Permite registrar al paciente en el sistema, al momento de hospitalizarse. Tambin, se genera el informe de Egreso Hospitalario, el cual es llenado por el mdico, y que luego es entregado al usuario del sistema para ser ingresado mediante el Registro de Egreso Hospitalario.

Consultar el registro de hospitalizacin: Permite consultar el registro de hospitalizacin del paciente, y por ejemplo, volver a generar el informe de egreso hospitalario.

Registrar y mantener el registro de pacientes: Permite ingresar la informacin del paciente al sistema; nombres, apellidos, etnia, direccin, ocupacin, previsin, entre otros... Una vez ingresado al sistema, permite generar el carnet del paciente, y la cartula de la ficha.

21

Consultar el registro de pacientes: Mediante el nmero de carnet o la ficha del paciente, se puede acceder a la informacin ingresada mediante el registro de pacientes.

Generar informes estadsticos: Mediante parmetros de bsqueda, permite generar informes estadsticos de consultas en determinados servicios.

Registrar y mantener otros registros: Bajo esta categora se agrupan una serie de mantenciones como por ejemplo la mantencin de pacientes titulares, de especialidades clnicas, de servicios, etc... A continuacin se especifica brevemente de qu se trata cada una de ellas:

Mantencin de subespecialidades: Permite especificar las especialidades en las cuales se desempea un profesional.

Mantencin de especialidades: Permite agregar, modificar o eliminar los grupos de especialidades.

Mantencin de subespecialidades: Permite definir dentro de qu especialidad se encuentra una subespecialidad, como tambin, permite asociar un cdigo de prestacin para ella, el cual servir para su valorizacin.

22

Mantencin de diagnsticos: Permite ingresar, modificar o eliminar el registro de diagnsticos, especificados por nombre, cdigo y descripcin.

Mantencin de das feriados: Permite ingresar al sistema los das feriados durante el perodo anual, de modo de no aparecer como das disponibles de atencin en el calendario de las agendas.

Mantencin de especialidades por establecimiento: Permite ingresar o eliminar del sistema, las especialidades que se otorgan por establecimiento.

Mantencin de pacientes titulares: Permite mantener actualizado el registro de los pacientes titulares, o sea, los pacientes que se encuentran afiliados a Fonasa o alguna Isapre.

Mantencin de motivos de suspensin: Permite agregar, modificar o eliminar los motivos de suspensin de las atenciones, especificadas por cdigo y descripcin.

Mantencin de prestaciones: Permite ingresar al sistema las prestaciones, con su respectivo cdigo y descripcin entre otros, junto con la valorizacin monetaria tambin codificada.

Mantencin

especialidades

por

prestaciones:

Permite

asociar

especialidades a una prestacin determinada. 23

Mantencin de profesionales: Permite ingresar, modificar o eliminar del sistema los datos (cdigo, rut, nombres, apellidos, profesin, etc...) de un profesional.

Mantencin de profesiones: Permite ingresar, modificar o eliminar una profesin al sistema.

Mantencin de servicios: Permite mantener un registro de los servicios otorgados en un establecimiento.

Subespecialidades por establecimiento: Permite mantener un registro de las subespecialidades otorgadas por establecimiento.

Cerrar sesin: Se encarga de terminar la sesin del usuario autentificado.

24

4.3. Formato expandido y curso normal de eventos para los distintos casos de uso

Debido a la complejidad del sistema SOME, desde esta etapa en adelante, se enfocar el estudio en los siguientes mdulos: Autentificar usuario, Registrar y mantener agenda mdica, Consultar agenda mdica, Registrar y mantener pacientes, Consultar pacientes, Registrar y mantener citas, Consultar citas, Cerrar sesin.

Tabla 4.1. Descripcin caso de uso Autentificar usuario. Caso de Uso Descripcin Actores Precondiciones Flujo Normal Autentificar usuario El usuario solicita acceso al sistema, mediante el ingreso de un nombre de usuario y contrasea. Usuario comn. Que el usuario haya escrito accedido al sitio de la aplicacin mediante la direccin url correspondiente. (1) El sistema despliega una pgina solicitando el nombre de usuario y contrasea. (2) El usuario ingresa los datos solicitados y luego presiona el botn Entrar. (3) El sistema captura los datos ingresados y comprueba que el nombre de usuario y contrasea son correctos. (4) Si los datos son correctos el sistema muestra un men despleglable con los establecimientos que tienen acceso al sistema SOME. (5) El usuario selecciona el establecimiento correspondiente y presiona el botn Aceptar. (6) El sistema despliega la pgina de inicio del usuario autentificado, de lo contrario, despliega una pgina de error. Flujo Alternativo 1 (1) El sistema despliega una pgina solicitando el nombre de usuario y contrasea.

25

(2) El usuario presiona el botn Problemas para ingresar? . (3) El sistema despliega un formulario de contacto con el soporte de Informtica. (4) El usuario completa el formulario y presiona el botn Enviar. (5) El sistema enva el formulario mediante correo al encargado de Informtica y redirige al usuario a la pgina de inicio de la aplicacin. (6) El usuario ingresa su nombre y su clave y luego presiona el botn Entrar. (7) El sistema captura los datos ingresados y comprueba que el nombre de usuario y contrasea son correctos. (8) Si los datos son correctos el sistema muestra un men despleglable con los establecimientos que tienen acceso al sistema SOME. (9) El usuario selecciona el establecimiento correspondiente y presiona el botn Aceptar . (6) El sistema despliega la pgina de inicio del usuario autentificado, de lo contrario, despliega una pgina de error. Post condiciones Usuario Autentificado.

Tabla 4.2. Curso normal de eventos para Autentificar usuario. Accin del(os) Actor(es) (1) El usuario accede al sitio de la aplicacin tipeandp la url en el navegador. (2) El sistema despliega una pgina solicitando el nombre de usuario y contrasea. (3) El usuario ingresa los datos solicitados y luego presiona el botn Entrar . (4) Si los datos son correctos el sistema muestra un men despleglable con los establecimientos que tienen acceso al sistema SOME. (5) El usuario selecciona el establecimiento correspondiente y presiona el botn Aceptar . Respuesta del Sistema

26

(6) El sistema despliega la pgina de inicio del usuario autentificado, de lo contrario, despliega una pgina de error.

Tabla 4.3. Descripcin caso de uso Registrar y mantener la agenda mdica. Caso de Uso Descripcin Registrar y mantener la agenda mdica El usuario autentificado coordina el horario de atencin que tendr el mdico, durante un perodo de tiempo, como tambin modifica o elimina la agenda mdica. Actores Precondiciones Usuario autentificado. (1) Usuario debe haber sido autentificado. (2) Debe haber sido ingresada la informacin relativa al especialista, como a los servicios otorgados, para poder consultar al respecto. Flujo Normal (1) El usuario selecciona la opcin Crear agenda . (2) El sistema despliega un formulario de ingreso de informacin relacionada con el especialista al cual se le crear la agenda. (3) El usuario presiona el botn Buscar Especialistas Mdicos , para solicitar informacin respecto al cdigo del profesional. (4) El sistema entrega un listado con los cdigos, nombres y profesiones de los distintos especialistas. (5) El usuario hace click sobre el especialista elegido. (6) El sistema pasa esa informacin al formulario. (7) El usuario presiona el botn Consulta de Especialidades para obtener informacin respecto al programa asociado al especialista antes indicado. (8) El sistema realiza una bsqueda respecto a los programas asociados al especialista y despliega los resultados en una nueva ventana. (9) El usuario hace click en el programa elegido y esta informacin pasa al formulario automticamente. (10) El usuario selecciona horario de atencin: AM o PM y posteriormente ingresa la fecha de inicio y fin de la agenda. (11) El usuario presiona el botn Generar Calendario . (12) El sistema verifica que los campos necesarios han sido

27

llenados. Si falta alguno, se enva un mensaje de alerta. (13) El sistema despliega un calendario sobre el cual el usuario seleccionar las horas de atencin del especialista. (14) El usuario hace click en los check box que indican las horas disponibles y luego presiona el botn Crear agenda . (15) El sistema guarda la informacin referente a la agenda y al especialista en la base de datos. (16) El sistema notifica al usuario acerca del xito de la creacin de la nueva agenda. Flujo alternativo 1 (1) El usuario selecciona la opcin Eliminar agenda . (2) El sistema despliega un formulario de bsqueda del correlativo de la agenda. (3) El usuario presiona el botn Buscar Agendas Mdicas . (4) El sistema despliega un formulario de bsqueda de la agenda mdica. (5) El usuario selecciona algn parmetro de bsqueda y luego presiona el botn Buscar . (6) El sistema realiza una bsqueda en la base de datos respecto a las agendas disponibles para ese especialista y despliega el resultado. (7) El usuario selecciona la agenda que abarca el perodo necesitado. (8) El sistema pasa el correlativo al formulario. (9) El usuario presiona el botn Buscar . (10) El sistema despliega la agenda completa, en la cual todava no se han ingresado horas. (11) El usuario presiona el botn Eliminar agenda . (12) El sistema despliega un aviso preguntando: Est seguro que eliminar esta agenda? . (13) El usuario presiona S . (14) El sistema borra la informacin relativa a la agenda de la base de datos. (15) El sistema notifica al usuario acerca de la eliminacin de la agenda. Flujo alternativo 2 (1) El usuario selecciona la opcin Modificar agenda . (2) El sistema despliega un formulario de bsqueda del correlativo de la agenda.

28

(3) El usuario presiona el botn Buscar Agendas Mdicas . (4) El sistema despliega un formulario de bsqueda de la agenda mdica. (5) El usuario selecciona algn parmetro de bsqueda y luego presiona el botn Busca r . (6) El sistema realiza una bsqueda en la base de datos respecto a las agendas disponibles para ese especialista y despliega el resultado. (7) El usuario selecciona la agenda que abarca el perodo necesitado. (8) El sistema pasa el correlativo al formulario. (9) El usuario presiona el botn Buscar . (10) El sistema despliega la agenda, con los bloques horarios modificables. (11) El usuario modifica los bloques horarios, ya sea agregando, trasladando o eliminando horas. (12) El usuario presiona el botn Modificar agenda . (13) El sistema verifica que los campos necesarios han sido llenados. Si falta alguno, se enva un mensaje de alerta. (14) El sistema guarda los cambios de la agenda en la base de datos. (15) El sistema enva un mensaje al usuario: Se ha modificado la agenda N.... Post condiciones Agenda creada.

Tabla 4.4. Curso normal de eventos para Registrar y mantener agenda mdica. Accin del(os) Actor(es) (1) El usuario selecciona la opcin Crear agenda . (2) El sistema despliega un formulario de ingreso de informacin relacionada con el especialista al cual se le crear la agenda. (3) El usuario presiona el botn Buscar Especialistas Mdicos , para solicitar informacin respecto al cdigo del profesional. (4) El sistema entrega un listado con los Respuesta del Sistema

29

cdigos, nombres y profesiones de los distintos especialistas. (5) El usuario hace click sobre el especialista elegido. (6) El sistema pasa esa informacin al formulario. (7) El usuario presiona el botn Consu lta de Especialidades para obtener informacin respecto al programa asociado al especialista antes indicado. (8) El sistema realiza una bsqueda respecto a los programas asociados al especialista y despliega los resultados en una nueva ventana. (9) El usuario hace click en el programa elegido y esta informacin pasa al formulario automticamente. (10) El usuario selecciona horario de atencin: AM o PM y posteriormente ingresa la fecha de inicio y fin de la agenda. (11) El usuario presiona el botn Generar Calendario . (12) El sistema verifica que todos los campos han sido llenados. Si falta algn campo, se enva un mensaje de alerta. (13) El sistema despliega un calendario sobre el cual el usuario seleccionar las horas de atencin del especialista. (14) El usuario hace click en los check box que indican las horas disponibles y luego presiona el botn Crear agenda . (15) El sistema guarda la informacin referente a la agenda y al especialista en la base de datos. (16) El sistema notifica al usuario acerca del xito de la creacin de la nueva agenda.

30

Tabla 4.5. Descripcin caso de uso Consultar agendas mdicas. Caso de Uso Descripcin Actores Precondiciones Consultar agendas mdicas El usuario solicita informacin respecto a la agenda mdica de un determinado especialista. Usuario autentificado. (1) Usuario debe haber sido autentificado. (2) Debe haber sido ingresada la informacin relativa a los especialistas, como a los servicios otorgados, para poder consultar al respecto. (3) La agenda debe haber sido creada. Flujo Normal (1) El usuario selecciona la opcin Consultar agendas mdicas . (2) El sistema despliega un solicitando informacin respecto al especialista y al perodo de fechas se debe buscar. (3) El usuario presiona el botn Buscar Especialistas Mdicos para el cdigo del especialista. (4) El sistema despliega un listado con los especialistas mdicos. (5) El usuario hace click sobre alguno de los especialistas. (6) El sistema pasa esa informacin al formulario. (7) El usuario selecciona horario de atencin: AM o PM y posteriormente ingresa la fecha de inicio y fin de la agenda. (8) El usuario presiona el botn Buscar para obtener listado de agendas disponibles. (9) El sistema verifica que los campos necesarios hayan sido llenados. Si as ha sido, pasa a (10), de lo contrario, enva un mensaje de error indicando que se llenen los campos faltantes. (10) El sistema busca en la base de datos por alguna agenda que cumpla con los requisitos, y despliega el resultado correspondiente. (11) El usuario hace click sobre la agenda deseada. (12) El sistema despliega el calendario de la agenda indicando las horas libres, ocupadas y rechazadas.

31

Tabla 4.6. Curso normal de eventos de Consultar agendas mdicas. Accin del(os) Actor(es) (1) El usuario selecciona la opcin Consultar agendas mdicas . (2) El sistema despliega un solicitando informacin respecto al especialista y al perodo de fechas se debe buscar. (3) El usuario presiona el botn Buscar Especialistas Mdicos para el cdigo del especialista. (4) El sistema despliega un listado con los especialistas mdicos. (5) El usuario hace click sobre alguno de los especialistas. (6) El sistema pasa esa informacin al formulario. (7) El usuario selecciona horario de atencin: AM o PM y posteriormente ingresa la fecha de inicio y fin de la agenda. (8) El usuario presiona el botn Buscar para obtener listado de agendas disponibles. (9) El sistema verifica que los campos necesarios hayan sido llenados. Si as ha sido, pasa a (10), de lo contrario, enva un mensaje de error indicando que se llenen los campos faltantes. (10) El sistema busca en la base de datos por alguna agenda que cumpla con los requisitos, y despliega el resultado correspondiente. (11) El usuario hace click sobre la agenda deseada. (12) El sistema despliega el calendario de la agenda indicando las horas libres, ocupadas y rechazadas. Respuesta del Sistema

32

Tabla 4.7. Descripcin caso de uso Registrar y mantener citas. Caso de Uso Descripcin Actores Precondiciones Flujo Normal Registrar y mantener citas Responsable de asignar las citas, ya sea para pacientes nuevos como para pacientes que estn en control. Usuario autentificado. (1) Usuario debe haber sido autentificado. (2) Debe estar ingresada la ficha del paciente. (1) El usuario selecciona la opcin Citacin de pacientes . (2) El sistema despliega un formulario de ingreso de informacin relacionada con las citas otorgadas al paciente. (3) El usuario presiona Consulta de Pacient es para buscar la ficha de un paciente. (4) El sistema abre una nueva ventana con un formulario de bsqueda. (5) El usuario busca por alguno de los parmetros determinados y luego presiona Buscar . (6) El sistema despliega un listado con los pacientes que satisfacen los parmetros de bsqueda. (7) El usuario selecciona alguno de los pacientes del listado haciendo click sobre el nmero de ficha. (8) El sistema pasa los datos del paciente al formulario de citacin. (9) El usuario presiona el botn Consul ta de Especialidades . (10) El sistema despliega una nueva ventana con un formulario de bsqueda de los cdigos de las especialidades. (11) El usuario hace click en la especialidad. (12) El sistema pasa esta informacin al formulario. (13) El usuario presiona el botn Consulta de Especialistas Mdicos . (14) El sistema despliega una nueva ventana con un formulario de bsqueda de los cdigos de los Mdicos. (15) El usuario selecciona el mdico que otorga la especialidad elegida con anterioridad. (16) El sistema pasa esa informacin al formulario. (17) El usuario llena el resto de items y finalmente presiona el botn Buscar disponibilidad de agenda dentro de un rango determinado de tiempo. (18) El sistema despliega una pgina con algunos datos estadsticos

33

de la agenda, especficamente cantidad de horas otorgadas versus las horas disponibles, junto con las horas disponibles de atencin para el especialista. (19) El usuario selecciona una y slo una de las horas chequeando el casillero de verificacin a un costado y a continuacin presiona el botn Seleccionar Hora . (20) El sistema verifica que los campos necesarios han sido llenados. Si falta alguno, se enva un mensaje de alerta. (21) El sistema enva un mensaje notificando al usuario respecto al otorgamiento de la cita. (22) El sistema despliega un mensaje respecto a si se desea imprimir un comprobante para ser entregado al paciente. (23) El usuario presiona el botn S . (24) El sistema enva a la impresora el carnet de atencin del paciente. Flujo alternativo 1 (1) El usuario selecciona la opcin Citaciones espontneas . (2) El sistema despliega un formulario de ingreso de informacin para aquellas personas que no tienen ningn tipo de citacin en una determinada especialidad, pero que a expresa voluntad del mdico las puede atender sin necesidad de que tengan que obtener una. (3) El usuario presiona el botn Consulta de Especialistas Mdicos para obtener informacin sobre los profesionales. (4) El sistema despliega una nueva ventana con el listado de todos los especialistas. (5) El usuario hace click sobre un especialista. (6) El sistema pasa el valor del cdigo asociado al especialista al formulario. (7) El usuario presiona el botn Consulta de Especialidades para obtener informacin sobre las especialidades asociadas al especialista anteriormente seleccionado. (8) El sistema despliega una nueva ventana con el listado de las especialidades asociadas al profesional. (9) El usuario hace click sobre alguna de las especialidades. (10) El sistema pasa el valor del cdigo asociado a la especialidad al formulario. (11) El usuario ingresa el da para el cual solicita una hora, el nmero de ficha del paciente, y su nombre entre otros.

34

(12) El usuario presiona el botn Grabar para guardar los datos. (13) El sistema verifica que los campos necesarios han sido llenados. Si falta alguno, se enva un mensaje de alerta. (14) El sistema ingresa la informacin a la base de datos, y posteriormente informa al usuario respecto al otorgamiento de la citacin espontnea. Flujo alternativo 2 (1) El usuario selecciona la opcin Reasignacin de citaciones . (2) El usuario presiona el botn Consulta de Especialidades para obtener informacin sobre las especialidades asociadas al especialista anteriormente seleccionado. (3) El sistema despliega una nueva ventana con el listado de las especialidades asociadas al profesional. (4) El usuario hace click sobre alguna de las especialidades. (5) El sistema pasa el valor del cdigo asociado a la especialidad al formulario. (6) El usuario presiona el botn Consulta de Especialistas Mdicos para obtener informacin sobre los profesionales. (7) El sistema despliega una nueva ventana con el listado de todos los especialistas. (8) El usuario hace click sobre un especialista. (9) El sistema pasa el valor del cdigo asociado al especialista al formulario. (10) El usuario presiona el botn Buscar citas otorgadas . (11) El sistema despliega un listado con los das en los cuales el mdico tiene horas asignadas, junto con algunos datos del paciente como ficha y nombre. (12) El usuario selecciona el paciente al cual desea reasignarle la hora. (13) El sistema pasa la informacin al formulario. (14) El usuario ingresa algunos datos como motivo cambio de la cita y especialidad. Finalmente presiona el botn Buscar hora . (15) El sistema despliega los horarios disponibles. (16) El usuario selecciona alguno de los horarios disponibles marcando alguna de las casillas de verificacin y presiona el botn Grabar . (17) El sistema verifica que los campos necesarios han sido llenados. Si falta alguno, se enva un mensaje de alerta.

35

(18) El sistema guarda la informacin en la base de datos y posteriormente informa al usuario respecto a la creacin de la nueva cita. Flujo alternativo 3 (1) El usuario hace click en Consultar Citacin . (2) El sistema despliega un formulario solicitando el correlativo de la citacin. (3) El usuario presiona el botn Consulta de Horas. (4) El sistema despliega un formulario de bsqueda por parmetros en una nueva ventana. (5) El usuario selecciona alguno de los parmetros y luego presiona el botn Buscar . (6) El sistema busca los registros que cumplan con los parmetros requeridos y despliega el resultado. (7) El usuario selecciona la hora correspondiente haciendo click sobre el correlativo. (8) El sistema cierra la ventana con el formulario de bsqueda, y pasa el correlativo al formulario principal. (9) El usuario presiona el botn Buscar . (10) El sistema busca en la base de datos y luego despliega el formulario de Citacin de pacientes con los datos de la cita. (11) El usuario hace click sobre el botn Eliminar . (12) El sistema despliega un mensaje de confirmacin de la eliminacin de la cita. (13) El usuario confirma la eliminacin presionando el botn S . (14) El sistema elimina los registros de la base de datos. (15) El sistema enva un mensaje de confirmacin al usuario respecto del xito de la eliminacin de la cita. Flujo alternativo 4 (1) El usuario hace click en Consultar Citacin . (2) El sistema despliega un formulario solicitando el correlativo de la citacin. (3) El usuario presiona el botn Consulta de Horas. (4) El sistema despliega un formulario de bsqueda por parmetros en una nueva ventana. (5) El usuario selecciona alguno de los parmetros y luego presiona el botn Buscar . (6) El sistema busca los registros que cumplan con los parmetros requeridos y despliega el resultado.

36

(7) El usuario selecciona la hora correspondiente haciendo click sobre el correlativo. (8) El sistema cierra la ventana con el formulario de bsqueda, y pasa el correlativo al formulario principal. (9) El usuario presiona el botn Buscar . (10) El sistema busca en la base de datos y luego despliega el formulario de Citacin de pacientes con los datos de la cita. (11) El usuario realiza los cambios correspondientes. (12 El usuario hace click sobre el botn Modificar . (13) El sistema verifica que los campos necesarios han sido llenados. Si falta alguno, se enva un mensaje de alerta. (14) El sistema elimina los registros de la base de datos. (15) El sistema enva un mensaje de confirmacin al usuario respecto del xito de la modificacin de la cita. Flujo alternativo 5 (1) El usuario hace click en Consultar Horas Eliminadas . (2) El sistema despliega un formulario de bsqueda por parmetros en una nueva ventana. (3) El usuario selecciona alguno de los parmetros y luego presiona el botn Buscar . (4) El sistema busca los registros que cumplan con los parmetros requeridos y despliega el resultado. (5) El usuario presiona el botn Imprimir . (6) El sistema enva a impresora el listado de horas eliminadas. Post condiciones Cita otorgada.

Tabla 4.8. Curso normal de eventos para Registrar y mantener citas. Accin del(os) Actor(es) (1) El usuario selecciona la opcin Citacin de pacientes . (2) El sistema despliega un formulario de ingreso de informacin relacionada con las citas otorgadas al paciente. (3) El usuario presiona Consulta de Pacientes para buscar la ficha de un paciente. Respuesta del Sistema

37

(4) El sistema abre una nueva ventana con un formulario de bsqueda. (5) El usuario busca por alguno de los parmetros determinados y luego presiona Buscar . (6) El sistema despliega un listado con los pacientes que satisfacen los parmetros de bsqueda. (7) El usuario selecciona alguno de los pacientes del listado haciendo click sobre el nmero de ficha. (8) El sistema pasa los datos del paciente al formulario de citacin. (9) El usuario presiona el botn Consulta de Especialidades . (10) El sistema despliega una nueva ventana con un formulario de bsqueda de los cdigos de las especialidades. (11) El usuario hace click en la especialidad. (12) El sistema pasa esta informacin al formulario. (13) El usuario presiona el botn Consult a de Especialistas Mdicos . (14) El sistema despliega una nueva ventana con un formulario de bsqueda de los cdigos de los Mdicos. (15) El usuario selecciona el mdico que otorga la especialidad elegida con anterioridad. (16) El sistema pasa esa informacin al formulario. (17) El usuario llena el resto de items y finalmente presiona el botn Buscar disponibilidad de agenda dentro de un rango determinado de tiempo. (18) El sistema despliega una pgina con algunos datos estadsticos de la agenda, especficamente cantidad de horas

38

otorgadas versus las horas disponibles, junto con las horas disponibles de atencin para el especialista. (19) El usuario selecciona una y slo una de las horas chequeando el casillero de verificacin a un costado y a continuacin presiona el botn Seleccionar Hora . (20) El sistema verifica que los campos necesarios han sido llenados. Si falta alguno, se enva un mensaje de alerta. (21) El sistema enva un mensaje notificando al usuario respecto al otorgamiento de la cita. (22) El sistema despliega un mensaje respecto a si se desea imprimir un comprobante para ser entregado al paciente. (23) El usuario presiona el botn S . (24) El sistema enva a la impresora el carnet de atencin del paciente.

Tabla 4.9. Descripcin caso de uso Consultar citas. Caso de Uso Descripcin Actores Precondiciones Consultar citas Lista las horas que han sido otorgadas por un especialista determinado. Usuario autentificado. (1) Que el usuario haya sido autentificado. (2) Que la agenda haya sido creada. (3) Que hayan sido otorgadas algunas horas. Flujo Normal (1) El usuario selecciona la opcin Consulta de horas . (2) El sistema despliega un formulario de bsqueda por varios parmetros como por ejemplo, por especialidad, por fecha, por mdico, etc... (3) El usuario selecciona algn parmetro de los anteriores y presiona el botn Buscar .

39

(4) El sistema despliega un listado con el nombre del paciente, nmero de ficha, fecha de la cita, entre otros. (5) El usuario presiona Imprimir . (6) El sistema enva a impresora el listado de pacientes a atender por el especialista. Flujo Alternativo 1 (1) El usuario selecciona la opcin Consulta de horas eliminadas . (2) El sistema despliega un formulario de bsqueda por varios parmetros como por ejemplo, por especialidad, por fecha, por mdico, etc... (3) El usuario selecciona algn parmetro de los anteriores y presiona el botn Buscar . (4) El sistema despliega un listado de las horas eliminadas, con el nombre del paciente, nmero de ficha, fecha de la cita, entre otros. (5) El usuario presiona Imprimir . (6) El sistema enva a impresora el listado de horas eliminadas.

Tabla 4.10. Curso normal de eventos Consultar citas. Accin del(os) Actor(es) (1) El usuario selecciona la opcin Consulta de horas . (2) El sistema despliega un formulario de bsqueda por varios parmetros como por ejemplo, por especialidad, por fecha, por mdico, etc... (3) El usuario selecciona algn parmetro de los anteriores y presiona el botn Buscar . (4) El sistema despliega un listado con el nombre del paciente, nmero de ficha, fecha de la cita, entre otros. (5) El usuario presiona Imprimir . (6) El sistema enva a impresora el listado. Respuesta del Sistema

40

Tabla 4.11. Descripcin caso de uso Registrar y mantener pacientes. Caso de Uso Descripcin Actores Precondiciones Flujo Normal Registrar y mantener pacientes Registra los pacientes que son ingresados por el SOME a travs de la ficha. Usuario autentificado. (1) Usuario debe haber sido autentificado. (1) El usuario selecciona la opcin Crear Registro de pacientes . (2) El sistema despliega un formulario de ingreso de informacin relacionada con el paciente. (3) El usuario ingresa los datos personales del paciente, como nombres, apellidos, rut, fecha de nacimiento, etc y los datos previsionales. Para terminar presiona el botn Grabar . (4) El sistema verifica que el rut est correcto, si es as, graba los datos del paciente y notifica al usuario, de lo contrario, enva un mensaje de error. (5) El sistema verifica que los campos necesarios han sido llenados. Si falta alguno, se enva un mensaje de alerta. (6) El sistema despliega un mensaje de confirmacin de la creacin del registro de paciente. (7) El sistema despliega un mensaje consultando respecto a si se desea imprimir el carnet de paciente. (8) El usuario presiona el botn S . (9) El sistema enva a impresora el carnet de paciente, de lo contrario pasa a (10). (10) El sistema despliega un mensaje consultando respecto a si se desea imprimir la cartula de la ficha. (11) El usuario presiona el botn S . (12) El sistema enva a impresora la cartula de la ficha. Flujo alternativo 1 (1) El usuario selecciona la opcin Eliminar paciente . (2) El sistema despliega un formulario de ingreso de informacin para la bsqueda, con los parmetros nombres rut o nmero de ficha. (3) El usuario presiona el botn Consulta de Pacientes . (4) Si el usuario presion el botn Consulta de pacientes, el sistema despliega un formulario de bsqueda de las fichas de los pacientes en una nueva ventana, de lo contrario, pasa a (). (5) El usuario busca la ficha dependiendo de algunos parmetros y

41

presiona el botn Buscar . (6) El sistema hace click sobre el paciente requerido. (7) El sistema cierra la ventana pequea, y pasa el nmero de ficha al formulario principal. (8) El usuario presiona el botn Buscar , ya sea por el nmero de ficha o por el rut. (9) El sistema despliega el registro del paciente. (7) El usuario presiona el botn Elim inar . (8) El sistema enva un mensaje confirmando la eliminacin del registro del paciente. (9) El usuario presiona S para borrar al paciente o Cancelar para volver atrs. (10) Si el usuario presiona S , el sistema borra los datos del paciente de la base de datos y confirma la eliminacin al usuario, de lo contrario, el sistema contina desplegando la informacin del paciente. Flujo alternativo 2 (1) El usuario selecciona la opcin Modificar datos del paciente . (2) El sistema despliega un formulario de ingreso de informacin para la bsqueda, con los parmetros nombres rut o nmero de ficha. (3) El usuario presiona el botn Consulta de Pacientes . (4) Si el usuario presion el botn Consulta de pacientes, el sistema despliega un formulario de bsqueda de las fichas de los pacientes en una nueva ventana, de lo contrario, pasa a (). (5) El usuario busca la ficha dependiendo de algunos parmetros y presiona el botn Buscar . (6) El sistema hace click sobre el paciente requerido. (7) El sistema cierra la ventana pequea, y pasa el nmero de ficha al formulario principal. (8) El usuario presiona el botn Buscar , ya sea por el nmero de ficha o por el rut. (9) El sistema despliega el registro del paciente. (10) El usuario realiza las modificaciones que desee, y luego presiona el botn Modificar . (11) El sistema guarda la informacin en la base de datos y notifica al usuario.

42

Tabla 4.12. Curso normal de eventos para Registrar y mantener pacientes. Accin del(os) Actor(es) (1) El usuario selecciona la opcin Crear Registro de pacientes . (2) El sistema despliega un formulario de ingreso de informacin relacionada con el paciente. (3) El usuario ingresa los datos personales del paciente, como nombres, apellidos, rut, fecha de nacimiento, etc y los datos previsionales. Para terminar presiona el botn Grabar . (4) El sistema verifica que el rut est correcto, si es as, graba los datos del paciente y notifica al usuario, de lo contrario, enva un mensaje de error. (5) El sistema verifica que los campos necesarios han sido llenados. Si falta alguno, se enva un mensaje de alerta. (6) El sistema despliega un mensaje de confirmacin de la creacin del registro de paciente. (7) El sistema despliega un mensaje consultando respecto a si se desea imprimir el carnet de paciente. (8) El usuario presiona el botn S . (9) El sistema enva a impresora el carnet de paciente, de lo contrario pasa a (10). (10) El sistema despliega un mensaje consultando respecto a si se desea imprimir la cartula de la ficha. (11) El usuario presiona el botn S . (12) El sistema enva a impresora la cartula de la ficha. Respuesta del Sistema

43

Tabla 4.13. Descripcin caso de uso Consultar registro de pacientes. Caso de Uso Descripcin Actores Precondiciones Flujo Normal Consultar registro de pacientes El usuario autentificado finaliza su sesin. Usuario autentificado. (1) Que el usuario haya sido autentificado. (2) Que haya sido creado el registro de pacientes. (1) El usuario selecciona la opcin C onsultar Registro de Pacientes . (2) El sistema despliega un formulario de ingreso de informacin para la bsqueda, con los parmetros nombres rut o nmero de ficha. (3) El usuario presiona el botn Consulta de Pacientes . (4) Si el usuario presion el botn Consulta de pacientes, el sistema despliega un formulario de bsqueda de las fichas de los pacientes en una nueva ventana, de lo contrario, pasa a (8). (5) El usuario busca la ficha dependiendo de algunos parmetros y presiona el botn Buscar . (6) El sistema hace click sobre el paciente requerido. (7) El sistema cierra la ventana pequea, y pasa el nmero de ficha al formulario principal. (8) El usuario presiona el botn Buscar , ya sea por el nmero de ficha o por el rut. (9) El sistema despliega el registro del paciente. (10) El usuario presiona el botn Imprimir . (11) El sistema despliega un mensaje consultando respecto a si se desea imprimir el carnet de paciente. (12) El usuario presiona el botn S . (13) El sistema enva a impresora el carnet de paciente, de lo contrario pasa a (14). (14) El sistema despliega un mensaje consultando respecto a si se desea imprimir la cartula de la ficha. (15) El usuario presiona el botn S . (16) El sistema enva a impresora la cartula de la ficha.

44

Tabla 4.14. Curso normal de eventos para Consultar registro de pacientes. Accin del(os) Actor(es) (1) El usuario selecciona la opcin Consultar Registro de Pacientes . (2) El sistema despliega un formulario de ingreso de informacin para la bsqueda, con los parmetros nombres rut o nmero de ficha. (3) El usuario presiona el botn Consulta de Pacientes . (4) Si el usuario presion el botn Consulta de pacientes, el sistema despliega un formulario de bsqueda de las fichas de los pacientes en una nueva ventana, de lo contrario, pasa a (8). (5) El usuario busca la ficha dependiendo de algunos parmetros y presiona el botn Buscar . (6) El sistema hace click sobre el paciente requerido. (7) El sistema cierra la ventana pequea, y pasa el nmero de ficha al formulario principal. (8) El usuario presiona el botn Buscar , ya sea por el nmero de ficha o por el rut. (9) El sistema despliega el registro del paciente. (10) El usuario presiona el botn Imprimir . (11) El sistema despliega un mensaje consultando respecto a si se desea imprimir el carnet de paciente. (12) El usuario presiona el botn S . (13) El sistema enva a impresora el carnet de paciente, de lo contrario pasa a (14). (14) El sistema despliega un mensaje consultando respecto a si se desea imprimir la cartula de la ficha. Respuesta del Sistema

45

(15) El usuario presiona el botn S . (16) El sistema enva a impresora la cartula de la ficha.

46

4.4. Modelo de Anlisis

El modelo de anlisis tiene su elaboracin mediante la transformacin del modelo de casos de uso, con tal de especificar de manera detallada los requisitos y funciones del sistema. Este modelo, es una base para la etapa de diseo, ya que se puede visualizar el proceso y los tipos de entidades e interfaces que participan en la aplicacin.

Como se explic anteriormente, para una mejor comprensin del sistema a desarrollar, y debido a la complejidad del mismo, se presenta el modelo de anlisis centrado en la Agenda Mdica, el Registro de Pacientes y la Citacin de Pacientes, entidades analizadas anteriormente en el modelo de casos de uso, especficamente en los casos de uso:

Autentificar Usuario. Registrar y Mantener la Agenda Mdica. Consultar la Agenda Mdica. Registrar y Mantener el Registro de Pacientes. Consultar el Registro de Pacientes. Registrar y Mantener la Citacin de Pacientes. Consultar la Citacin de Pacientes. Cerrar Sesin.

47

El anlisis se har sobre los casos de uso mencionados anteriormente, pero dividido en mdulos, debido a la complejidad de los mismos. Se utilizar la descripcin dada en el formato expandido explicado en la seccin anterior.

Figura 4.2. Modelo de anlisis para Autentificar usuario.

48

Figura 4.3. Modelo de anlisis para Crear agenda.

49

Figura 4.4. Modelo de anlisis para Eliminar agenda.

50

Figura 4.5. Modelo de anlisis para Modificar agenda.

Figura 4.6. Modelo de anlisis para Consultar agenda.

51

Figura 4.7. Modelo de anlisis para Crear citacin.

52

Figura 4.8. Modelo de anlisis para Eliminar citacin.

Figura 4.9. Modelo de anlisis para Modificar citacin.

53

Figura 4.10. Modelo de anlisis para Consultar horas.

Figura 4.11. Modelo de anlisis para Consultar horas eliminadas.

54

Figura 4.12. Modelo de anlisis para Crear registro de pacientes.

Figura 4.13. Modelo de anlisis para Eliminar registro de pacientes.

55

Figura 4.14. Modelo de anlisis para Modificar registro de pacientes.

Figura 4.15. Modelo de anlisis para Consultar registro de pacientes.

56

Figura 4.16. Modelo de anlisis para Cerrar sesin.

57

4.5. Modelo Relacional

El modelo relacional se refiere a las bases de datos donde todos los datos visibles al usuario estn organizados estrictamente como tablas de valores, y donde todas las operaciones de la base de datos operan sobre stas tablas. La definicin est destinada especficamente a eliminar estructuras tales como los punteros incorporados de una base de datos jerrquica o en red. El modelo relacional es un intento de simplificar la estructura de las bases de datos. Elimina las estructuras explcitas padre/hijo de las bases de datos basadas en el modelo jerrquico, y en su lugar representa todos los datos.

4.5.1. Depuracin del modelo de datos

Para verificar si existan datos redundantes en las tablas, o datos que sencillamente no eran utilizados, se procedi a examinar formulario a formulario de la aplicacin en Visual Basic, cada una de las consultas a la base de datos, para determinar con claridad qu campos estaban realmente involucrados en los movimientos de datos. Una vez organizada toda la informacin en tablas y campos, se procedi a organizarla de manera de analizar los posibles cambios que podran hacerse sobre ellas. La modificacin principal que tuvo que enfrentar el modelo de datos anterior, fue la incorporacin de nuevos campos que representaran el nuevo sistema, los cdigos asociados al sitio, los usuarios autorizados para utilizar la aplicacin va web, etc. Es posible que cuando se

58

implemente la totalidad del sistema, se deban aplicar nuevos cambios, pero stos sern hechos sobre tablas actualizadas y sin campos redundantes.

4.5.2. Detalle de modificaciones al modelo de datos

A continuacin se detallan las modificaciones realizadas a la base de datos. Se agregan los siguientes valores en la tabla SS_TSISTEMAS (tabla que contiene informacin relativa a los sistemas implementados actualmente en el SSAN, por ejemplo, SOME, URGENCIA, FARMACIA, etc), relativos al nuevo sistema para plataforma web:

COD_SISTEMA: WEBSOME. NOM_SISTEMA: SISTEMA SOME PARA WEB. IND_ESTADO: V (vigente).

En la tabla SS_TRECURSOS (la cual contiene el cdigo de los sistemas asociados a un usuario) se agrega lo siguiente:

COD_USUARI: Todos los usuarios a los cuales se les ha asignado el sistema Some para web. COD_RECURSO: Por ejemplo SOMEPAG1, es el cdigo del men asociado a un determinado tipo de usuario. COD_SISTEMA: WEBSOME.

59

En la tabla SS_TRECURSO se agreg la informacin relacionada con el recurso en especfico (pgina):

COD_RECURSO:SOMEPAG1. NOM_RECURSO:SITIO WEB PARA ADMINISTRADOR DE SISTEMA NOM_PANTALLA: MENU1.PHP (pgina para el frame izquierdo del sitio, contiene enlaces a las pginas permitidas para el usuario).

En la tabla GG_TPROFESION, se agreg un nuevo campo, para especificar qu profesionales pertenecan al rea de la salud, de lo contrario, al realizar una consulta por los profesionales se listaban todos los profesionales de un establecimiento, no slo los del rea de la salud. Se agreg entonces el campo COD_ARPROF, para especificar el cdigo del rea del profesional.

Se agreg la tabla GG_TARPROFESION, que contendr detalles respecto al rea de trabajo del profesional. Contiene los siguientes campos:

COD_ARPROF: MEDI (por ejemplo, para denotar a los profesionales del rea de la salud). COD_DESCRIPCION: Para describir el rea del profesional. IND_ESTADO: Para denotar si un registro se encuentra activo y vigente (V), o eliminado (E).

60

4.5.3. Descripcin de tablas

En esta seccin se presenta una descripcin de las tablas actualizadas, para los mdulos Agenda Mdica, Registro de Pacientes y Citacin de Pacientes. Los campos destacados en negritas con un asterisco corresponden a los campos claves. Los campos en negritas corresponden a claves forneas. Adems, se presenta una visin general de las principales tablas del sistema SOME (Figura 4.43).

GG_TAGENDA: Almacena la informacin relacionada con la agenda, como el cdigo del profesional, las fechas de inicio y trmino, el cdigo de la especialidad y el perodo de atencin, ya sea A.M. o P.M.

Figura 4.17. Estructura de la tabla GG_TAGENDA.

61

GG_TBLOQUE: Almacena el nmero de agenda, junto con los bloques del calendario de atencin del mdico.

Figura 4.18. Estructura de la tabla GG_TBLOQUE.

GG_TCOMUNA: Almacena entre otros los cdigos y nombres de las comunas.

Figura 4.19. Estructura de la tabla GG_TCOMUNA.

GG_TDATPREV: Almacena entre otros, los nombres y cdigos de las previsiones.

Figura 4.20. Estructura de la tabla GG_TDATPREV.

62

GG_TDIAGNO: Almacena entre otros, los nombres y los cdigos de los diagnsticos.

Figura 4.21. Estructura de la tabla GG_TDIAGNO.

GG_TESPEC: Almacena entre otros, la especialidad, el nombre de la especialidad, el cdigo de la prestacin, y el cdigo del grupo de especialidades al cual pertenece.

Figura 4.22. Estructura de la tabla GG_TESPEC.

GG_TESPRO: Asocia el cdigo del profesional con el cdigo de su especialidad.

Figura 4.23. Estructura de la tabla GG_TESPRO.

63

GG_TESTABL: Almacena los datos de los establecimientos, como por ejemplo el cdigo, nombre del establecimiento, direccin, etc.

Figura 4.24. Estructura de la tabla GG_TESTABL.

GG_TPAIS: Almacena entre otros, el cdigo y los nombres de los pases.

Figura 4.25. Estructura de la tabla GG_TPAIS.

GG_TPREES: Relaciona el cdigo de la especialidad con el cdigo de la prestacin.

Figura 4.26. Estructura de la tabla GG_TPREES.

GG_TPRESTA: Almacena entre otros el cdigo de la prestacin, el nombre, la descripcin y su valoracin en pesos. 64

Figura 4.27. Estructura de la tabla GG_TPRESTA.

GG_TPROFESION: Almacena entre otros, el cdigo de la profesin y el nombre.

Figura 4.28. Estructura de la tabla GG_TPROFESION.

GG_TPROFESIONAL: Almacena entre otros, el cdigo del profesional, junto con su nombre, apellidos, rut y el cdigo de su profesin.

Figura 4.29. Estructura de la tabla GG_TPROFESIONAL.

GG_TRECHAZO: Almacena entre otros, el cdigo de rechazos, junto a su descripcin.

65

Figura 4.30. Estructura de la tabla GG_TRECHAZO.

GG_TSERDEP: Almacena entre otros, los cdigos de los distintos servicios (Medicina y UCP, Ciruga, Lactantes, etc...) junto con su descripcin.

Figura 4.31. Estructura de la tabla GG_TSERPEP.

GG_TSESPEST: Almacena entre otros, el cdigo de la especialidad, su ubicacin y el cdigo del grupo de especialidades al cual pertenece.

Figura 4.32. Estructura de la tabla GG_TSESPEST.

SO_TECITAS: Almacena las citaciones, entre otros datos como la fecha de la citacin, el correlativo del paciente, el cdigo de procedencia, el cdigo

66

del profesional mdico, el cdigo de la especialidad y el cdigo de la prestacin.

Figura 4.33. Estructura de la tabla SO_TECITAS.

SO_TLESPERA: Almacena informacin relacionada con la lista de espera (interconsulta), como por ejemplo; el nmero de la interconsulta, el cdigo del establecimiento, el rut del paciente, el correlativo del paciente, la ficha del paciente, la fecha de recepcin, la fecha de citacin, el nmero de cita, etc.

67

Figura 4.34. Estructura de la tabla SO_TLESPERA.

SO_TPACTE: Almacena la informacin relacionada con el paciente, como sus nombres, apellidos, direccin, telfonos, adems del correlativo del paciente, y el nmero de ficha entre otros.

68

Figura 4.35. Estructura de la tabla SO_TPACTE.

69

SO_TTITUL: Almacena informacin relacionada con el paciente titular, como nombres, apellidos, direccin, etctera...

Figura 4.36. Estructura de la tabla SO_TTITUL.

SS_TEMPRESAS: Almacena el cdigo de la empresa, la razn social y la direccin entre otros.

Figura 4.37. Estructura de la tabla SS_TEMPRESAS.

70

SS_TEMPUSUARIO:

Relaciona

el

cdigo

del

usuario

con

su

correspondiente empresa.

Figura 4.38. Estructura de la tabla SS_TEMPUSUARIO.

SS_TPARAME: Almacena el cdigo del servicio de salud y su nombre entre otros.

Figura 4.39. Estructura de la tabla SS_TPARAME.

SS_TRECURSO: Almacena los recursos de cada una de las aplicaciones almacenadas en la base de datos, con sus respectivos cdigos, descripcin y nombre de la pantalla asociada.

Figura 4.40. Estructura de la tabla SS_TRECURSO.

71

SS_TRECURSOS: Asocia los recursos a los diferentes usuarios del sistema.

Figura 4.41. Estructura de la tabla SS_TRECURSOS.

UR_TREGPAC: Almacena los datos de los pacientes que son ingresados al sistema SOME, mediante el sistema Urgencia. Por ejemplo; el nmero de folio, el rut del paciente, el nombre, los apellidos, la direccin, el motivo por el cual acudi a urgencia, etc.

Figura 4.42. Estructura de la tabla UR_TREGPAC.

72

Figura 4.43. Principales tablas del sistema SOME y sus relaciones.

73

4.6. Diagramas de Flujos de Datos

El diagrama de flujo de datos (DFD), es una herramienta que permite visualizar un sistema como una red de procesos funcionales, conectados entre s por "conductos" y "tanques de almacenamiento" de datos. Es una de las herramientas ms usadas, sobre todo para representar sistemas operacionales en los cuales las funciones del sistema son de gran importancia y son ms complejos que los datos que ste maneja.

Los DFD no slo se pueden utilizar para modelar sistemas de proceso de informacin, sino tambin como manera de modelar organizaciones enteras, es decir, como una herramienta para la planeacin estratgica y de negocios.

Los componentes de un diagrama tpico de flujo de datos:

Proceso. Flujo. Almacn. Terminador.

En la siguiente seccin se detallar mediante diagramas de flujo el sistema SOME, de modo de facilitar an ms la comprensin del mismo.

74

G enerar formulario login

C onfirmacin envo formulario

I ngreso usuario contrasea

G enerar confirmacin envo

Olvid contrasea? No BD Validar usuario y contrasea

G enerar formulario de contacto

Formulario de contacto

Usuario autentificado?

No

G enerar pgina de error

Pgina de error autentificacin

S BD G enerar pgina inicio sistema SOME

Formulario de contacto

Sale

Figura 4.44. Flujo de datos Autentificar usuario.

75

G enerar formulario creacin agenda Formulario creacin agenda

BD

G enerar listado de mdicos

Listado mdicos Listado especialidades

BD

G enerar listado de especialidades

C omprobar datos necesarios

C ampos necesarios completados? S BD G enerar calendario

No

G enerar mensaje de error

Mensaje de error

C alendario

C omprobar horas seleccionadas

T odo Ok?

No

G enerar mensaje de error

Mensaje de error

S G enerar notificacin creacin agenda

Notificacin creacin agenda

Sal e

Figura 4.45. Flujo de datos Crear agenda.

76

G enerar formulario bsqueda agenda

Formulario bsqueda agenda Listado agendas disponibles

BD

G enerar listado agendas

Mdico tiene agenda? S BD G enerar calendario agenda Agenda

No Sale

Sale

Agenda tiene horas asignadas? No G enerar mensaje confirmacin eliminacin

G enerar mensaje de error

Mensaje negacin eliminacin

Realmente desea eliminar? S BD Eliminar registros de BD

No Sale

G enerar notificacin eliminacin

Mensaje notificacin eliminacin

Sale

Figura 4.46. Flujo de datos Eliminar agenda.

77

G enerar formulario bsqueda agenda

Formulario bsqueda agenda

BD

G enerar listado agendas

Listado agendas disponibles

Mdico tiene agenda? S BD G enerar agenda modificable

No

Sale

Agenda modificable

Verificar datos ingresados

T odo Ok? S BD Actualizar registros

No

G enerar mensaje de error

Mensaje negacin modificacin

G enerar notificacin modificacin

Mensaje notificacin modificacin nn Sale

Figura 4.47. Flujo de datos Modificar agenda.

78

G enerar formulario bsqueda agenda

Formulario bsqueda agenda

BD

G enerar listado mdicos

Listado mdicos

T odo OK?

No

G enerar mensaje de error

Mensaje error bsqueda

S BD Sale G enerar listado de agendas

Listado agendas disponibles

G enerar vista agenda

Vista agenda

Sale

Figura 4.48. Flujo de datos Consultar agenda.

79

G enerar formulario citas Formulario citas

BD

G enerar listado pacientes

Listado pacientes

BD

G enerar listado especialidades

Listado especialidades

BD

G enerar listado mdicos

Listado mdicos

BD

G enerar listado horas disponibles Verificar campos ingresados

Horas disponibles

Sale

T odo OK? S BD G uardar cita

No

G enerar mensaje de error

Mensaje negacin eliminacin

G enerar notificacin creacin cita

Notificacin creacin de cita

Sale

No

I mprimir cita?

Enviar citacin a impresora

Sal e

Figura 4.49. Flujo de datos Crear citacin.

80

G enerar formulario bsqueda citacin

Formulario bsqueda citacin

BD

G enerar listado citaciones

Listado citaciones

BD

G enerar vista citacin

C itacin

G enerar confirmacin eliminacin

Eliminar cita? S BD Eliminar registros de la BD

No Sale

G enerar notificacin eliminacin

Notificacin eliminacin citacin

Sale

Figura 4.50. Flujo de datos Eliminar citacin.

81

G enerar formulario bsqueda citacin

Formulario bsqueda citacin

BD

G enerar listado citaciones

Listado de citaciones

BD

G enerar vista de citacin

C itacin

Verificar campos modificados

Sale

T odo Ok? S BD Modificar registros de la BD

No

G enerar mensaje de error

Error modificacin

G enerar notificacin modificacin

Sale

Figura 4.51. Flujo de datos Modificar citacin.

82

G enerar formulario bsqueda horas

Formulario bsqueda horas

BD

G enerar listado pacientes

Listado de pacientes

G enerar listado a imprimir

Listado de pacientes

Sale

Figura 4.52. Flujo de datos Consultar horas.

83

G enerar formulario bsqueda horas

Formulario bsqueda horas

BD

G enerar listado horas eliminadas

Listado de horas eliminadas

BD

G enerar listado a imprimir

Listado de horas a imprimir

Sale

Figura 4.53. Flujo de datos Consultar horas eliminadas.

84

G enerar formulario registro de paciente

Formulario registro de pacientes

Verificar datos ingresados

T odo Ok? S BD G uardar registros

No

G enerar mensaje de error

Error creacin registro paciente

G enerar notificacin de confirmacin C onfirmacin impresin carnet

Notificacin confirmacin

G enerar mensaje impresin carnet

I mprimir carnet? S BD Enviar carnet a impresora

No

Vista carnet

C onfirmacin impresin cartula

G enerar mensaje imprimir cartula

No Sale

I mprimir cartula?

Enviar cartula a impresora

BD

Vista carnet

Sale

Figura 4.54. Flujo de datos Crear registro de pacientes.

85

G enerar formulario bsqueda pacientes Formulario bsqueda pacientes

BD

G enerar listado pacientes

Listado de pacientes

BD

G enerar vista registro paciente

Registro de paciente

BD

Verificar factibilidad de eliminacin

Sale

Se puede eliminar? S G enerar mensaje confirmacin de eliminacin

No

G enerar mensaje de error

Mensaje error de eliminacin

Mensaje confirmacin de eliminacin

Eliminar?

No

Sale

S BD Eliminar registros de BD

G enerar notificacin eliminacin

Notificacin de eliminacin

Sale

Figura 4.55. Flujo de datos Eliminar registro de pacientes.

86

G enerar formulario bsqueda pacientes

Formulario bsqueda pacientes

BD

G enerar listado pacientes

Listado de pacientes

BD

G enerar vista registro paciente

Registro de paciente

BD

Verificar campos ingresados Sale

T odo Ok?

G enerar mensaje de error

Mensaje error de modificacin

BD

Actualizar registros de BD No G enerar notificacin modificacin S

Notificacin modificacin

Sale

Figura 4.56. Flujo de datos Modificar registro de pacientes.

87

G enerar formulario bsqueda de paciente

Formulario bsqueda de pacientes

BD

G enerar listado de pacientes

Listado pacientes

BD

G enerar vista registro paciente

Registro Paciente

G enerar confirmacin impresin carnet

C onfirmacin impresin carnet

No

I mprimir carnet? S

BD

G enerar carnet a imprimir

C arnet a imprimir

I mprimir cartula? S G enerar confirmacin impresin cartula

No

Sale

C onfirmacin impresin cartula

BD

G enerar cartula a imprimir

C artula a imprimir

Sale

Figura 4.57. Flujo de datos Consultar registro de pacientes.

88

C errar sesin de usuario

G enerar pgina de cierre de sesin

Pgina cierre de sesin

Sale

Figura 4.58. Flujo de datos Cerrar sesin.

89

4.7. Diseo de Interfaces

Cuando una persona utiliza una herramienta o interacta con cualquier sistema, existe un punto de contacto entre el sistema y la persona, por donde se transmite la informacin entre ellos, este espacio comn donde se comunican las dos partes es lo que llamamos interfaz.

En los productos informticos, la interfaz de usuario es el medio por el cual el programa le comunica al usuario el estado actual del sistema, los cambios producidos, los datos que l desea obtener, etc, en un lenguaje conocido. Tambin es donde el usuario ingresa las acciones para que el programa las procese y despliegue el resultado.

A continuacin se despliegan las interfaces para las pginas web, que fueron diseadas en Dreamweaver. Estas fueron obtenidas basndose en la aplicacin en Visual Basic, y realizando las modificaciones correspondientes para adecuarse a los elementos para formularios de sistemas web.

90

Figura 4.59. Interfaz Ingreso de usuario.

Figura 4.60. Interfaz Formulario de contacto.

Figura 4.61. Interfaz Error conexin a la base de datos.

Figura 4.62. Interfaz Exito creacin de agenda.

91

Figura 4.63. Interfaz Sitio web SOME para el usuario autentificado.

Figura 4.64. Interfaz Generar calendario agenda mdica.

Figura 4.65. Interfaz Bsqueda agenda mdica.

92

Figura 4.66. Interfaz Seleccin de horas de la agenda.

Figura 4.67. Interfaz Consulta especialistas mdicos.

93

Figura 4.68. Interfaz Consulta de especialidades.

Figura 4.69. Interfaz Modificar agenda mdica.

94

Figura 4.70. Interfaz Consulta de agenda mdica.

Figura 4.71. Interfaz Consultar agenda.

95

Figura 4.72. Interfaz Agregar horas agenda mdica.

Figura 4.73. Interfaz Confirmacin ingreso de horas.

Figura 4.74. Interfaz Confirmacin modificacin de agenda.

96

Figura 4.75. Interfaz Eliminacin horas de agenda.

Figura 4.76. Interfaz Confirmacin eliminacin horas de agenda.

Figura 4.77. Interfaz Trasladar horas de agenda.

97

Figura 4.78. Interfaz Datos paciente citado.

Figura 4.79. Interfaz Citacin de pacientes.

98

Figura 4.80. Interfaz Citacin de pacientes Resultado bsqueda de horas.

Figura 4.81. Interfaz Confirmacin eliminacin de citacin.

Figura 4.82. Interfaz Confirmacin traslado horas de agenda.

99

Figura 4.83. Interfaz Consulta de pacientes.

Figura 4.84. Interfaz Consulta de agendas mdicas.

100

Figura 4.85. Interfaz Consulta de citacin de pacientes.

Figura 4.86. Interfaz Eliminar citacin.

Figura 4.87. Interfaz Confirmacin eliminacin registro paciente.

101

Figura 4.88. Interfaz Consulta de citacin de pacientes.

Figura 4.89. Interfaz Consulta horas eliminadas.

102

Figura 4.90. Interfaz Imprimir carnet de paciente.

Figura 4.91. Interfaz Imprimir citacin de paciente.

Figura 4.92. Interfaz Confirmacin modificacin registro de paciente.

103

Figura 4.93. Interfaz Bsqueda de citacin.

Figura 4.94. Interfaz Consulta registro de paciente.

Figura 4.95. Interfaz Seleccin parmetro de bsqueda registro de paciente.

104

Figura 4.96. Interfaz Consulta registro de paciente.

Figura 4.97. Interfaz Consulta de horas.

105

Figura 4.98. Interfaz Creacin datos del titular.

Figura 4.99. Interfaz Bsqueda de pacientes por nmero de ficha.

Figura 4.100. Interfaz Bsqueda de pacientes registro de atencin de urgencia.

106

Figura 4.101. Interfaz Creacin registro de paciente.

Figura 4.102. Interfaz Consulta de folios de urgencia.

107

5. CONFIGURACION DE LA PLATAFORMA WEB

En este captulo se detalla la instalacin y configuracin de las aplicaciones necesarias para configurar adecuadamente una plataforma web apta para la creacin de scripts en Php, sobre Apache bajo Linux Red Hat 9 con consultas a una base de datos en Oracle 9i. Adems, se detalla a nivel general la utilizacin de estas herramientas. Todo esto de modo de contar con una gua prctica para el lector.

El servidor web del SSAN estaba instalado en Red Hat Linux 7.2. Decidi instalarse la versin ms actual en ese momento (v. 9), y algunas aplicaciones necesarias para la correcta administracin del mismo. Previa instalacin formal en el servidor real, se realizaron pruebas de conexin bajo diferentes plataformas (Windows y Linux), todo lo cual se detalla a continuacin.

5.1. Instalacin de Red Hat Linux 9

Los discos que contienen el sistema operativo pesan sobre 500Mb cada uno, por lo que antes de intentar bajar los archivos, se debe asegurar de poseer el espacio necesario.

1.

Dirigirse a la pgina http://ftp.redhat.com/pub/redhat/linux/9/en/iso/i386/ o a ftp://ftp.tecnoera.com/Linux/redhat-9/iso/i386. 108

2.

Bajar los archivos ISO (para ser quemados directamente en un grabador de cds):

shrike-i386-disc1.iso shrike-i386-disc2.iso shrike-i386-disc3.iso

Una vez quemados los cds, insertar el cd nmero 1 y reiniciar el equipo. Comenzar de esta manera la instalacin del software. La instalacin es muy intuitiva, por lo que no debera haber ningn problema. Para el caso particular del proyecto de ttulo se instal la versin para Servidor, de modo de tener a disposicin la mayor parte de aplicaciones y servicios disponibles.

5.2. Software complementario para Red Hat Linux 9

Se instalan tres aplicaciones: Webmin, Macromedia Flash Player para Linux y el plug-in de Java. Macromedia Flash Player es una utilidad para poder desplegar pelculas del tipo flash en el servidor. Webmin permite administrar remotamente el servidor, bajo una interfaz visual compuesta de mens y ventanas y el plug-in de Java permite desplegar aplicaciones basadas en Java en el browser. Este plug-in debi ser instalado debido a que una de las herramientas de Webmin (una especie de Explorador de carpetas de Windows) as lo necesitaba.

109

5.2.1. Webmin

1. Ir a la url http://www.webmin.com/download.html y bajar el archivo webmin1.150-1.noarch.rpm.

2. En la consola de comandos de Linux, ubicar el directorio donde se baj el archivo y escribir:

rpm U webmin-1.150-1.noarch.rpm

Se instalar la aplicacin en /usr/libexec/webmin.

3. Ya

instalado el programa, se dirige

el browser a

la direccin:

http://localhost:10000/ o a http://ip_servidor:10000/. Se ingresa el nombre de usuario root, con su clave correspondiente.

5.2.2. Macromedia Flash Player para Linux

1. Dirigirse a: http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Vers ion=ShockwaveFlash&P2_Platform=Linux&P3_Browser_Version=Netscape4.

Presionar el botn Download Now (Bajar ahora).

110

2. Guardar el archivo install_flash_player_7_linux.tar.gz en el escritorio.

3. Ejecutar en la consola de comandos:

tar zxvf install_flash_player_7_linux.tar.gz

para desempaquetar el archivo. Con la instruccin anterior se crear la carpeta install_flash_player_7_linux.

4. Navegar hasta el directorio y nuevamente ejecutar una instruccin en la consola de comandos:

$ ./flashplayer-installer

Se siguen las instrucciones de instalacin. Al final, el instalador solicitar que se cierren todas las ventanas del browser.

Una vez completa la instalacin el plug-in estar instalado en el browser.

Para verificar la instalacin, en el browser se hace click en Help About Plug-ins. Esto desplegar un listado de todos los plugins disponibles, includo el de flash.

111

5.2.3. Java plug-in

1. Ir

http://java.sun.com/j2se/1.4.2/download.html

hacer

click

en

Download J2SE JRE .

2. Bajar el archivo rpm j2re-1_4_2_05-linux-i586-rpm.bin.

3. Se extraen los contenidos del archivo escribiendo en la lnea de comandos:

chmod a+x j2re-1_4_2_<version>-linux-i586-rpm.bin

4. Se ejecuta:

./j2re-1_4_2_<version>-linux-i586-rpm.bin

Aceptar la licencia antes de comenzar la instalacin.

Si no se ha ingresado como usuario root, cambiarse a ste mediante el comando:

su root

e ingresando la clave del usuario raz (root).

5. Ejecutar el comando rpm para instalar Java: 112

rpm -iv j2re-1_4_2_<version>-linux-i586.rpm

6. Borrar el archivo bin y el rpm para ahorrar espacio y salir de la consola de comandos.

5.3. Instalacin de Oracle 9i para Linux y Windows 2000

5.3.1. Qu es Oracle?

Oracle es un motor de base de datos, el cual puede interactuar con diferentes plataformas como son: Unix, Linux, Solaris, Windows 9x/NT, entre otros. Oracle maneja un concepto de instancia que es la combinacin del rea Global del Sistema (SGA) y la base de datos background processes, los cuales son procesos que se encuentran almacenados en memoria y son los principales procesos que se levantan para crear o levantar una base de datos.

El Area Global del Sistema es una estructura en memoria que contiene toda la informacin para una base de datos en Oracle.

Una Base de datos en Oracle est compuesta por uno o ms control file (archivos de control), datafile (archivos de datos) y redo log file (archivos de bitcoras). A continuacin se muestra la descripcin de cada uno de estos archivos.

113

Datafile: Contiene todos los datos de la base de datos, tales como tablas e ndices.

Redo log file: Contiene el registro de todos los cambios hechos en la base de datos con el propsito de recuperar datos. Control file: Contiene la estructura fsica y el estado de la base de datos.

La figura 5.1. muestra la estructura fsica de una base de datos Oracle.

Figura 5.1. Estructura fsica de una base de datos Oracle.

5.3.2. Instalacin de Oracle

Para lograr la conexin mediante Php, se necesita instalar en el equipo servidor web las libreras de Oracle. 114

En el caso de Linux, se debe instalar el cliente en la modalidad custom, ms el Development Kit (para trabajar desde un equipo conectado a la base de datos), el cual se encuentra en la instalacin del motor de la Base de Datos. Para Windows, se realizaron dos tipos de instalaciones, en la primera se instala slo el cliente, dado que se trabajar mediante conexin a la base de datos remota, y en la segunda, se instala toda la base de datos, en el caso en que se quiera trabajar en un pc de manera local.

5.3.2.1. Instalacin del cliente de Oracle 9i para Linux

Esta instalacin servir de base para la instalacin del software de base de datos en el servidor web real, una vez que el sistema est listo para comenzar a ejecutarse a travs de Internet.

Puede revisar la instalacin paso a paso en el Apndice A.

5.3.2.2. Instalacin de cliente Oracle para Windows

La instalacin del cliente para Windows es mucho ms sencilla que la de Linux. Simplemente se baja el paquete desde el sitio oficial del producto, y se procede a la instalacin. A diferencia de Linux, s existe un paquete exclusivamente cliente de Oracle, lo que implica bajar solamente un archivo. Esta instalacin es til si se quiere trabajar desde un equipo de prueba bajo Windows, que se encuentra conectado bajo red al servidor de base de datos. 115

Los detalles de la instalacin pueden ser revisados en el Apndice B.

5.3.2.3. Instalacin de la base de datos Oracle para Windows

Esta instalacin es til si se quiere trabajar de manera local. Los detalles de la instalacin se encuentran en el Apndice C.

5.3.3. Ejecutar paquetes instalados bajo Linux

Por motivos de inters en la administracin remota de la base de datos, para por ejemplo corregir algn error que se detecte durante el desarrollo de los scripts en Php o para hacer alguna consulta directamente en lenguaje sql, se trabaja con SqlPLus y Enterprise Manager Console. Sqlplus permite conectarse al servidor de base de datos y ejecutar consultas en sql, y la Consola de Enterprise Manager se utiliza para visualizar el rbol de tablas de la base de datos, ver los registros, crear o eliminar tablas, editar campos, etc.

Para ejecutar SqlPlus se debe utilizar el comando:

$ sqlplus <usuariodueobasedatos>:<clave>@<nombresid>.<nombredominio>

Para ejecutar la Consola Enterprise Manager se utiliza el comando:

$ oemapp console

116

Iniciar en Modo Autnomo e ingresar el nombre de usuario y la clave. Las aplicaciones de Oracle consultan a los archivos tnsnames.ora y sqlnet.ora para conectarse a la base de datos. La primera vez que se ejecute la Consola de Enterprise Manager se debe elegir Agregar bases de datos seleccionadas del archivo tnsnames.ora local ubicado en /opt/ora9/product/9.2/network/admin. Luego aceptar.

5.3.4. Enterprise Manager Console

Esta es una herramienta para entorno visual que permite realizar tareas como por ejemplo:

Importar, crear, modificar, y eliminar tablas.

Ingresar, modificar, eliminar registros.

Ingresar, modificar, eliminar campos.

Crear usuarios y asignarles espacios de trabajo y permisos.

5.3.4.1. Ejecutar la aplicacin

1. Ir a: Inicio - Archivos de Programa Oracle-OracleHome90 Enterprise Manager Console. 117

2. Elegir la opcin Launch standalone.

3. Hacer click en Network Databases SID.

4. Ingresar el nombre de usuario y clave.

5.3.4.2. Visualizar registros de una tabla

1. Ir a Squema Table Dueo de la Base de datos.

2. Sobre la tabla deseada, hacer click con el botn derecho, y seleccionar Table Data Editor.

3. Seleccionar desplegar las filas para todas las columnas de la tabla (Display all rows for all the columns in the table).

4. Al hacer click sobre alguna de las columnas, se puede editar manualmente su contenido.

5. Haciendo click en el espacio junto a la primera columna del registro, se puede seleccionar un registro entero. Con delete, se puede borrar un registro completo.

118

6. Si se desea agregar manualmente un registro completo, se realiza la misma operacin que para borrar un registro, slo que en vez de delete se selecciona add.

5.3.4.3. Agregar, modificar o eliminar campos de las tablas

1. Hacer un click sobre la tabla deseada. Al lado derecho de la aplicacin, se observa en detalle el nombre de los campos, tipo, tamao, etc...

2. Haciendo click sobre el atributo especfico se puede editar manualmente. Lo mismo si se desea borrar o agregar un nuevo campo.

3. Se presiona Apply, para aplicar los cambios.

5.3.5. SQLPLUS

Herramienta que permite conectarse a la base de datos, y realizar consultas SQL. Para conectarse, debe proporcionarse un nombre de usuario, clave, y el SID. La Figura 5.2. muestra la pantalla inicial de SQLPlus.

119

Figura 5.2. Vista consola de comandos sql, SQL Plus.

5.3.5.1. Iniciar y detener la base de datos

Desde Windows, ejecutar la aplicacin Smbolo de sistema, desde Linux, ejecutar la Consola de Comandos y a continuacin:

C:\>lsnrctl start.

Con lo que se inicia el listener.

C:\>sqlplus /nolog

De esta manera se logra una conexin al SqlPlus va consola de comandos.

SQL> connect as sysdba

120

Para conectarse como usuario administrador de la base de datos.

SQL> startup

Para iniciar la base de datos Oracle.

SQL> exit

Para salir de SqlPlus.

Para detener la base de datos:

C:\>lsnrctl stop

Detiene el listener.

C:\>sqlplus /nolog

Se inicia sqlplus.
SQL> connect / as sysdba

Se conecta con privilegios de administrador.

SQL> shutdown

Se cierra la base de datos, se termina la instancia. 121

SQL> exit

Para salir de Sqlplus.

5.4. Instalacin de Apache y Php para Linux y Windows

Inicialmente, se instala Apache y PHP bajo Windows, en este caso, bajo Windows 2000. Este equipo se utilizar tanto para trabajar localmente (mediante la instalacin de la base de datos completa), como para trabajar con conexin a la base de datos a travs de la red (mediante la instalacin de la base de datos), de modo de poder realizar pruebas bajo Windows 2000. La instalacin en Windows servir para trabajar en programacin en Php y elaborar los cdigos que posteriormente sern copiados al servidor web real.

Una vez finalizadas las interfaces, los cdigos en Php, etc... y antes de formatear el servidor web, se realiza una ltima prueba, instalando todas las aplicaciones necesarias para el adecuado funcionamiento del servidor.

La base de datos Oracle se encuentra almacenada en un arreglo de discos dentro de la red del SSAN. El motor de base de datos est instalado en un equipo con Windows 2000. En la Figura 5.3 se muestran las diferentes instalaciones que se realizaron a lo largo del proyecto de ttulo.

122

Figura 5.3. Equipos de prueba para la conexin a la base de datos.

La figura 5.4 muestra una visin general de la configuracin final que tendr el proyecto.

Figura 5.4. Equipos de prueba para la conexin a la base de datos.

123

Las aplicaciones en Php se conectan al servidor Oracle mediante el servidor web, en el cual se encuentran instaladas las libreras de Oracle, el servidor Apache y el servidor Php, entre otros.

5.4.1. Instalacin de Apache y PHP para Windows

Puede revisar la instalacin completa de Apache y Php para sistema operativo Windows 2000, en el Apndice D.

5.4.2. Instalacin de Apache y PHP para Linux Red Hat 9

Puede revisar la instalacin completa de Apache y Php para sistema operativo Red Hat Linux 9, en el Apndice E.

5.5. Macromedia Fireworks MX

Es la herramienta de Macromedia para el tratamiento de imgenes. Est diseada como un complemento de Macromedia Dreamweaver, de modo de poder optimizar el diseo para sitios web.

Para el proyecto de ttulo se utiliz esta aplicacin para el collage ubicado en el frame superior del sitio web, para la imagen en la pgina de inicio, para el men superior y para la confeccin de botones para los formularios.

124

A continuacin se detallan algunos de los mtodos utilizados para llevar a cabo las tareas antes mencionadas.

5.5.1 Creacin de collage

1. Hacer click en Archivo Nuevo para crear un nuevo lienzo.

2. Establecer las medidas del lienzo en 780x90.

3. Ir a Archivo Abrir para agregar una imagen sobre el lienzo. En este caso, se seleccion un papel tapiz color azul.

4. Se utilizan imgenes de mdicos y funcionarios del servicio para armar el collage. Para recortar, se utiliza la herramienta lazo polgono (Figura 5.5).

Figura 5.5. Herramienta lazo polgono.

125

5. Desde el panel de herramientas Propiedades se selecciona el borde de tipo Fundido, con el valor 20, para suavizar los bordes. Se ingresan van recortando las imgenes una a una y ubicando de la manera que se estime conveniente (Figura 5.6).

Figura 5.6. Panel de Herramientas Propiedades.

6. Una vez organizadas todas las imgenes, se agrega un par de lneas de texto. Para ello se utiliza la herramienta de texto (Figura 5.7).

Figura 5.7. Herramienta de texto.

7. Si se desea contar con mayor variedad de fuentes de texto, se puede buscar en Internet. Una buena pgina para bajar archivos de este tipo es: http://www.acidfonts.com. Una vez bajadas, se mueven a la carpeta WINNT Fonts (Windows 2000) o WINDOWS FONTS (Windows 98). Una vez ingresado el texto deseado, se puede aplicar por ejemplo el efecto Sombra.

126

Esto se realiza presionando el signo + junto a Efectos, en el panel Propiedades (Figura 5.8).

Figura 5.8. Aplicacin efecto Sombra sobre un texto.

8. Se utiliza la herramienta Divisin para obtener trozos de la imagen, los cuales posteriormente se utilizarn para la creacin de una animacin de tipo Flash (Figura 5.9).

Figura 5.9. Herramienta Divisin.

Figura 5.10. Collage con divisiones.

9. Para grabar la imagen en formato gif o jpeg, se debe utilizar la opcin Archivo Exportar. Antes se debe seleccionar el tipo de imagen, en el panel del lado derecho de la aplicacin, el panel Optimizar (Figura 5.11). 127

Figura 5.11. Panel Optimizar.

10. Para el caso del collage, se debe exportar dos veces. Primero se exportar con las opciones Slo imgenes Divisiones (Exportar Divisiones). Esto exportar la imagen recortada dadas las lneas de divisin aplicadas anteriormente. La segunda exportacin se realizar removiendo las partes con texto del collage. Se seleccionan los textos, se cortan y se pegan momentneamente en otro lienzo. Luego se exporta la imagen nuevamente, pero esta vez sin seleccionar la opcin Exportar Divisiones. De esta manera se exporta la imagen de fondo sobre la cual se agregarn los textos recortados anteriormente.

5.5.2. Creacin botones

1. Para realizar los botones utilizados en los formularios, se crean las figuras utilizando las formas disponibles en Fireworks. Para el botn, se elige la forma Rectngulo Redondeado (Figura 5.12).

128

Figura 5.12. Herramienta Rectngulo Redondeado.

2. Haciendo click sobre el rectngulo, se accede al panel de Propiedades. Desde ah se selecciona Redondez del Rectngulo al valor 80. Esto aumenta la redondez de los bordes.

3. Se selecciona el color de relleno y de borde. El de relleno un celeste muy claro, y el de borde un azul, mediante la herramienta color (Figura 5.13).

Figura 5.13. Herramienta relleno y borde de color.

4. Se utilizan las herramientas Elipse para dibujar crculos, Rectngulo, Lnea, etc. Se disponen las formas de tal manera de formar una imagen como la mostrada en la Figura 5.14.

129

Figura 5.14. Botn, resultado final.

5.6. SWISHMax

SwishMax es una herramienta de creacin de pelculas Flash. Presenta un entorno de trabajo ms intuitivo que Macromedia Flash, y es muy til para generar animaciones de complejidad media-alta. Se puede bajar una versin de prueba desde el sitio http://www.swishzone.com.

A continuacin se da una visin general de una de las animaciones que se incluyen en el sitio.

Figura 5.15. Vista SWISHMax.

130

La animacin es creada a partir de las imgenes exportadas con el mtodo explicado anteriormente en Fireworks.

1. Lo primero que se debe hacer, es seleccionar el tamao del lienzo. Para ello, se selecciona la pestaa Movie. En Width (Ancho) se especifica el valor 780, en Height (Alto) se especifica el valor 90. Estos valores corresponden al tamao exacto del collage creado con Fireworks.

2. Seleccionar en el men superior la opcin Insertar-Imagen y buscar en primer lugar el fondo como el mostrado en la vista general (Figura 5.15).

3. Se hace un click sobre la imagen de fondo, luego con el botn derecho se selecciona Effect - Appear into position - Burn in, para agregar un efecto de aparicin con un brillo de color. Por defecto el brillo es rojo, para cambiar el color, se hace un click con el botn derecho sobre el efecto, en la lnea de tiempo, y luego se selecciona Propiedades (Figura 5.16).

Figura 5.16. Lnea de tiempo.

131

4. Para ingresar el resto de imgenes se selecciona nuevamente Insertar Imagen. Se insertan las frases con los textos, y se ubican exactamente sobre la posicin donde se ubican originalmente en el collage.

5. Se hace click sobre estas imgenes y con el botn derecho se selecciona Effect Fade Fade in, para conseguir una aparicin con un efecto de desvanecimiento. Los efectos se van ubicando en la lnea de tiempo de acuerdo al orden de aparicin deseada.

6. Para probar la pelcula se selecciona la opcin File Test In player.

7. Antes de exportar la pelcula, se debe seleccionar la versin de Flash bajo la cual se exportar, mediante la pestaa Export en el panel de herramientas ubicado al lado derecho de la aplicacin.

8. Para evitar que la pelcula se reproduzca eternamente, se selecciona Stop playing at end of movie.

9. Finalmente, seleccionar File Export Swf, para exportar la pelcula. Este archivo podr ser importado posteriormente desde Macromedia

Dreamweaver Mx.

132

5.7. Macromedia Dreamweaver MX

Es una herramienta de Macromedia orientada al diseo de pginas web en un entorno visual. Permite insertar cualquiera elemento web; frames, tablas, formularios, etc... Adems, posee un editor de cdigo, muy til a la hora de editar e ingresar nuevas instrucciones a una pgina.

5.7.1. Pgina de inicio

La pgina de inicio, de autentificacin de usuario consta de una imagen dividida insertada dentro de una tabla. Este formato se consigue al crear el collage en Macromedia Fireworks y exportarlo como Html e imgenes.

1. Una vez en Dreamweaver se abre la imagen y se hace un click sobre el cuadrado a la derecha como lo muestra la figura 5.17.

133

Figura 5.17. Seleccin trozo de la imagen.

2. Observar el nombre de la imagen, en el panel Propiedades, con el identificador Src. Se necesita tener la imagen identificada para luego volver a insertarla.

3. Se presiona el botn Suprimir para borrar la imagen.

4. Nuevamente en Propiedades, seleccionar la carpetita al lado derecho de Bg (Fondo) y buscar la imagen anteriormente eliminada para insertarla como fondo.

5. Una vez establecida la imagen de fondo, es posible agregar encima cualquier elemento web, en este caso, texto y elementos de formulario, como se muestra en la figura 5.18.

134

Figura 5.18. Trozo de imagen utilizado como fondo.

5.7.2. Animacin superior, con men

La animacin superior con men corresponde a la pgina del frame superior. Consta de una tabla de dos filas por una columna, y un men de navegacin con efecto de rollover (al pasar el mouse sobre una imagen, esta cambia, al sacar el mouse de objeto, ste vuelve a la normalidad).

1. Elegir Insertar Tabla.

2. Ingresar los siguientes valores: Filas=2, Columnas=1, Ancho=780 pxeles, Borde=0, Relleno de celda=0, Espacio entre celdas=0.

3. Sobre la fila superior, presionar Insertar Media Flash, para seleccionar la pelcula creada en Swish.

135

4. Sobre la fila inferior, seleccionar Insertar Imgenes Interactivas Men de navegacin.

5. Aparecer una ventana donde deber ingresarse entre otros los parmetros Imagen Arriba (imagen en su estado normal), Sobre Imagen (imagen al posicionar el cursor sobre ella), Al hacerse click ir a URL (para especificar el destino al hacer click sobre la imagen, etc...) (Figura 5.19).

6. Aceptar para salir.

Figura 5.19. Modificar barra de navegacin.

5.7.3. Formularios

Los formularios fueron confeccionados insertando tablas dentro de tablas, seleccionado colores de fondo, y aplicando hojas de estilo para cambiar el valor la apariencia por defecto de los elementos de un formulario. La figura 5.20

136

muestra un formulario principal, mientras que la figura 5.21 muestra un formulario para una ventana del tipo pop-up.

Figura 5.20. Formulario Agenda Mdica.

Figura 5.21. Formulario de bsqueda, en ventana emergente.

137

6. PRIMEROS PASOS EN LA IMPLEMENTACION DEL SISTEMA FINAL

En esta seccin se dar a conocer la estructura final que tendr el sitio, la lgica que se ocupar para la validacin y envo de los formularios, los lenguajes de programacin utilizados para la implementacin de las distintas funcionalidades, el significado de las principales instrucciones de Php para Oracle utilizadas, y se analizarn algunos cdigos de inters, de modo de facilitar la

implementacin del resto del sistema SOME y de los sistemas futuros.

6.1. Organizacin del sitio SOME

Como se mencion anteriormente, se utiliz Macromedia Dreamweaver MX para la creacin de los formularios. Estos fueron creados utilizando como base las interfaces diseadas en el Diseo de Interfaces. Posteriormente se tom nota de los nombres y propiedades de cada uno de los elementos de los formularios, y se aplicaron en Dreamweaver.

Para los formularios, no se utilizaron los botones por defecto, sino que se sustituyeron por imgenes creadas en Macromedia Fireworks MX, las cuales posteriormente fueron insertadas en Dreamweaver.

Finalmente, el ttulo de cada uno de los formularios fue creado en SwishMax. El ttulo es una pequea animacin en Flash. 138

Es as como la estructuracin del sitio web del sistema SOME es el siguiente:

Una carpeta llamada css, donde se encuentra el archivo con las configuraciones de la hoja de estilo.

Una carpeta llamada flash, donde se encuentran todas las pelculas Flash.

Una carpeta llamada images, donde se encuentran todas las imgenes a excepcin de las de la pgina de inicio (login).

Una carpeta llamada men, donde se encuentran las imgenes del men de imgenes de sustitucin del frame superior.

En la raz se encuentran los archivos con extensin Php, y algunos archivos de tipo imagen, pertenecientes a la pgina de inicio y de fin de sesin.

6.2. Caractersticas del Sitio Web

Al direccionar el navegador al sitio de SOME, se despliega una pgina de inicio, solicitando el nombre de usuario y contrasea. Una vez autentificado, se despliega el sitio compuesto por tres frames (marcos); uno superior, donde se ubica una imagen y cuatro botones que al pasar el cursor sobre ellas, cambian de color, uno al costado izquierdo, donde se presenta un men de tipo rbol, y

139

finalmente una pgina principal donde se despliega la informacin direccionada por las opciones de los mens.

En algunas oportunidades, se despliegan ventanas del tipo pop-up (emergente), conteniendo por ejemplo listados sobre los cuales el usuario deber seleccionar alguno de los elementos. Y luego sta informacin pasa al formulario principal.

Figura 6.1. Sitio web sistema SOME, pgina inicial usuario autentificado.

6.3. Descripcin lenguajes utilizados y anlisis de cdigos

Para la confeccin del sitio, y la adecuada migracin de Visual Basic a Php se recurri a cuatro lenguajes de programacin: Html, Javascript, Php, Sql y la utilizacin de plantillas de estilo Css.

140

Html: Por su naturaleza esttica, es til para generar la parte visual del documento web. Permite generar frames (marcos), tablas, formularios, texto, aplicar diferentes colores, tamaos, etc.

Javascript: Lenguaje diseado para agregar interactividad a un documento esttico de tipo html. Se ejecuta del lado del cliente (en el Browser). Permite generar efectos visuales, como capturar datos, almacenarlos en variables, enviar alertas a pantalla, validar que un formulario sea enviado con todos sus campos completos, etc. Al igual que css puede ser insertado directamente en un documento html o creado en un documento aparte, con extensin js, y llamado desde el documento html.

Php: Lenguaje til para agregar dinamismo a un sitio. Se ejecuta en el lado del servidor. Permite entre otras cosas ejecutar consultas sobre una base de datos. Puede ser insertado en cualquier parte de un documento html, utilizando como identificador <? al principio del cdigo php y ?> al final.

Sql: Es un lenguaje universal dedicado a las bases de datos. Posee una sintaxis simple y muy potente. Mediante l se puede recorrer, modificar o borrar registros de las tablas de datos. Puede ser insertado en Php, para ejecutar acciones como insertar, borrar o actualizar registros de la base de datos.

141

Css: Es un mecanismo que sirve para agregar estilo a un documento html. Las hojas de estilo pueden ser insertadas dentro de html o creadas como un archivo aparte el cual puede ser solicitado desde el archivo html. Permite aplicar caractersticas especiales, no contempladas en html, al texto, formularios, enlaces, etc.

6.4. Funciones Php para Oracle

Una de las principales herramientas utilizadas en la implementacin

del

sistema SOME fueron las funciones de Php para Oracle. Estas funciones permiten establecer la conexin a la base de datos Oracle, y realizar consultas SQL a las respectivas tablas. Estas funciones se habilitan una vez instaladas los mdulos de extensin en Php (al instalar las libreras de Oracle). Existen 2 mdulos para conectarse a Oracle:

Las funciones Oracle normales (ORA) y Las funciones de interfaz de llamada de Oracle (OCI)

Debera tratar de utilizarse OCI cuando sea posible, debido a que est optimizada y tiene ms opciones. Por ejemplo, ORA no incluye soporte para CLOBs, BLOBs, BFILEs, ROWIDs, etc. En todo caso no hay problema en

utilizar en un script un tipo de extensin y en otro, otra. En el caso del sistema SOME, se ocup la extensin ORA. En el caso en que se necesite implementar

142

alguna funcionalidad no presente en esta extensin, simplemente se proceder a la utilizacin de OCI.

6.5. Ejemplo consulta Php a Oracle utilizando ORA

La tabla 6.1 muestra un extracto de cdigo en Php donde se realiza una conexin a la base de datos Oracle, se consulta por los datos de un profesional mdico mediante los campos a.cod_promed, a.nom_nombre, etc... y donde finalmente se extraen los registros. Este cdigo representa la lgica de una consulta utilizando ORA y puede servir de ejemplo para el resto de cdigos a implementar.

Como se puede observar, la primera instruccin dice relacin con la sentencia ora_logon. Este comando permite realizar la conexin a la base de datos, mediante los parmetros: nombre del dueo de la base de datos, nombre del sid y clave del usuario dueo. Luego se abre un cursor mediante la instruccin ora_open, el cual va a almacenar el valor de la conexin. A continuacin se crea una variable llamada $sql, que almacena la instruccin en lenguaje SQL. Esta instruccin solicita los datos de los profesionales mdicos, accediendo a cada una de las tablas que contienen los distintos tipos de datos. Se utiliza la conexin almacenada en $cursor, y la instruccin SQL almacenada en $sql, mediante la funcin ora_parse, para analizarla y finalmente se ejecuta mediante ora_exec.

143

Se crea un arreglo para almacenar los registros al ser extrados, mediante la variable $results=array() y se inicia un contador en 0 el cual contar la cantidad de filas encontradas. Mediante la instruccin ora_fetch_into se extraen las filas encontradas y se almacenan en un arreglo, desde el cual posteriormente sern extradas.

La variable $num_registros que contiene la cantidad de filas encontradas, se obtiene a partir de ora_numrows. Dependiendo del resultado de esta variable, o sea, dependiendo de si se existen registros que mostrar, se crea una nueva variable $muestra_tabla, que indica si se debe o no mostrar la tabla que contendr el listado de las filas.

Tabla 6.1. Ejemplo cdigo utilizando ORA // Se realiza conexin a la base de datos, con usuario dueo $db_conexion= ora_logon("oracle_own@oracle_sid","oracle_pass") or die (No se pudo conectar a la base de datos); // Se abre cursor $cursor=ora_open($db_conexion); // Consulta SQL $sql="select a.cod_promed, a.nom_nombre, a.nom_apepat, a.nom_apemat, b.nom_tprofe from gg_tprofesional a, gg_tprofesion b where a.cod_tprofe=b.cod_tprofe and a.cod_empresa='$cod_empresa' and a.ind_estado='V' and b.cod_areaprof= 'MEDI' and b.ind_estado='V';

144

// Se analiza la sentencia SQL utilizando la conexin abierta por el cursor ora_parse($cursor,$sql); // Se ejecuta la instruccin SQL ora_exec($cursor); // Se crea un arreglo para recibir resultados $results= array(); // Se inicia contador en 0 $contador=0; //Se extraen los resultados de la bsqueda y se guardan en el arreglo, desde el cual luego sern sacados while (@ora_fetch_into($cursor, $results)) { $results[0][$contador]= ora_getcolumn($cursor, 0); $results[1][$contador]= ora_getcolumn($cursor, 1); $results[2][$contador]= ora_getcolumn($cursor, 2); $results[3][$contador]= ora_getcolumn($cursor, 3); $results[4][$contador]= ora_getcolumn($cursor, 4); $contador= $contador+1; } // Se obtiene el nmero total de filas, para especificar el nmero de registros $num_registros= ora_numrows($cursor); if ($num_registros <> 0) // Si hay registros que mostrar, se levanta una bandera a verdadero, para utilizarla ms adelante... para mostrar la tabla con los resultados $muestra_tabla= true; // de lo contrario... else

$muestra_tabla=false;

145

La tabla 6.2. muestra el cdigo para creacin de una tabla donde se listan las filas obtenidas en la consulta de la tabla 6.1.

Tabla 6.2. Listar resultados de bsqueda con ORA <!-- Comienzo de tabla que muestra los resultados de la bsqueda de los mdicos --> <table width="95%" border="0" align="center" cellpadding="1" cellspacing="0" bgcolor="#336699"> <tr> <td height="54"><table width="100%" border="1" align="center" cellpadding="0" cellspacing="0"> <tr> <td bgcolor="#336699" class="titulo"><div align="center"> C&oacute;digo</div></td> <td bgcolor="#336699" class="titulo">Nombre M&eacute;dico</td> <td bgcolor="#336699" class="titulo">Profesi&oacute;n</td> </tr> <tr> <td bgcolor="#F4F8FB" class="titulo"> <font color="#333333" size="-2"> <!-- Se sacan los registros de la bsqueda ---> <? $i=0; for ($i==0; $i<$contador; $i++) { $cod_promed= $results[0][$i]; $nom_nombre= $results[1][$i]; $nom_apepat= $results[2][$i]; $nom_apemat= $results[3][$i]; $nom_tprofe= $results[4][$i]; ?> <a href="javascript:pick('<? echo $cod_promed ?>','<? Echo $nom_nombre, ' ', $nom_apepat, ' ',$nom_apemat ?>')"><? echo

146

$cod_promed ?></a> &nbsp;</font></td> <td bgcolor="#F4F8FB" class="titulo"><font color="#333333" size="-2"><? echo $nom_apepat, ' ', $nom_apemat, ', ',$nom_nombre ?>&nbsp;</font></td> <td bgcolor="#F4F8FB" class="titulo"><font color="#333333" size="-2"> <? echo $nom_tprofe ?> </font></td> </tr> <tr> <td bgcolor="#F4F8FB" class="titulo"> <font color="#333333" size="-2"> <? } // Fin ciclo for ?> &nbsp;</font></td> <td bgcolor="#F4F8FB" class="titulo"><font color="#333333" size="-2">&nbsp; </font></td> <td bgcolor="#F4F8FB" class="titulo"><font color="#333333" size="-2">&nbsp;</font></td> </tr> </table> </td> </tr> </table>

En el ciclo for, se extraen los datos almacenados en el arreglo. Mediante la instruccin <a href> las filas extradas tendrn caractersticas de un enlace, sobre el cual existe una accin definida en javascript bajo la funcin pick, la cual ser descrita ms adelante.

En el Apndice F se describen las funciones utilizadas en los cdigos anteriores, y algunas otras.

147

6.6. Formularios en Php

El sistema SOME est basado en formularios, por lo tanto, se debe tener en claro cada uno de los elementos disponibles as como su implementacin.

Cada elemento del formulario posee un nombre (name) y un valor (value). El total de elementos es contenido por una etiqueta de formulario que comienza con la instruccin form como muestra la tabla 6.3. y termina con la instruccin </form>. La instruccin method dice relacin con el mtodo por el cual se van a enviar los datos, en el caso de la tabla 6.3. el mtodo utilizado es POST, en el cual los campos se envan al presionar el botn Enviar en el formulario correspondiente, y luego se reciben con $_POST[nombre_variable] en el script especificado en action.

Tabla 6.3. Estructura de formulario. <form name="form1" method="post" action="procesar.php"> elementos de formulario botn enviar </form>

Campo de texto: El campo de texto es uno de los elementos bsicos de todo formulario. Recibe un elemento ingresado por el usuario, el cual luego es asignado al nombre de la variable que se le da al campo. La figura 6.2. muestra un campo de texto.

148

Figura 6.2. Campo de texto.

El cdigo para generar un campo de texto es:

<input name="nombre" type="text" id="nombre" size="30" maxlength="20">

Name es el nombre dado al campo de texto. Type indica que es un campo del tipo texto. Size indica el ancho visible del campo de texto y maxlength indica el largo permitido para el elemento ingresado por el usuario.

Casilla de verificacin: Es un elemento que permite seleccionar o no algo en especfico. La figura 6.3. muestra una casilla de verificacin.

Figura 6.3. Casilla de verificacin.

La instruccin:

<input type="checkbox" name="variable_checkbox" value="1">

crea un campo de tipo checkbox, o sea, casilla de verificacin, con nombre variable_checkbox y con valor=1. Esto significa que si el usuario selecciona esta casilla de verificacin, la variable variable_checkbox recibir el valor 1.

149

Botn de opcin: Sirve para seleccionar un elemento de entre un grupo de 2 o ms (Figura 6.4.).

Figura 6.4. Botn de opcin.

La instruccin:

<input type="radio" name="radiobutton" value="AM" checked>

crea un botn de opcin con el nombre radiobutton, con el valor AM y que aparezca marcado por defecto (checked).

Lista/Men: Permite seleccionar un elemento de un men desplegable. El valor seleccionado pasa a la variable asociada. La figura 6.5. muestra un ejemplo de una Lista/Men.

Figura 6.5. Lista/Men.

La instruccin:

<select name="select"> <option value="nom_nombre">Ordenar por Nombre</option> <option value="nom_apepat">Ordenar por Apellido</option>

150

</select>

crea una Lista/Men con dos opciones, entre <option> y </option>, cada una con su correspondiente valor (value). Entre las opciones <option> y </option> se encuentra el nombre que el usuario ve en pantalla. El valor que el usuario elija, pasar a la variable select, que es el nombre del elemento.

Campo oculto: Sirve para asignar un valor no visible en el formulario, a una variable. Es muy til por ejemplo si se necesita pasar a una funcin en Javascript una variable de Php. La sintaxis del campo oculto es la siguiente:

<input name="campo_oculto" type="hidden" id="campo_oculto" value="1">

donde name es el nombre del campo, type indica que es de tipo oculto, id es el identificador y value es el valor para el campo.

Botn: Es un elemento clave el lo referente a los formularios, ya que gatilla el envo de las variables contenidas entre <form> y </form>. La figura 6.6. muestra un botn de formulario.

Figura 6.6. Botn de formulario.

151

La instruccin:

<input type="submit" name="Submit" value="Enviar">

Botn de imagen: En el diseo de sistema no se utilizaron los botones por defecto descritos en el punto anterior, sino que una imagen con atributos de botn, como la que se muestra en la figura 6.7.

Figura 6.7. Botn basado en una imagen.

La instruccin:

<input name="imageField" type="image" src="cancelar.gif" width="71" height="25" border="0">

crea un botn basado en imagen (type=image), con una imagen llamada cancelar.gif, de tamao 71x25, sin borde.

6.7. Creacin dinmica de elementos de formulario

Es posible obtener por ejemplo una Lista/Men con elementos contenidos en la base de datos, o desplegar el valor de un campo de texto cuando el formulario no ha sido enviado correctamente, ya que falt algn valor, etc... En una pgina

152

con cdigo html, esto se realiza simplemente utilizando la etiqueta <? para sealar el inicio de cdigo Php y ?> para sealar el fin de la misma.

Supongamos que en alguna parte de un script Php se asigna el valor Pedro a la variable $nombre, mediante:

<? $nombre=Pedro; ?>

Luego en un campo de texto de un formulario, se quiere desplegar el valor de $nombre. Esto se realiza de la siguiente manera:

<input name="nombre" type="text" id="nombre" value="<? echo $nombre ?>" size="30" maxlength="20">

Como se observa, simplemente se necesita utilizar la instruccin echo para desplegar dentro del campo de texto el valor de $nombre.

Supongamos ahora que se obtiene de la base de datos utilizada en el sistema SOME, dos campos, el cdigo de la empresa, y el nombre, dados por cod_empresa y cod_razsoc. Se desea desplegar el listado en un elemento Lista/Men. El siguiente cdigo muestra un ejemplo de cmo hacer eso:

153

Tabla 6.4. Lista/Menu con elementos dinmicos.

<select name="menu1"> <? while (ora_fetch($cursor)) { $cod_empresa= ora_getcolumn($cursor,0); $nom_razsoc=ora_getcolumn($cursor,1); ?> <option value="<? echo $cod_empresa ?>" selected><? echo $nom_razsoc ?></option> <? } ?> </select>

Como se puede observar, mediante la instruccin ora_fetch se comienzan a extraer los elementos de una consulta previa. Los elementos son almacenados en dos variables, las cuales son llamadas dentro del cdigo html.

6.8. Interaccin entre Javascript y Php

Desafortunadamente, una variable de Php no puede ser referenciada desde Javascript de la misma manera que desde Html, como se mostr en la seccin anterior. Sin embargo, Javascript puede interactuar con los formularios en Html, por lo tanto la solucin es almacenar por ejemplo en un campo oculto dentro del formulario la variable deseada, y luego referenciarla desde Javascript, o sea,

154

supongamos que en el formulario (llamado form1) se tiene un campo oculto dado por:

<form name="form1" method="post" action="procesar.php"> <input name="campo_oculto" type="hidden" id="campo_oculto" value="1"> botn enviar </form>

Entonces, se puede referenciar desde Javascript mediante:

<script language=javascript> var1=document.form1.campo_oculto.value; </script>

Var1 entonces tiene el valor 1.

Ms adelante se ver otro ejemplo relacionado con la interaccin entre Javascript y Php.

6.9. Descripcin estructura pginas implementadas

Como se ha explicado, el sistema SOME es una aplicacin para web, programada en Php, y que realiza consultas a una base de datos Oracle. El sistema consta de:

Una pgina de inicio, donde se solicita el nombre de usuario y la clave. 155

Una pgina principal compuesta de tres frames, dos que contienen mens y uno donde se despliegan los formularios.

Pginas con extensin Php para poder utilizar las sesiones del mismo lenguaje, de modo de restringir la entrada a la aplicacin de personal no autorizado.

Un sistema de validacin de la informacin ingresada, basado en Javascript, el cual permite generar alertas similares a las de Visual Basic. Adems, como una manera de evitar que se ingrese informacin no vlida, se realiza una segunda comprobacin va Php.

Ventanas del tipo pop-up (emergentes) que permiten buscar informacin sobre algn ente (mdicos, pacientes, especialidades, etc...). Estas ventanas son generadas gracias a javascript, en combinacin con Php.

Un archivo de configuracin, con extensin inc.php, donde se incluirn las variables de conexin a Oracle, el cual es solicitado en cada una de las pginas que necesiten realizar una conexin a la base de datos.

Un archivo de verificacin del estado de un usuario (autentificado no autentificado), el cual es utilizado en cada una de las pginas que necesitan ser restringidas.

156

Un archivo encargado de generar un calendario en una ventana desplegable.

Un archivo del tipo inc.php que entrega la fecha del da.

Un archivo para cuando se produce un error debido a que el usuario ya cerr su sesin y otro para cuando el error se debe a que se est llamando directamente a una pgina.

Un archivo que redirecciona al usuario a la pgina correspondiente de acuerdo a su nivel de autorizacin. Esta informacin se encuentra contenida en la base de datos.

Un archivo de cierre de sesin, donde se destruyen las variables de sesin.

El resto de los archivos corresponden a las pginas con los formularios de ingreso, modificacin y consulta de registros.

Validacin y asignacin de los recursos a utilizar por el usuario, basados en informacin contenida en la base de datos.

157

6.10. Descripcin de algunos cdigos utilizados

En esta seccin se destacarn algunos trozos de cdigos que forman parte de las pginas implementadas, de modo de detallar an ms las caractersticas descritas anteriormente, y como una manera de dar a conocer la implementacin de las funcionalidades bsicas del sistema.

configuracion.inc.php: Contiene las variables de conexin a la base de datos. Es llamado cada vez que se realiza una conexin. Mediante la instruccin putenv se declaran las variables de entorno, que sirven para sealar la ubicacin fsica del directorio Oracle. Contiene adems los valores que sern solicitados para conectarse a la base de datos, a saber, nombre del dueo del servicio de la base de datos (SID), clave del usuario y nombre del servicio.

Tabla 6.5. Archivo configuracin.inc.php. <? // Datos conexin a la Base de datos (Oracle) putenv ('ORACLE_SID=Nombre_de_Servicio'); putenv ('ORACLE_HOME=/ruta_directorio_raz_de_oracle/); putenv ('TNS_ADMIN=/ruta_directorio_raz_de_oracle/network/admin'); $oracle_dominio="nombre_servidor.dominio"; // Host, nombre del dominio del servidor de base de datos de Oracle $oracle_sid="nombre_servicio.dominio"; //Nombre del Sid de la base de datos $oracle_own="dueo"; //Nombre dueo de la base de datos $oracle_pass="clave"; //Clave dueo de la base de datos ?>

158

verifica.php: Script llamado por cada una de las pginas del sitio, donde se comprueba si el usuario se encuentra autentificado, si ha ingresado por primera vez, o si est tratando de ingresar ilegalmente.

Tabla 6.6. Chequear si se llama directo al script. // Chequear si se llama directo al script if ($_SERVER['HTTP_REFERER'] == ""){ require("error.php"); exit; }

Tabla 6.7. Conexin a la base de datos. // Conexin base de datos // si no se puede conectar a la BD salimos del scrip y // redireccionamos a la pagina de error. $conn= @ora_logon("$login@$oracle_sid", "$password") or die(header ("Location: $redir?error_login=0"));

Tabla 6.8. Cerrar conexin a la base de datos. // Se cierra la conexin ora_logoff($conn);

La tabla 6.9. muestra un ejemplo de una consulta a la base de datos. En ella se obtiene el cdigo del sistema asignado a un usuario, desde la tabla SS_TRECURSOS, de modo de verificar si el usuario tiene o no tiene asignado el sistema SOME.

159

Tabla 6.9. Ejemplo consulta a la base de datos. $conn= @ora_logon("$oracle_own@$oracle_sid", "$oracle_pass"); $cursor= ora_open($conn); $sql= "select COD_SISTEMA from SS_TRECURSOS where COD_USUARI='$login'"; ora_parse($cursor, $sql); ora_exec($cursor); while (ora_fetch ($cursor)) // Comienzan a extraerse los registros { $COD_SISTEMA= ora_getcolumn($cursor,0); if ($COD_SISTEMA=='SOME') $user_some= 1; // Si user_some=1 entonces el usuario tiene asignado el sistema Some } ora_close($cursor);

Tabla 6.10. Creacin variables de sesin. // Grabamos los datos del usuario en una sesin y se da un nombre session_name('some'); // Inicia sesiones session_start(); // Se crea una variable de sesin con el valor del cdigo del men obtenido en la bsqueda $_SESSION["pagina"]=$PAGINA; // Se crea una variable de sesin con el nombre del usuario $_SESSION['login']=$login;

160

Tabla 6.11. Destruccin de variable. // Se destruyen las variables login y password usadas unset($login);

Tabla 6.12. Verificacin de sesin existente. // usamos la sesin de nombre definido. session_name('some'); // Iniciamos el uso de sesiones, se utiliza @ para evitar la salida a pantalla de advertencias @session_start(); // Chequeamos estn creadas las variables de sesin de identificacin del usuario, // El caso ms comn es el de una vez "matada" la sesin se intenta volver hacia atrs con el navegador. if (!isset($_SESSION['login']) && !isset($_SESSION['password'])){ // Borramos la sesin creada por el inicio de sesin anterior session_destroy(); require("error2.php"); exit; }

redirect: En esta pgina se solicitan las variables de sesin del archivo verifica.inc.php, y dependiendo de ellas se redirige al usuario a la pgina correspondiente.

Tabla 6.13. Archivo redirect.php. <? // Se solicita el archivo verifica.inc.php para recuperar variables de sesin, $_SESSION['validado'] por ejemplo... que ser 'yes' slo si el usuario ha sido debidamente autentificado require("verifica.inc.php");

161

// Si el usuario no est autentificado, entonces se llama a la pgina de error, y se sale del script if (!$_SESSION['validado'] == 'yes') { require ("error.php"); exit; } // Si el usuario no tiene asignado el sistema some para plataforma web, se sale del script if ($_SESSION['usuario_some'] == 0){ require("error.php"); exit; } else // de lo contrario, se redirige a la pgina especfica para el usuario, la cual fue obtenida de la base de datos { require ($_SESSION["pagina"]); // pagina contiene la pgina a la cual ser direccionado exit; } ?>

logout.php: Para salir del sitio. Mata la sesin y con ello las variables de sesin.

Tabla 6.14. Archivo logout.php. <? // Cargamos variables require ("configuracion.inc.php"); // llamamos a la sesin por su nombre session_name('some'); // iniciamos sesiones session_start(); // destruimos la sesin de usuarios. session_destroy();

162

?> <html> Resto del programa en html <html>

agenda.php

medicos.php:

Se

necesitaba

generar

el

siguiente

comportamiento, pues es utilizado en gran parte del sistema SOME: se presenta un formulario, con un botn de ayuda que desplegar un listado de registros en una nueva ventana, al hacer click sobre el registro seleccionado, uno o ms valores deban pasar al formulario original en la pgina padre. Se utiliz la propiedad window.opener de Javascript para referenciar desde la ventana hija (pop-up) los elementos de la pgina desde donde se solicit que se abriera sta. Antes se debi solucionar el problema relativo a las sesiones al abrir una nueva ventana, ya que se destrua. A continuacin se explican los pasos llevados a cabo para lograr realizar esta tarea de manera correcta.

Para el archivo agenda.php se debi realizar lo siguiente: se asigna a una variable llamada $pgreferer el valor de la pgina de referencia, o sea, $_SERVER['HTTP_REFERER'], para luego llamarla desde un campo oculto en el mismo documento, y de ah recuperarla tambin desde la seccin de Javascript. Se debe hacer el paso intermedio de asignar el valor de la variable a un campo oculto dentro del formulario, ya que no se puede llamar directamente en la seccin de Javascript. Finalmente, se utiliza una funcin 163

que abrir la nueva ventana, pasndole el parmetro de la pgina de referencia, lo que evitar que se destruya la sesin.

Tabla 6.15. Abrir nueva ventana sin destruir sesin, primera parte. <? $pgreferer = $_SERVER['HTTP_REFERER']; ?> <html> <head> <script language="JavaScript"> <!Comienzo seccin Javascript --> <!Abre una nueva ventana con el listado de mdicos del establecimiento. Se recuperan las variables de los campos ocultos del formulario, para pasarlas por la url a la ventana pop-up al momento de abrirse --> function mostrarMedicos() { <!Se referencia a las variable pgreferer, guardada en un campo oculto del formulario --> pgreferer= document.fagenda.ocultopgreferer.value; <!Se abre una nueva ventana, y se pasan las variables necesarias para que no se muera la sesin en la ventana pop-up --> sLista = window.open("medicos.php?pgreferer="+pgreferer, "consulta_medicos", "width=430,height=400,left=250,top=50,scrollbars=yes"); } function remLink() { if (window.sLista && window.sList.open && !window.sLista.closed) window.sLista.opener = null; } </script> <body>

164

<inicio del formulario fagenda> <input name="ocultopgreferer" type="hidden" id="ocultopgreferer" value="<? echo $pagreferer ?>"> <fin formulario>

Para el archivo medicos.php se debi realizar lo siguiente: recoger la variable pgreferer por el mtodo GET, debido a que fue enviada por la url. Luego se utiliza una funcin que captura los parmetros asociados al enlace sobre el cual se hace click, esta funcin se llama desde el listado de registros.

Tabla 6.16. Captura del enlace seleccionado para pasarlo al formulario en la ventana padre. <? // Se establece el valor de http_referer para que luego en verifica.inc.php no se termine la sesin @$_SERVER['HTTP_REFERER']= $_GET['pagreferer']; <html> <head> <script language="JavaScript"> <!-- Funciones que capturan los valores del cdigo del mdico y la profesin, para pasarlos al formulario en agenda.php una vez que el usuario hace click sobre alguno --> function captura1 (param1) { var1=param1; } function captura2 (param2) { var2=param2; } <!-- Se toman los valores entregados por la funcin pick y se asignan a los campos del formulario en agenda.php -->

165

function pick(var1,var2) { if (window.opener && !window.opener.closed) window.opener.document.fagenda.txtProfesional.value = var1; window.opener.document.fagenda.lblProfesional2.value = var2; window.close(); } </script> <body> al extraer los resultados de la consulta <a href="javascript:pick('<? echo $cod_promed ?>','<? echo $nom_nombre, ' ', $nom_apepat, ' ',$nom_apemat ?>')"><? Echo $cod_promed ?></a> fin extraccin de los registros </body> </html>

166

CONCLUSIONES

La utilizacin de la plataforma web presenta una serie de ventajas, entre las que se cuentan: accesibilidad (posibilidad de conectarse desde cualquier lugar, necesitando para ello slo un computador con conexin a Internet y con un navegador instalado), independencia de plataforma (no depende del sistema operativo ni navegador), software gratuito (con el consiguiente ahorro en compra de productos y licencias), entre otros.

Luego de una serie de pruebas de instalacin y configuracin de software (Oracle 9i, Apache, Php, entre otros...), bajo diferentes sistemas operativos (Windows 2000, Red Hat Linux 9) se logr dar las pautas de instalacin para cada una de los posibles escenarios de trabajo (en red, localmente), y finalmente se implement la plataforma en el servidor web real del SSAN.

Debido a que ya ha sido configurada la plataforma web, analizado el sistema, implementado las interfaces en Dreamweaver Mx, y programados algunas de las funciones bsicas de la aplicacin, se har mucho ms fcil la migracin total, por lo que su inauguracin debera coincidir con la instalacin de las redes en las comunas.

Los futuros sistemas a implementar contarn con una gua de referencia en lo que se refiere a instrucciones Php para Oracle, y algunas de las funciones utilizadas en SOME (autentificacin de usuario, creacin de sesiones, 167

asignacin de recursos para usuario), podrn ser utilizadas realizando algunas modificaciones por supuesto.

168

BIBLIOGRAFA

A continuacin se listan algunos sitios de inters, donde se puede profundizar en los temas tratados en este trabajo de ttulo.

Red Hat, 2004, Red Hat The Open Source Leader, http://www.redhat.com (visitado el 12-04-2004).

Roko

Roik,

2003,

Installing

Oracle

9iR2

on

Red

Hat

9,

http://www.linuxdevcenter.com/pub/a/linux/2003/09/04/oracle_install.html (visitado el 12-08-2004).

Jamie Cameron, 2004, Webmin, http://www.webmin.com (visitado el 12-082004).

Sun Microsystems, Inc., 1994-2004, Java Technology, http://java.sun.com (visitado el 12-08-2004).

Oracle, 1999-2004, Oracle Corporation, http://www.oracle.com (visitado el 12-08-2004).

The Apache Software Foundation, 1999-2004, Welcome! The Apache Software Foundation, http://www.apache.org (visitado el 12-08-2004).

169

The

PHP

Group,

2001-2004,

PHP:

Hypertext

Preprocessor,

http://www.php.net (visitado12-08-2004).

PhpFreak, 2002, Installing Apache Web Server + PHP 4 on Linux, http://www.phpfreaks.com/tutorials/12/0.php (visitado el 12-08-2004).

Teddy, 2002, How to install Apache/PHP for working with Oracle Database on Win32 Platform Draft, http://www.exzilla.net/docs/php-oci8/apache-phpoci8-01.php (visitado el 12-08-2004).

Macromedia, Inc., 1995-2004, Macromedia, http://www.macromedia.com (visitado 12-08-2004).

SWiSHzone.com, 2004, SwiSH Download Flash Animation Software, http://www.swishzone.com (visitado 12-08-2004).

Pedro Noves V. (Cluster), 2002, Autentificator: Gestin de Usuarios de PHP+MySql+sesiones, 12-08-2004). http://php.cluster-web.com/autentificator/ (visitado

170

ANEXOS

171

APENDICE A. Instalacin de Oracle 9i para Linux

1. Bajar los paquetes desde el sitio oficial: No existe un paquete independiente cliente 9i para Linux, como en Windows, por lo que se debe bajar la base de datos y desde ah instalar el cliente (custom). Los tres archivos se bajan a disco y luego se descomprimen. Para iniciar el instalador, se utiliza el archivo runInstaller que se encuentra dentro del primer disco, o sea, Disk1.

Ir a la direccin: http://otn.oracle.com. Hacer click en Downloads y luego en Oracle9i Database y finalmente en Oracle9i Database Release 2 Enterprise/Standard Edition for Linux. Aparecer una pgina en la cual deber aceptar las condiciones que pone Oracle para bajar sus productos, chequeando todas las casillas y presionando el botn I accept. Bajar los archivos:

lnx_920_disk1.cpio.gz (553,239,173 bytes) lnx_920_disk2.cpio.gz (588,798,999 bytes) lnx_920_disk3.cpio.gz (442,087,410 bytes)

Hay que tener en cuenta que estos archivos son bastante pesados, sobre los 400MB, por lo que se debe utilizar una conexin adsl como mnimo.

172

2. Descomprimir y desempaquetar los archivos: Se debe descomprimir y desempaquetar los archivos. Para ello existen dos mtodos:

En un paso (utiliza menos espacio de disco y es ms rpido). En la Consola de comandos, escribir:

$ $ $

zcat lnx_920_disk1.cpio.gz | cpio -idmv zcat lnx_920_disk2.cpio.gz | cpio -idmv zcat lnx_920_disk3.cpio.gz | cpio -idmv

En dos pasos, primero descomprimir:

$ gunzip lnx_920_disk1.cpio.gz lnx_920_disk2.cpio.gz lnx_920_disk3.cpio.gz Linux9i_Disk3.cpio.gz

Y luego desempaquetar:

$ cpio -idmv < lnx_920_disk1.cpio $ cpio -idmv < lnx_920_disk2.cpio $ cpio -idmv < lnx_920_disk3.cpio

Configurar parmetros del Kernel: Abrir el archivo sysctl.conf ubicado en /etc/ y agregar las siguientes lneas para establecer los parmetros del

kernel:

kernel.shmmax = 536870912 kernel.shmmni = 4096

173

kernel.shmall = 2097152 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000

Abrir el archivo limits.conf ubicado en /etc/security/ y se agregan las siguientes lneas para modificar los lmites de los recursos:

oracle soft nofile 65536 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384

Se reinicia el sistema para que los cambios aplicados al kernel hagan efecto. Si no se puede reiniciar el sistema, se pueden cambiar los parmetros del kernel en tiempo de ejecucin, mediante:

$ echo 250 32000 100 128 > /proc/sys/kernel/sem $ echo 536870912 > /proc/sys/kernel/shmmax $ echo 4096 > /proc/sys/kernel/shmmni $ echo 2097152 > /proc/sys/kernel/shmall $ echo 65536 > /proc/sys/fs/file-max $ echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

3. Agregar usuarios y grupos: Primero, se necesita crear los usuarios y grupos de instalacin de Oracle. La instalacin de Oracle necesita de dos grupos de usuario de Unix y un usuario Oracle. Se debe entrar como usuario root y ejecutar los siguientes comandos:

174

$ groupadd dba $ groupadd oinstall $ useradd -g oinstall -G dba oracle $ passwd oracle

La ltima instruccin pedir ingresar una clave para el usuario Oracle.

4. Creacin de directorios: Oracle recomienda una OFA, Arquitectura Flexible Optima para una estructura de servidor, pero en una mquina de desarrollo y por simpleza, se instalar todo en /opt/ora9. Se ejecutan los siguientes comandos como root:

$ mkdir -p /opt/ora9/product/9.2 $ mkdir /var/opt/oracle $ chown oracle.dba /var/opt/oracle $ chown -R oracle.dba /opt/ora9/* $ chmod 755 /var/opt/oracle

Con esto se crean los directorios de ejecucin de Oracle, se otorgan privilegios de escritura al usuario Oracle y privilegios de ejecucin al grupo dba.

5. Instalacin de herramientas y libreras requeridas: Se necesita instalar los siguientes paquetes de compatibilidad reversa de Red Hat y algunos paquetes de desarrollo de software antes de seguir adelante. Se debe verificar si ya estn instalados o no. Si alguno no est instalado, se puede encontrar en los cds de instalacin de Red Hat. 175

gcc-3.2.2-5 cpp-3.2.2-5 glibc-devel-2.3.2-11.9 binutils-2.13.90.0.18-9 compat-gcc-7.3-2.96.118.i386.rpm compat-libgcj-7.3-2.96.118.i386.rpm compat-libgcj-devel-7.3-2.96.118.i386.rpm nss_db-compat-2.2-20.i386.rpm

Para saber si un paquete est instalado, se ejecuta:

$ rpm q <nombre_paquete>

Los paquetes se pueden instalar simplemente haciendo doble click sobre ellos, o si se prefiere, va comandos, ejecutando:

$ rpm -Uvh nodeps <nombre de paquete>

6. Configuracin del entorno del usuario oracle: Ingresar como el usuario oracle:

$ su - oracle

176

Se configura el entorno bsico de Oracle (usuarios, paths) y algunos valores extra necesarios para que Oracle funcione correctamente en Red Hat 9. Se agregan las siguientes lneas al final del archivo .bashrc en /oracle/home:

# oracle 9i export ORACLE_BASE=/opt/ora9 export ORACLE_HOME=/opt/ora9/product/9.2 export PATH=$ ORACLE_HOME/bin:$ ORACLE_HOME/Apache/Apache/bin:$ PATH export ORACLE_OWNER=oracle export ORACLE_SID=ora9i export ORACLE_TERM=xterm # Use old Linuxthreads with floating stacks instead of # the new Native POSIX Thread Library (NPTL) export LD_ASSUME_KERNEL=2.4.1 export THREADS_FLAG=native # Edit paths export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$ LD_LIBRARY_PATH export PATH=/opt/ora9/product/9.2/bin:$ PATH # # change this NLS settings to suit your country: # example: # german_germany.we8iso8859p15, american_america.we8iso8859p2 etc. # export NLS_LANG='spanish_spain.e8bs2000'

Se utiliza la configuracin de idioma en espaol. El kernel de Red Hat 9 Linux viene con la versin nueva de Native POSIX Thread Library, lo que hace que la instalacin de Oracle se cuelgue. Al establecer la variable LD_ASSUME_KERNEL a una versin anterior del kernel, lo que se hace es decirle a Linux que utilice las libreras antiguas.

177

Finalmente, se debe dar permiso al usuario oracle para escribir al X display. Es importante tener en cuenta que el instalador de Oracle debe ser ejecutado desde X, con el usuario oracle.

$ xhost +127.0.0.1

7. Instalar Oracle 9i: Todava utilizando el usuario Oracle, se va a la carpeta donde se descomprimi el archivo lnx_920_disk1.cpio.gz, se encuentra la carpeta Disk1 y se ejecuta:

$ ./runInstaller

Aparecer el mensaje:

Initializing Java Virtual Machine from /tmp/OraInstall2003-11-13_0540-04PM/jre/bin/java. Please wait...

En alguna parte de la instalacin, se necesitar ejecutar scrips como usuario raz (root), como se muestra en la Figura A.1.

178

Se abre una nueva ventana de consola y se ingresa como usuario root:

Figura A.1. Alerta Ejecutar script como usuario root.

$ su root

Se ingresa la clave y entonces se ejecuta:

$ cd /tmp/ $ ./orainstRoot.sh

Se enva el mensaje:

Creando el archivo de punteros del inventario de Oracle (/etc/oraInst.loc)

Ahora, presionar el botn Continuar.

179

En el Tipo de instalacin, se selecciona Custom .

Como lo que se desea es tener algunas de las herramientas de administracin remota del servidor, para efectuar mantencin en la base de datos o consultar a las tablas va SqlPlus por ejemplo, se instalarn los siguientes paquetes como mnimo:

De Oracle Programmer se instala:

Oracle Objects for OLE Oracle ODBC Driver Oracle Provider for OLE BD

De Oracle Enterprise Manager Products se instala:

Oracle Enterprise Manager Client

De Oracle 9i Development Kit: Oracle C++ Call Interface Oracle Call Interface (oci)

De Oracle Programmer Oracle XML Developers Kit

180

Y finalmente Oracle Net Services.

Se debe ejecutar un segundo script como root. Aparece una alerta como la que se muestra en la A.2.

Figura A.2. Ejecutar segundo script como usuario root.

Se debe dejar la instalacin hasta ah por el momento, volver a la consola en la cual se inicio sesin como root y ejecutar el siguiente comando:

$ cdm/opt/ora9/product/9.2/ $ ./root.sh

Aparecer el siguiente mensaje:

Running Oracle 9 root.sh script \nThe following enviroment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /opt/ora9/product/9.2 Enter the full pathname of the local bin directory: [/usr/local/bin]:

181

Se presiona <ENTER>.

Al finalizar la instalacin del cliente, se inicia automticamente el Asistente de Configuracin de Red de Oracle, herramienta que permite establecer algunos valores como nombre, direccin ip o nombre del servidor, etc... del servidor de base de datos al cual se desea conectar.

Se debe seleccionar Realizar una configuracin tpica . Luego, en la seccin de los nombres de directorio se seleccionar la opcin No, crear nombres de servicio de red yo mismo .

Ante la pregunta: A qu versin de la base de datos o servicio Oracle desea acceder? se debe seleccionar Base de datos o servicio Oracle8i o posterior.

En Nombre del Servicio se especifica el nombre del SID. Nombre otorgado al identificador del servicio de base de datos. Se selecciona el protocolo de comunicacin TCP. En Nombre del Host se especifica el ip del servidor de base de datos. Ante la pregunta: Desea probar que se puede establecer una conexin con la base de datos?, se responde que No. No se

realizar una prueba de conexin, pues primero se verificar si se han creado correctamente los archivos de configuracin tnsnames.ora y sqlnet.ora. Posteriormente se agregar la base de datos directamente mediante el Enterprise Manager Console. 182

8. Correccin errores durante la instalacin: Durante la instalacin del cliente Oracle para Linux, se pueden producir alguno de los siguientes errores:

Error 1: Puede aparecer una alerta informando de problemas con el archivo ins_oemagent.mk. Este aviso se puede ignorar, y corregir posteriormente al finalizar la instalacin. Una vez instalado todo, se debe abrir una ventana de consola de comando y ejecutar lo siguiente:

$ su oracle $ cd /opt/ora9/product/9.2/network/lib $ make -f ins_net_client.mk install

Luego,

se

edita

el

archivo

ins_ctx.mk

ubicado

en

ORACLE_HOME/ctx/lib/. Se cambian las lneas 13 y 14 de:

ctxhx: $ (CTXHXOBJ) $ (LINK) $ (CTXHXOBJ) $ (INSO_LINK)

a:
ctxhx: $ (CTXHXOBJ) $ (LINK) -ldl $ (CTXHXOBJ) $ (INSO_LINK)

Entonces se puede volver a ejecutar:


$ make -f /opt/ora9/product/9.2/ctx/lib/ins_ctx.mk install

Error 2: Puede aparecer el siguiente error: Error in invoking target install of makefile $ ORACLE_HOME/ctx/lib/ins_ctx.mk. Este error se debe corregir 183

durante la instalacin. Se debe abrir una consola de comados y ejecutar los siguientes comandos:

$ cd oracle $ cd

/opt/ora9/product/9.2/install

$ tail make.log

Se ver una lnea como esta:

gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/ L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/ /opt/ora9/product/9.2/ctx/lib/ctxhx.o -L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9

Se debe copiar esa lnea, agregarle -ldl al final y ejecutarla en /opt/ora9/product/9.2/bin. O sea:

$ cd

/opt/ora9/product/9.2/bin

$ gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/ -L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/ /opt/ora9/product/9.2/ctx/lib/ctxhx.o L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 lcore9

184

-lnls9 -lxml9 -lcore9 -lunls9 -lnls9 ldl

Con esto se soluciona el problema, por lo que se puede ignorar la alerta y continuar con la instalacin.

Error 3: Se puede producir un error en la iniciacin del agente, este error tambin hay que ignorarlo, ya que se corrige post-instalacin al corregir el error 1.

Puede que se produzca un alerta de error durante la instalacin, relacionado con un archivo de extensin pdf que no puede ser copiado, la cual se puede ignorar.

9. Verificacin de los archivos tnsnames.ora y sqlnet.ora: Antes de proceder a utilizar las herramientas que se instalaron, se debe verificar que los archivos de configuracin de Oracle estn correctos. Estos archivos se encuentran en: /opt/ora9/product/9.2/network/admin/. Abrir el archivo

tnsnames.ora con algn editor de texto, y verificar que la configuracin sea como la que sigue:

# TNSNAMES.ORA Network Configuration File: /opt/ora9/product/9.2/network/admin/tnsnames.ora # Generated by Oracle configuration tools. Nombre_SID.nombre dominio servidor base datos = (DESCRIPTION = (ADDRESS_LIST =

185

(ADDRESS = (PROTOCOL = TCP)(HOST = ip servidor base datos)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = nombre SID)) )

Hay que poner cuidado con esto, porque a veces el instalador de Oracle pone como nombre del dominio del servidor de base de datos el dominio que se le dio al equipo donde se est instalando, lo mismo para el archivo sqlnet.ora. Por otro lado, el archivo sqlnet.ora debe tener la siguiente configuracin:

# SQLNET.ORA Network Configuration File: /opt/ora/product/9,2/network/admin/sqlnet.ora # Generated by Oracle configuration tools. NAMES.DEFAULT_DOMAIN = dominio servidor base de datos SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

186

APENDICE B. Instalacin del cliente Oracle para Windows

La instalacin del cliente para Windows es mucho ms sencilla que la de Linux. Simplemente se baja el paquete desde el sitio oficial del producto, y se procede a la instalacin. A diferencia de Linux, s existe un paquete exclusivamente cliente de Oracle, lo que implica bajar solamente un archivo. Esta instalacin es til si se quiere trabajar desde un equipo de prueba bajo Windows, que se encuentra conectado al servidor de base de datos bajo una red.

1.

Bajar

el

paquete

desde

el

sitio

oficial:

Ir

la

direccin:

http://otn.oracle.com. Hacer click en Downloads y luego en Oracle9i Database y finalmente en Oracle9i Database Release 2 Client for Windows 98/NT/2000/XP. Aparecer una pgina en la cual deber aceptar las condiciones que pone Oracle para bajar sus productos, chequeando todas las casillas, y presionando el botn I accept. Bajar el archivo:

92010NT_CLT.zip (625,543,653 bytes)

2.

Descomprimir e instalar el cliente: Se descomprime el archivo y se instala la aplicacin. La instalacin es muy similar a la de Linux, pero ms simple. Se elige tipo de instalacin Personalizado y se procede a instalar lo siguiente:

187

De Oracle Programmer se instala:

Oracle Objects for OLE Oracle ODBC Driver Oracle Provider for OLE BD

De Oracle Enterprise Manager Products se instala:

Oracle Enterprise Manager Client

Finalmente, el Oracle Net Services.

De esta manera, se ha instalado y configurado el servidor de base de datos, para ejecutar consultas a los registros mediante Php.

188

APENDICE C. Instalar la base de datos Oracle bajo Windows

1. Instalar software: Se seleccionar instalar slo el software, la creacin de la base de datos se har manualmente, mediante la creacin de los DataFiles.

2. Creacin de los Datafiles: En la consola de SQLPlus, habiendo ingresado como usuario administrador, se crean los siguientes tablespaces: TDATOS, TTEMPORAL, y TTINDEX.

SQL> CREATE

TABLESPACE TDATOS

DATAFILE C:\ORACLEHOME\ORADATA\DUEO_BD\TDATOS.DBF SIZE 2500M AUTOEXTENT ON NEXT 100M MAXSIZE 3000M;

La instruccin anterior, le dice a Oracle que cree el tablespace TDATOS, que lo cree en la ruta indicada, con un tamao de 2500Mb, extendible hasta 3000Mb, de 100Mb en 100Mb.

SQL> CREATE TEMPORARY TABLESPACE TTEMPORAL TEMP FILE C:\ORACLEHOME\ORADATA\DUEO_BD\TTEMPORAL.DBF SIZE 1000M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K;

SQL> CREATE TABLESPACE TINDICE DATAFILE C:\ORACLEHOME\ORADATA\DUEO_BD\TINDICE.DBF SIZE 1500M AUTOEXTENT ON NEXT 100M MAZSIZE 2000M;

189

3. Creacin del usuario dueo de la base de datos: Se utiliza el usuario por defecto creado por la base de datos Oracle, para ejecutar las instrucciones SQL necesarias para crear los archivos antes mencionados. Los usuarios por defecto y las claves correspondientes son las siguientes:

Usuario: SYS Clave: change on install Usuario: SYSTEM Clave: manager

Mediante la utilidad de lnea de comandos de Windows, navegar hasta la carpeta BIN en el directorio raz de Oracle y ejecutar el siguiente comando:

C:\ORACLEHOME\BIN\sqlplus /nolog

De esta manera se entra a SQLPlus, desde donde se conectar como usuario administrador, de la siguiente manera:

SQL> connect system/clave_system as sysdba

Se debe crear el usuario dueo de las tablas, y otorgarle los permisos sobre los tablespaces creados anteriormente, de modo de poder importar el archivo que contiene las tablas. El usuario creado tendr privilegios de Administrador de la base de datos. En la consola de SQL ejecutar:

SQL> create user dueo_base_datos Identified by clave

190

default tablespace tdatos temporary tablespace ttemporal;

Luego se le asigna al usuario dueo de la base de datos, el privilegio de administrador mediante la instruccin:

SQL> grant dba to usuario_dueo_base_datos;

Y se sale de la aplicacin:

SQL> exit;

4. Importar base de datos: Mediante

la utilidad lnea de comandos de

Windows, se navega hasta la carpeta que contiene el archivo de exportacin de las tablas, el cual fue exportado mediante la instruccin:

C:\ EXP FILE=nombre_archivo.dmp USERID=dueo_base_datos/clave full=y ignore=y

Para importar se ejecuta la instruccin:

C:\ IMP FILE=nombre_archivo.dmp USERID=dueo_base_datos/clave full=y ignore=y

La instruccin anterior dice relacin con importar el archivo bajo el perfil del nombre del dueo de la base de datos. Se importan todas las tablas, y se ignoran los errores. 191

APENDICE D. Instalacin de Apache y Php para Windows 2000

D.1. Instalacin de Apache para Windows 2000

1.

Bajar

Apache

para

Windows y

desde

el

sitio la

oficial:

Ir

http://www.apache.org

descargar

versin

apache_1.3.<ltimas_versin>-win32-x86-src. Se debe utilizar esta versin en vez de la 2, por ser ms estable para trabajar con PHP.

2.

Instalar el paquete: Se ejecuta al archivo y se comienza la instalacin. Seguir las instrucciones de instalacin.

3.

Probar el servidor Apache: Ir al Men de Inicio-Programas-Apache Http Server-Control Apache Server-Start para iniciar el servidor.

4.

En el navegador, ir a la direccin http://localhost/ o http://nombredelhost/. Se despliega la pgina de bienvenida al servidor Apache.

D.2. Instalacin de PHP de Windows 2000

1. Bajar PHP para Windows desde el sitio oficial: Ir a la pgina de PHP en http://www.php.net y bajar la ltima actualizacin de la versin 4 del paquete. Para Windows, se deben bajar dos archivos: PHP 192

4.3.<ltima_versin>-Win32 (archivo zip) y PHP 4.3.<ultima_versin> installer.

2. Instalar el paquete: Ejecutar PHP 4.3.<ltima_versin> y seguir los pasos para instalar la aplicacin. Cuando se pregunta sobre el tipo de servidor http configurado para ejecutar PHP, se debe seleccionar Apache.

Cuando la instalacin muestre la alerta que se muestra en la Figura D.1, notificando que el software no pudo configurar automticamente el archivo httpd.conf, simplemente se debe presionar OK, pues se configurar manualmente post instalacin.

Figura D.1. Alerta para configurar manualmente el archivo httpd.conf.

3. Descomprimir archivo zip: Se procede a descomprimir el archivo PHP 4.3.<ltima_versin>-Win32.zip y se copia el contenido de la carpeta a C:\PHP. Habrn algunos archivos que ya existen, por lo que se enva un aviso respecto a si se desea reemplazar los archivos existentes, ante lo cual se responde con reemplazar todo.

193

4. Copiar archivos a otras carpetas: Copiar el archivo php4ts.dll ubicado en c:\php\ a c:\winnt\system32\.

Copiar el archivo php.ini-dist a c:\winnt\. Cambiarle el nombre a php.ini y editarlo con el block de notas. Descomentarizar las extensiones para oracle:

;extension=php_msql.dll extension=php_oci8.dll ;extension=php_openssl.dll extension=php_oracle.dll ;extension=php_pdf.dll

Buscar la lnea donde dice extension_dir, para indicar la ruta a las extensiones de php:

; Directory in which the loadable extensions (modules) reside. extension_dir = "c:\php\extensions"

A continuacin, se debe configurar el archivo httpd.conf de Apache, para que PHP funcione con el servidor.

Editar el archivo de configuracin de Apache para que funcione con PHP: Agregar la siguiente lnea al final del archivo httpd.conf, ubicado en: c:/Program Files/Apache Group/Apache/conf:

LoadModule php4_module c:/php/sapi/php4apache.dll AddType application/x-httpd-php .php

194

5. Copiar el archivo oci.dll al directorio de Apache: Copiar el archivo oci.dll ubicado en el directorio de Oracle, en la carpeta bin: $ ORACLE_HOME/bin/ a C:\Archivos de Programa\Apache Group\Apache\.

6. Reiniciar el servidor Apache: Ir a Men de inicio-Apache http ServerControl Apache Server-Restart.

7. Crear primer programa de prueba en PHP: En el block de notas se escribe:

<?php print phpinfo(); ?>

Y se graba como phpinfo.php en: C:\Archivos de Programa\Apache\Apache Groups\htdocs\.

8. Probar programa en Php: Ir al explorador de Windows y escribir la URL http://localhost/phpinfo.php.

En la pgina deberan reconocerse las libreras de Oracle, oci8 y oracle, como se muestra en la Figura D.2.

195

Figura D.2. Libreras de Oracle en pgina de prueba de Php.

196

APENDICE E. Instalacin de Apache y Php para Red Hat Linux 9

E.1. Instalacin de Apache para Red Hat Linux 9

1. Bajar el archivo fuente de Apache para Linux desde el sitio oficial: Ir a http://www.apache.org y descargar la versin 1.3.29 para Linux:

apache_1.3.29.tar.gz. Se debe utilizar esta versin en vez de la 2, por ser ms estable para trabajar con PHP.

2. Desempacar el paquete fuente:

$ tar zxvf apache_1.3.29.tar.gz

Copiar la carpeta apache_1.3.29 a /usr/local/src.

3. Crear un script de instalacin de Apache: En la consola de comandos, se utiliza el editor vi y se crea el archivo apache_install:

$ vi apache_install

Escribir lo siguiente:

197

cd /usr/local/src/apache_1.3.29 ./configure \ --prefix=/usr/local/apache \ --enable-module=so \ --enable-module=rewrite \ --enable-shared=rewrite \ --enable-module=setenvif \ --enable-shared=setenvif \ --enable-module=mime \ --enable-shared=mime \ --enable-module=mime_magic \ --enable-shared=mime_magic \ --enable-module=speling \ --enable-shared=speling \ --enable-module=dir \ --enable-shared=dir \ --enable-module=auth \ --enable-shared=auth \ --enable-module=access \ --enable-shared=access \ --enable-module=alias \ --enable-shared=alias \ --enable-module=status \ --enable-shared=status \ --enable-module=userdir \ --enable-module=actions \ --enable-shared=actions \ --enable-module=cgi \ --enable-shared=cgi \ --enable-shared=userdir \ --enable-module=vhost_alias \ --enable-shared=vhost_alias \ --enable-module=env \ --enable-shared=env \ --enable-module=log_referer \ --enable-shared=log_referer \ --enable-module=log_config \ --enable-shared=log_config \

198

--enable-module=log_agent \ --enable-shared=log_agent \ --enable-module=headers \ --enable-shared=headers \ --enable-module=mod_so.c \ --enable-module=http_core.c make make install

La lnea cd /usr/local/src/apache_1.3.29 hace referencia a la ruta donde se desempac el archivo fuente. La lnea --prefix=/usr/local/apache \ especifica donde se desea instalar apache.

Al terminar se presiona <Esc>:wq para grabar el archivo y salir del editor vi.

E.2. Instalacin de Php para Red Hat Linux 9

1. Bajar el archivo fuente de Php para Linux desde el sitio oficial: Ir a http://www.php.net y descargar la ltima actualizacin para la versin 4 de Php: PHP 4.3.<ltima_versin> (tar.gz).

2. Desempacar el paquete fuente:

$ tar zxvf php-4.3.<ltima_versin>.tar.gz

Copiar la carpeta php_1.3.29 a /usr/local/src.

199

3. Crear un script de instalacin de Apache: En la consola de comandos, se utiliza el editor vi y se crea el archivo php_install:

$ vi php_install

y escribir:

cd /usr/local/src/php-4.3.4 ./configure \ --with-oci8=/opt/ora9/product/9.2 \ --with-oracle=/opt/ora9/product/9.2 \ --with-mysql \ --with-apxs=/usr/local/apache/bin/apxs make install

La lnea cd /usr/local/src/php-4.3.4 indica la ruta donde se desempaquet el archivo.

Las lneas:

--with-oci8=/opt/ora9/product/9.2 \ y --with-oracle=/opt/ora9/product/9.2 \

indican la ruta del $ ORACLE_HOME, donde se instala Oracle.

200

Finalmente, la lnea --with-apxs=/usr/local/apache/bin/apxs especifica la ruta al archivo apxs en el directorio de apache.

4. Hacer ejecutables los scripts: En la consola de comandos, se ejecutan los comandos:

$ chmod +x apache_install $ chmod +x php_install

5. Ejecutar los scripts de instalacin:

$ ./apache_install

Comenzar la instalacin de apache. Posteriormente, se ejecuta el script para instalar Php, php_install.

$ ./php_install

Al igual que en la instalacin anterior se ver una serie de cosas sucediendo en la consola, hay que estar atento a ver si no se enva ningn mensaje de error.

6. Copiar el archivo php.ini: Tomar el archivo php.ini-dist y copiarlo a usr/local/lib y cambiarle el nombre a php.ini.

201

$ cp php.ini-dist /usr/local/lib/php.ini

7. Configurar PHP: Editar el archivo php.ini y descomentarizar las lneas que hacen alusin a las extensiones de Oracle:

;extension=php_msql.dll extension=php_oci8.dll ;extension=php_openssl.dll extension=php_oracle.dll ;extension=php_pdf.dll

8. Configurar Apache para que funcione con PHP: Se debe editar el archivo de configuracin de Apache, httpd.conf, ubicado en /usr/local/apache/conf/ ya que por defecto, no soporta Php.

Se busca una seccin parecida a esta:

LoadModule vhost_alias_module libexec/mod_vhost_alias.so LoadModule env_module libexec/mod_env.so LoadModule config_log_module libexec/mod_log_config.so LoadModule agent_log_module libexec/mod_log_agent.so LoadModule referer_log_module libexec/mod_log_referer.so LoadModule mime_module libexec/mod_mime.so LoadModule autoindex_module libexec/mod_autoindex.so LoadModule dir_module libexec/mod_dir.so LoadModule action_module libexec/mod_actions.so LoadModule speling_module libexec/mod_speling.so LoadModule userdir_module libexec/mod_userdir.so LoadModule alias_module libexec/mod_alias.so LoadModule rewrite_module libexec/mod_rewrite.so LoadModule access_module libexec/mod_access.so

202

LoadModule auth_module libexec/mod_auth.so LoadModule headers_module libexec/mod_headers.so LoadModule setenvif_module libexec/mod_setenvif.so Y se agrega: LoadModule php4_module libexec/libphp4.so. Se busca un listado parecido al siguiente: ClearModuleList AddModule mod_vhost_alias.c AddModule mod_env.c AddModule mod_log_config.c AddModule mod_log_agent.c AddModule mod_log_referer.c AddModule mod_mime.c AddModule mod_negotiation.c AddModule mod_status.c AddModule mod_include.c AddModule mod_autoindex.c AddModule mod_dir.c AddModule mod_cgi.c AddModule mod_asis.c AddModule mod_imap.c AddModule mod_actions.c AddModule mod_speling.c AddModule mod_userdir.c AddModule mod_alias.c AddModule mod_rewrite.c AddModule mod_access.c AddModule mod_auth.c AddModule mod_headers.c AddModule mod_so.c AddModule mod_setenvif.c

Se agrega la lnea: AddModule mod_php4.c

203

Se necesita que Apache sepa qu hacer con los scripts de PHP. Se busca la lnea:

AddType application/x-tar .tgz

Y se agregan las lneas que aparecen a continuacin:

AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

A continuacin se configuran algunos documentos de directorio por defecto. Se debe buscar la lnea que dice:

DirectoryIndex index.html

Y cambiarla a:

DirectoryIndex index.html index.php default.php index.htm

Finalmente, se graba el documento y se sale.

9. Iniciar el servidor web Apache: Primero, se prueba si la configuracin del archivo httpd.conf es correcta mediante la instruccin:

204

$ /usr/local/apache/bin/apachectl configtest

Se debe obtener como resultado:

"SYNTAX OK".

Si la sintaxis es correcta, se procede a iniciar el servidor mediante:

$ /usr/local/apache/bin/apachectl start

Finalmente, dirigir el navegador a la direccin: http://localhost/

Nota: Para detener apache ejecutar se debe ejecutar en una ventana con la consola de comandos: /usr/local/apache/bin/apachectl stop.

Probar el primer script de Php: Con el editor vi, se crea el archivo phpinfo.php en /usr/local/apache/htdocs.

$ vi phpinfo.php

Escribir:

<?php phpinfo(); ?>

205

Para grabar y salir:

<Esc>:wq

Ir al navegador y escribir http://localhost/phpinfo.php. En esta misma pgina debe aparecer sealadas las referencias a oracle y oic8.

Con esto, el servidor web Apache est habilitado para interpretar pginas web del tipo Php.

206

APENDICE F. Algunas funciones Php (ORA) para Oracle

Ora_Close (PHP 3, PHP 4 ): Cierra un cursor Oracle.

Descripcin:

int ora_close ( int cursor)

Devuelve verdadero si el cierre fue exitoso, o falso de lo contrario. Los detalles de los errores se recuperan usando las funciones ora_error() y

ora_errorcode(). Esta funcin cierra un cursor de datos abierto con ora_open().

Ora_Exec (PHP 3, PHP 4 ): Ejecuta las declaraciones interpretadas en un cursor Oracle.

Descripcin:

int ora_exec ( int cursor)

Devuelve verdadero ante la ejecucin exitosa, de lo contrario, devuelve falso. Los detalles del error pueden verse invocando las funciones ora_error() y ora_errorcode().

Ora_Fetch (PHP 3, PHP 4): Extrae una fila de datos a partir de un cursor. 207

Descripcin:

int ora_fetch ( int cursor)

Devuelve verdadero (se extrajo una fila) o falso (no hay mas filas, o ha ocurrido un error). Si ocurre un error, los detalles del mismo pueden verse invocando las funciones funciones ora_error() y ora_errorcode(). Si no hubo errores, funciones ora_errorcode() devolver 0. Recupera una hilera de datos partiendo de un cursor especificado.

Ora_Fetch_Into (PHP 3, PHP 4): Recupera una fila en un arreglo especificado.

Descripcin:

int ora_fetch_into ( int cursor, array result [, int flags])

<?php $results = array(); ora_fetch_into($cursor, $results); echo $results[0]; echo $results[1]; $results = array();

208

ora_fetch_into($cursor, $results, ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC); echo $results['MyColumn']; ?>


Tabla F1. Ejemplo de ora_fetch_into.

Ora_GetColumn (PHP 3, PHP 4): Toma datos de la fila extrada.

Descripcin:

mixed ora_getcolumn ( int cursor, mixed column)

Devuelve la columna de datos. Si hay un error, ora_errorcode() devuelve un valor distinto de cero. Note, de igual manera, que la bsqueda de un resultado Falso en esta funcin, puede resultar verdadera, an en casos en que no ocurran errores: (resultado NULO, cadenas vacas, valor 0 o cadenas "0"). Extrae los datos para una columna o resultado de funcin.

Ora_Logoff (PHP 3, PHP 4): Cierra una conexin Oracle.

Descripcin:

int ora_logoff ( int connection)

209

Devuelve verdadero si es exitosa, o falso si hay errores. Los detalles del error pueden verse invocando las funciones ora_error() y ora_errorcode(). Cierra la sesin de trabajo del usuario, y lo desconecta del servidor.

Ora_Logon (PHP 3, PHP 4): Abre una conexin Oracle.

Descripcin:

int ora_logon ( string usuario, string contrasea)

Establece una conexin entre PHP y una base de datos Oracle, con los datos de nombre de usuario y contrasea especificados.

Las conexiones pueden llevarse adelante usando SQL*Net indicando el nombre TNS al usuario de este modo:

$conn = Ora_Logon("usuario@TNSNAME", "contrasea");

Si hubiese datos con caracteres no-ASCII, habra que asegurarse que est presente la variable de entorno NLS_LANG en el sistema. Para los mdulos de servidor, deberan definirse en el entorno del servidor antes de iniciarlo.

210

Devuelve el ndice de la conexin si aquella tuvo xito, de lo contrario devuelve falso. Los detalles del error pueden verse invocando las funciones ora_error() y ora_errorcode().

Ora_Numcols (PHP 3, PHP 4 ): Retorna el nmero de columnas.

Descripcin:

int ora_numcols ( int cursor_ind)

Slo regresa valores significativos luego de una secuencia parse/exec/fetch.

Ora_Numrows (PHP 3, PHP 4): Retorna el nmero de filas.

Descripcin:

int ora_numrows ( int cursor_ind)

Ora_Open (PHP 3, PHP 4): Abre un cursor Oracle.

Descripcin:

int ora_open ( int connection)

211

Abre un cursor asociado con la conexin.

Devuelve el ndice del cursor o Falso si hay un error. Los detalles del error pueden verse invocando las funciones ora_error() y ora_errorcode().

Ora_Parse (PHP 3, PHP 4): Interpreta una declaracin SQL.

Descripcin:

int ora_parse ( int cursor_ind, string sql_statement, int defer)

Esta funcin interpreta una declaracin SQL o un bloque PL/SQL y los asocia con el cursor dado. Devuelve 0 si se ejecuta con xito, o -1 ante un error.

212

S-ar putea să vă placă și