manual tecnico de sixar's
DESCRIPTION
MANUAL DE SOFTWARE MEDICO ELABORADO POR INGENIERO SANCHEZTRANSCRIPT
1
Indicé
Introducción ..................................................................................................................................... 3
Descripción del problema ............................................................................................................ 4
Consulta Externa ........................................................................................................................ 5
Pasos para la atención de Consulta Externa ...................................................................... 5
Los Requisitos para nuevos pacientes: ............................................................................... 6
Necesidades del cliente ................................................................................................................ 7
Objetivos........................................................................................................................................... 8
Objetivos Generales ..................................................................................................................... 8
Objetivos Específicos .................................................................................................................. 8
Oportunidades del sistema .......................................................................................................... 9
Arquitectura del sistema ............................................................................................................ 10
Estudio de Factibilidad ............................................................................................................... 12
Factibilidad Técnica ................................................................................................................. 12
Factibilidad Operativa ............................................................................................................. 13
Factibilidad Económica .......................................................................................................... 13
Modelo de proceso ...................................................................................................................... 16
Diagramas Casos de Uso “Registrar pacientes” ................................................................. 17
Diagramas Casos de Uso “Inscribir Pacientes” .................................................................. 18
Diagramas de Colaboración ...................................................................................................... 18
Diagramas de Secuencias...................................................................................................... 20
Diagramas de Clases ................................................................................................................... 21
Diagramas de Casos de Uso ................................................................................................. 22
Diagramas de Contexto .......................................................................................................... 23
Diagrama de Flujo .................................................................................................................... 24
Diagrama hijo 1.1 ...................................................................................................................... 25
Diagrama hijo 2.1 ...................................................................................................................... 26
Diagrama de Entidad Relación ............................................................................................. 27
Diccionario de Datos ................................................................................................................... 28
Diagrama de Bases de Datos .................................................................................................... 29
Código Fuente del Sistema. ...................................................................................................... 30
2
Conclusiones ................................................................................................................................. 74
Anexos ............................................................................................................................................ 75
Herramienta CASE utilizada ...................................................................................................... 76
Casos de prueba ....................................................................................................................... 76
Proformas de equipos obtenidas para el estudio de factibilidad ................................ 77
Documentos proporcionados por el cliente. ........................................................................ 78
Hoja de Consultas .................................................................................................................... 78
Hoja de registro ........................................................................................................................ 78
Entrevista ................................................................................................................................... 79
Bibliografía ..................................................................................................................................... 80
3
Introducción
Hoy en día con el avance de la tecnología informática, implementada en las
empresas donde los sistemas informáticos forman parte importante en la eficacia y
eficiencia del funcionamiento de toda empresa, poder realizar esta nueva
adaptación informática en una empresa familiar en desarrollo abre las puertas hacia
una nueva forma de gestión, además supone ahorro de dinero, trabajo y mayor
organización dejando de lado el sistema de registro manual por archivos que
conlleva mayor probabilidad de equivocaciones.
Este nuevo sistema en implementación permitirá entrar en una nueva etapa
permitiendo avanzar hacia una nueva forma de trabajo.
Se caracteriza la era de la información, sus componentes; así como el impacto de
las tecnologías de la información y las comunicaciones en los sistemas
empresariales. Se particulariza en la importancia y el papel de la gestión de
información y el conocimiento como recursos estratégicos para el logro de los
objetivos notables en la empresa.
A nivel global la información automatizada se ha establecido como un elemento vital
en las diferentes empresas o instituciones.
4
Descripción del problema El hospital es una unidad en donde se atiende a la población de toda la región en diferentes especialidades. Se le elabora un Expediente a los pacientes los cuales se archivan por numeraciones y por apellidos no hay registros en el sistema. En el Hospital San Juan de Dios ofrece 16 especialidades en consulta externa que son:
PEDIATRIA OFTALMOLOGIA
ORTOPEDIA CARDIOLOGIA
CIRUGIA PEDIATRICA OTORRINO
ORULOGIA MEDICINA INTERNA
PSICOLOGIA MAXILO FACIAL
FISIATRIA CIRUGIA PLASTICA
DERMATOLOGIA CIRUGIA GENERAL
GINECOLOGIA HEMATO ONCOLOGIA
Cada especialidad tiene una agenda. El paciente que es referido por cualquier
centro de salud u hospital nacional tiene que ir primero a estadística para buscar un
número de expediente el que se busca un tarjetero manual que este por orden
alfabético donde se busca el paciente.
Si tiene el número de expediente se le da y se manda a atención al usuario donde
le van a programar las citas según agenda u orden médica. Y si no tiene número se
le da un numero nuevo a cada paciente se le entregara su número y se le pide que
lo guarde para así seguir programando citas si es referido.
Nota:
Los números de expediente tienen 6 dígitos por ej. 09-10-08 las numeraciones de las secciones son de 00-99.
Cada sección tiene un número.
Se busca primero los últimos dos dígitos 08 y después son ubicadas los dos primeros y después los dos dígitos del centro.
Cada enfermera lleva la hoja de consulta de PX atendidos en cada especialidad al Dpto de estadística donde un recurso de suma manualmente por edad, sexo y las clasifica por enfermedades.
5
Consulta Externa
Es un servicio dispensario que constituye la atención médica a pacientes, donde se realiza un tratamiento de la información de datos como:
Antiguas enfermedades.
Problemas de salud.
Situación actual que justifica su presencia en una entidad hospitalaria de salud.
Cabe destacar que en la Consulta Externa se recoge esta información, para comenzar a realizar exámenes preliminares que puedan identificar el daño de salud del paciente, no así como ocurre en el servicio de emergencia la atención médica es inmediata ya que se pone en riesgo la vida del sujeto, aquí se omite el primer proceso de recopilación de datos, la información será recabada al final.
Pasos para la atención de Consulta Externa:
Paciente con Historia:
En este caso se trata de un paciente subsecuente, es decir, que ha sido atendido anteriormente; la recopilación de datos y la información se basa únicamente en la sintomatología, en la indagación sobre la queja principal que presenta y con la estimación de los problemas que plantea de cara a determinar las áreas en las que se habrá de profundizar para establecer el tratamiento adecuado a seguir.
Paciente nuevo:
Se basa en la apertura de la Historia Clínica; y en la labor de recopilación y posterior análisis de datos, a veces se emplea la observación directa, ya sea en forma de signos clínicos o bien de referencias verbales claras recogidas en el curso de la entrevista o la exploración; mientras que en otras ocasiones deriva de un proceso de deducción, a partir de la interpretación de expresiones y referencias indirectas.
6
Los Requisitos para nuevos pacientes:
A más de la información detallada y personalizada, debe presentar documentos como:
Cédula de ciudadanía.
Carnet de afiliación (si fuere afiliado/a).
Transferencia u orden médica de alguna Unidad Operativa (Centro o Subcentro de Salud) o de alguna Institución particular.
Personal en Consulta Externa
Varía de acuerdo a las entidades de salud y a sus necesidades; sin embargo, en la mayoría de instituciones, el personal Administrativo se encarga de brindar información detallada al usuario que demanda servicios médicos, así como del cobro y entrega de turnos para cada especialidad según el caso. En ambos casos, dicho personal debe tener estudios superiores realizados en su especialidad y tener conocimientos básicos de "Gerencia Administrativa en Salud"; no obstante, todo el personal de salud debe capacitarse permanentemente tanto en "Administración de Servicios de Salud" como en "Relaciones Humanas". Los datos indispensables para obtener un turno en consulta externa son:
Nombres completos del paciente.
Apellidos completos del paciente.
Número de historia clínica.
Número de cédula de ciudadanía.
Número de carnet de afiliación.
Fecha de ingreso.
Fecha de nacimiento.
Estado civil.
Edad.
Sexo.
Lugar de procedencia.
Lugar de residencia habitual.
Tipo de especialidad médica.
Nombre del especialista a consultar.
7
Necesidades del cliente
El cliente desea un programa que me brinde una mayor seguridad en la
documentación porque es complicado trabajar con papel y en digital es más
cómodo y económico en el tiempo.
Su principal requisito es garantizar y proveer una mejor información segura
en el momento de llevar un control, si hay eficacia al momento de registrar
de manera ordenada a los pacientes.
8
Objetivos
Objetivos Generales
El objetivo general es el de realizar un Trabajo de análisis y diseño para un sistema de control de registros, en la que los de estadísticas y demás personal podrán controlar el registro de datos con mayor facilidad.
Brinda una herramienta a las unidades de salud, que les permitirá de forma más eficiente y ágil los expedientes clínicos del paciente y de esta forma brindar un servicio de mejor calidad para la población.
Elaborar el análisis y diseño del sistema de registro para el hospital, mediante la metodología orientada a objetos (U.M.L)
Objetivos Específicos
Proporcionar el control y acceso de la información a los pacientes.
Optimizar y agilizar los datos ingresados.
Agilizar el registro de pacientes al momento de pedir un expediente.
9
Oportunidades del sistema.
La flexibilidad al manejar gran volumen y diversidad de información con rapidez, oportunidad y precisión, lo que brinda una mejor herramienta de trabajo al personal, que facilitará sus labores.
Generar información más eficiente y confiable, que sirva de apoyo a la toma de decisiones.
Mejor capacidad de búsqueda y actualización de información, reduciendo la fuerza de trabajo en el proceso y control de recursos.
Capacidad de registrar y almacenar “automáticamente” datos de los registros, estandarizando el mantenimiento de los registros, lo que implica un aumento de la seguridad de almacenamiento de registros.
Que se logrará llevar un mejor control de toda la información por todos y cada uno de ellos.
10
Arquitectura del sistema
Se decidió utilizar un lenguaje de programación Microsoft Visual Studio 2008,
para la programación de las interfaces de usuario por las siguientes razones:
Se puede editar y continuar el desarrollo de un proyecto.
Las clases se generan dinámicamente a través de formularios.
Es un lenguaje de programación de fácil aprendizaje tanto en principiante
como programadores expertos.
La sintaxis tiene semejanza al lenguaje humano.
Se utilizó SQL SERVER 2008 como gestor de base de datos y para el diseño de la
base de datos, se construyó e implemento un modelo relacional de datos, ya que
soporta transacciones, soporta procedimientos almacenados. Incluye también un
entorno gráfico de administración, que permite el uso de comandos DDL y DML
gráficamente.
Permite trabajar en modo cliente-servidor, donde la información y datos se alojan
en el servidor y los terminales o clientes de la red sólo acceden a la información.
Además permite administrar información de otros servidores de datos.
Ofrece, además, herramientas de análisis y gestión de almacenes de datos,
servicios de creación de procedimientos almacenados.
11
En este tipo de arquitectura se supone que los clientes y los servidores se
encuentran dentro de una misma red corporativa.
Las ventajas que proporciona esta aproximación son variadas, como por ejemplo
la posibilidad de crear clientes con interfaces mucho más ricas (muy útiles para la
grabación y manipulación de datos), utilizar la capacidad de procesamiento de los
Pc’s, una mayor agilidad en las aplicaciones que se elaboran.
12
Estudio de Factibilidad
Es uno de los recursos más importantes y esperados de un proyecto. Este permite estimulador si el proyecto es o no es posible desde tres aspectos: Técnico, Económico y Operativo. La factibilidad en los dos primeros aspectos se refiere a las posibilidades de que el
proyecto pueda ser desarrollado y puesto en operación: la tercera factibilidad se
refiere a las posibilidades de que el producto resulte útil.
Factibilidad Técnica
Demuestra si el sistema propuesto tendrá éxito al momento de la implementación y
operación de este. Esto se hace que no hay disponible de hardware y software,
actualmente se cuenta con el personal administrativo que tiene los conocimientos
técnicos disponibles para administrar el sistema de control de paciente y consultas.
Después de haber analizado los aspectos mencionados se ha llegado a la conclusión.
a. Se cuenta con el recurso humano disponible que participara en el funcionamiento del sistema.
b. Para el desarrollo del sistema se tomaran en cuenta las especificaciones técnicas del hardware, el cual se desarrollara dentro de los requerimientos ya que actualmente no se cuentan con el equipo necesario.
c. Para la selección del software de este proyecto ya que de ello dependerá la determinación de la potencia de la base de datos a utilizar.
d. El nivel de conocimiento de las personas que darán soporte al sistema el adecuado para administrar la base de datos y utilizar un sistema operativo propuesto. Con este se asegura que el personal maneje el control de pacientes y consultas contara con el asesoramiento adecuado para la utilización de la aplicación de soporte para el sistema.
13
Factibilidad Operativa
Permite determinar si no existe resistencia al cambio entre los usuarios del sistema
que obstaculice la implementación y ejecución del mismo.
Después de realizado la entrevista sobre el grado de aceptación y necesidad de un
sistema de control de pacientes y consultas se llegó a las siguientes conclusiones:
a. El personal está de acuerdo en que se diseñe un sistema automatizado,
que consideran que es necesario de un sistema para solventar el
problema de la información tardada del control de pacientes y consultas
e informes.
b. Tomando como base el resultado de las encuetas realizadas se puede
afirmar que el personal administrativo considera necesario un cambio y
está dispuesto a realizarlo.
c. El proyecto es factible operativamente desde el punto de vista del recurso
que será utilizado, ya que todos los involucrados cumplen con los
requisitos necesarios para que el sistema opere de forma satisfactoria.
Factibilidad Económica
Se establecen los costos y beneficios del proyecto. Cabe aclarar que el proyecto es de carácter social, por lo tanto los beneficios que se obtendrán en su mayoría son de carácter intangible.
Hardware
Cantidad Descripcion Costo/Unitario Costo
2 PC de escritorio 480 $ 960
2 UPS 37 $ 74
30 metros de cable UTP 0.4 $ 12
8 Conectores RJ45 0.35 $ 2.8
3 Conectores RJ45 hembra 0.35 $ 1.05
1 Swith Base 100 8 puertos 44 $ 44
Costo de Hardware $ 1094
14
Costo de Recursos Humanos
Cantidad Descripcion Costo/unitario Costo
1 Analista 600 600
Costo de Recurso Humano $ 600
Capacitaciones
Cantidad Descripcion Costo/unitario Costo
10 Horas 12 120
Costo de Recursos Humanos $ 120
Licencias del Software
Elemento del software Detalle Costo
SQL SERVER 2008 Gestor de Bases de Datos
$499
Visual Studio 2008 Crear aplicaciones $ 499
Windows 7, Windows 8 Sistema Operativo $ 212
Costo de licencias de software $ 1210
Costo de implementación del sistema
Elemento del software Costo
Hardware $ 1093.9
Recursos Humanos $ 600
Capacitaciones $ 120
Licencias del software $ 1210
Imprevistos (8%) $ 280
Costo de implementación $ 6153.8
Después de determinar los costos determinados para el desarrollo del sistema
automatizado de control de pacientes/consultas.
15
Requerimientos técnicos de Hardware
Equipo Alternativa Especificaciones Tecnicas
PC 1 Procesador Pentium IV 365 Ghz
Memoria cache 512 KB
Memoria Ram 256 MB
Tarjeta de video 16 MB
DVD-RW TOSHIBA
Disco Duro 80 GB
PC 2 Procesador Pentium IV 365 Ghz
Memoria cache 512 KB
Memoria Ram 256 MB
Tarjeta de video 16 MB
DVD-RW TOSHIBA
Disco Duro 160 GB
IMPRESORA 3 BROTHER DCP7060 MULTIFUNCIONAL
16
Modelo de proceso
17
Diagramas Casos de Uso “Registrar pacientes”
18
Diagramas Casos de Uso “Inscribir Pacientes”
Diagramas de Colaboración
Administracion de Areas
Estadisctica
Registro en BD
Imprimir hoja de inscripcion
Registro
Hoja de inscripcion
Pacientes
19
Diagramas de Componentes
20
Diagramas de Secuencias
21
Diagramas de Clases
22
Diagramas de Casos de Uso
23
Diagramas de Contexto
24
Diagrama de Flujo
25
Diagrama hijo 1.1
26
Diagrama hijo 2.1
27
Diagrama de Entidad Relación
28
Diccionario de Datos
29
Diagrama de Bases de Datos
30
Código Fuente del Sistema.
Imports System.Windows.Forms
Public Class CMV
Private Sub OpenFile(ByVal sender As Object, ByVal e As EventArgs) Handles
OpenToolStripMenuItem.Click
Dim OpenFileDialog As New OpenFileDialog
OpenFileDialog.InitialDirectory =
My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog.Filter = "Archivos de pdf (*.pdf)|*.pdf|Todos los archivos
(*.*)|*.*"
If (OpenFileDialog.ShowDialog(Me) =
System.Windows.Forms.DialogResult.OK) Then
31
Dim FileName As String = OpenFileDialog.FileName
' TODO: agregue código aquí para abrir el archivo.
End If
End Sub
Private Sub SaveAsToolStripMenuItem_Click(ByVal sender As Object, ByVal e
As EventArgs) Handles SaveAsToolStripMenuItem.Click
Dim SaveFileDialog As New SaveFileDialog
SaveFileDialog.InitialDirectory =
My.Computer.FileSystem.SpecialDirectories.MyDocuments
SaveFileDialog.Filter = "Archivos de pdf (*.pdf)|*.pdf|Todos los archivos
(*.*)|*.*"
If (SaveFileDialog.ShowDialog(Me) =
System.Windows.Forms.DialogResult.OK) Then
Dim FileName As String = SaveFileDialog.FileName
' TODO: agregue código aquí para guardar el contenido actual del
formulario en un archivo.
End If
End Sub
Private Sub ExitToolsStripMenuItem_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles ExitToolStripMenuItem.Click
Me.Close()
End Sub
Private Sub CutToolStripMenuItem_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles CutToolStripMenuItem.Click
' Utilice My.Computer.Clipboard para insertar el texto o las imágenes
seleccionadas en el Portapapeles
End Sub
32
Private Sub CopyToolStripMenuItem_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles CopyToolStripMenuItem.Click
' Utilice My.Computer.Clipboard para insertar el texto o las imágenes
seleccionadas en el Portapapeles
End Sub
Private Sub PasteToolStripMenuItem_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles PasteToolStripMenuItem.Click
'Utilice My.Computer.Clipboard.GetText() o My.Computer.Clipboard.GetData
para recuperar la información del Portapapeles.
End Sub
Private Sub StatusBarToolStripMenuItem_Click(ByVal sender As Object, ByVal
e As EventArgs) Handles StatusBarToolStripMenuItem.Click
Me.StatusStrip.Visible = Me.StatusBarToolStripMenuItem.Checked
End Sub
Private Sub CascadeToolStripMenuItem_Click(ByVal sender As Object, ByVal e
As EventArgs) Handles CascadeToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub
Private Sub TileVerticalToolStripMenuItem_Click(ByVal sender As Object, ByVal
e As EventArgs) Handles TileVerticalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub
Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As Object,
ByVal e As EventArgs) Handles TileHorizontalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
33
End Sub
Private Sub ArrangeIconsToolStripMenuItem_Click(ByVal sender As Object,
ByVal e As EventArgs) Handles ArrangeIconsToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.ArrangeIcons)
End Sub
Private Sub CloseAllToolStripMenuItem_Click(ByVal sender As Object, ByVal e
As EventArgs) Handles CloseAllToolStripMenuItem.Click
' Cierre todos los formularios secundarios del principal.
For Each ChildForm As Form In Me.MdiChildren
ChildForm.Close()
Next
End Sub
Private m_ChildFormNumber As Integer
Private Sub AreaToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles AreaToolStripMenuItem.Click
Especialidad.MdiParent = Me
Especialidad.Show()
End Sub
Private Sub MedicosToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MedicosToolStripMenuItem.Click
Doctors.MdiParent = Me
Doctors.Show()
End Sub
34
Private Sub PacientesToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
PacientesToolStripMenuItem.Click
Pacientes.MdiParent = Me
Pacientes.Show()
End Sub
Private Sub PropiedadToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
PropiedadToolStripMenuItem.Click
End Sub
Private Sub ConsultasToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ConsultasToolStripMenuItem.Click
Consultas.MdiParent = Me
Consultas.Show()
End Sub
Private Sub SCRAOK_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
End Sub
Private Sub MedicosToolStripMenuItem1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MedicosToolStripMenuItem1.Click
RegistroMedicos.Show()
End Sub
35
Private Sub EspecialidadToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
EspecialidadToolStripMenuItem.Click
RegistroEspecialidad.Show()
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles FPaciente.Click
Pacientes.MdiParent = Me
Pacientes.Show()
End Sub
Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles FMedicos.Click
Doctors.MdiParent = Me
Doctors.Show()
End Sub
Private Sub FConsultas_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles FConsultas.Click
Consultas.MdiParent = Me
Consultas.Show()
End Sub
Private Sub FEspecialidad_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles FEspecialidad.Click
36
Especialidad.MdiParent = Me
Especialidad.Show()
End Sub
Private Sub ToolStripButton1_Click_1(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles ToolStripButton1.Click
BuscarPaciente.MdiParent = Me
BuscarPaciente.Show()
End Sub
End Class
Imports System.Data.SqlClient
Imports System.Data
37
Imports System.Data.Common
Imports Microsoft
Imports System.Drawing
Imports System.Data.Sql
Imports System.Data.OleDb
Imports System.Data.VersionNotFoundException
Public Class Pacientes
Dim tabla As DataTable
Dim vidp, idp As Integer
Dim vide, ide As Integer
Dim a As Integer
Private Sub Pacientes_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.KeyPreview = True
Conectar()
CargarPacientes()
Desconectar()
End Sub
Private Sub Pacientes_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
If e.KeyChar = ChrW(Keys.Enter) Then
e.Handled = True
SendKeys.Send("{TAB}")
End If
End Sub
38
Private Sub DataGridView1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles GrillaPaciente.Click
Try
HabilitarBotones(False, True)
vidp = GrillaPaciente.CurrentRow.Cells(0).Value
Me.idc.Text = GrillaPaciente.CurrentRow.Cells(1).Value
Me.NExpediente.Text = GrillaPaciente.CurrentRow.Cells(2).Value
Me.DateTimePicker1.Value =
GrillaPaciente.Rows(GrillaPaciente.SelectedRows.Item(0).Index).Cells("FechaNaci
miento").Value
Me.DateTimePicker2.Value =
GrillaPaciente.Rows(GrillaPaciente.SelectedRows.Item(0).Index).Cells("FechaInsc
ripcion").Value
Me.Cedula.Text = GrillaPaciente.CurrentRow.Cells(3).Value
Me.Nombres.Text = GrillaPaciente.CurrentRow.Cells(4).Value
Me.Apellidos.Text = GrillaPaciente.CurrentRow.Cells(5).Value
Me.Edad.Text = GrillaPaciente.CurrentRow.Cells(8).Value
Me.Sexo.Text = GrillaPaciente.CurrentRow.Cells(9).Value
Me.EstadoCivil.Text = GrillaPaciente.CurrentRow.Cells(14).Value
Me.Direccion.Text = GrillaPaciente.CurrentRow.Cells(13).Value
Me.Ciudad.Text = GrillaPaciente.CurrentRow.Cells(10).Value
Me.Municipio.Text = GrillaPaciente.CurrentRow.Cells(11).Value
Me.Departamentos.Text = GrillaPaciente.CurrentRow.Cells(12).Value
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
39
Private Sub CargarPacientes()
Dim vTabla As New DataTable
Dim dsGrid As New DataSet
Dim vAdaptador As New SqlDataAdapter("Select * From Paciente Order by
idp Desc", vCadena)
Dim vPacientes As New SqlDataAdapter("Select idp, idc,NExpediente,
NCedula, Nombres, Apellidos, Sexo, Edad, EstadoCivil, DireccionCiudad,
Municipio, Departamento ", vCadena)
GrillaPaciente.DataSource = GrillaPaciente
vAdaptador.Fill(vTabla)
GrillaPaciente.DataSource = vTabla
GrillaPaciente.Columns(0).Visible = False
GrillaPaciente.Columns(1).Visible = False
GrillaPaciente.Columns(2).Visible = True
GrillaPaciente.Columns(3).Visible = True
GrillaPaciente.Columns(4).Visible = True
GrillaPaciente.Columns(5).Visible = True
GrillaPaciente.Columns(6).Visible = True
GrillaPaciente.Columns(7).Visible = True
GrillaPaciente.Columns(8).Visible = True
GrillaPaciente.Columns(9).Visible = True
GrillaPaciente.Columns(10).Visible = True
GrillaPaciente.Columns(11).Visible = True
GrillaPaciente.Columns(12).Visible = True
GrillaPaciente.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.Fill
40
End Sub
Public Sub activacion(ByVal x As Integer)
Select Case x
Case 1
Guardar.Enabled = False
Modificar.Enabled = True
Cancelar.Enabled = False
Eliminar.Enabled = True
Case 2
Guardar.Enabled = False
Modificar.Enabled = True
Cancelar.Enabled = False
Eliminar.Enabled = True
Case 3
Guardar.Enabled = False
Modificar.Enabled = True
Cancelar.Enabled = False
Eliminar.Enabled = True
Case 4
Guardar.Enabled = False
Modificar.Enabled = True
Cancelar.Enabled = False
Eliminar.Enabled = True
Me.Modificar.Text = " Actualizar"
41
Case 0
Guardar.Enabled = False
Modificar.Enabled = True
Cancelar.Enabled = False
Eliminar.Enabled = True
End Select
End Sub
Private Sub asignarDGB()
Dim vComando As New SqlCommand
Dim vAdaptador As New SqlDataAdapter
vComando.Connection = vCadena
vComando.Parameters.Clear()
tabla.Clear()
vComando.CommandType = CommandType.StoredProcedure
vComando.CommandText = "Mostrar_todos_los_Pacientes"
vAdaptador.SelectCommand = vComando
vAdaptador.Fill(tabla)
GrillaPaciente.DataSource = Nothing
Dim stile As New DataGridViewCellStyle
With stile
.BackColor = Color.LightGray
.ForeColor = Color.Black
End With
42
GrillaPaciente.DataSource = tabla
GrillaPaciente.AllowUserToAddRows = False
GrillaPaciente.AllowUserToDeleteRows = False
GrillaPaciente.RowHeadersVisible = False
GrillaPaciente.AllowUserToAddRows = False
GrillaPaciente.AllowUserToDeleteRows = False
GrillaPaciente.SelectionMode = DataGridViewSelectionMode.FullRowSelect
GrillaPaciente.AlternatingRowsDefaultCellStyle = stile
End Sub
Private Sub HabilitarBotones(ByVal Activo As Boolean, ByVal Inactivo As
Boolean)
Guardar.Enabled = Activo
Modificar.Enabled = Inactivo
Eliminar.Enabled = Inactivo
Cancelar.Enabled = Inactivo
End Sub
Private Sub Eliminar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Eliminar.Click
Dim vComando As New SqlCommand, vSql As String
If MsgBox("Desea eliminar el Paciente: " &
GrillaPaciente.CurrentRow.Cells(1).Value, MsgBoxStyle.YesNo) =
MsgBoxResult.Yes Then
vSql = "DELETE FROM Pacientes Where idp = '" & vidp & "'"
vComando.Connection = vCadena
vComando.CommandText = vSql
Conectar()
vComando.ExecuteNonQuery()
Desconectar()
43
Me.TextBox1.Text = Nothing
Me.TextBox1.Focus()
HabilitarBotones(True, False)
CargarPacientes()
MsgBox("Registro eliminado correctamente...", MsgBoxStyle.Information)
Else
Me.TextBox1.Text = Nothing
Me.TextBox1.Focus()
HabilitarBotones(True, False)
Exit Sub
End If
End Sub
Public Sub Eliminardatos_Pacientes()
If TextBox1.Text.Trim.Length > 0 And Windows.Forms.DialogResult.Yes =
MessageBox.Show("Eliminar el Registro Actual de la Base de Datos", "SAO",
MessageBoxButtons.YesNo, MessageBoxIcon.Stop) Then
Try
Dim vComando As New SqlCommand
vComando.Connection = vCadena
vComando.Parameters.Clear()
tabla.Clear()
vComando.Parameters.Clear()
vComando.CommandType = CommandType.StoredProcedure
vComando.CommandText = "Eliminardatos_Pacientes()"
vComando.Parameters.Add(New SqlParameter("@idp",
SqlDbType.Int)).Value = Val(TextBox1.Text.Trim)
44
vComando.ExecuteNonQuery()
Me.asignarDGB()
Catch ex As Exception
MessageBox.Show("El Registro no se Pudo eliminar", "SAO",
MessageBoxButtons.YesNo, MessageBoxIcon.Information)
End Try
End If
End Sub
Private Sub Guardar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Guardar.Click
If Me.NExpediente.Text = Nothing Then MsgBox("Ingrese el numero de
Expediente", MsgBoxStyle.Information) : Me.NExpediente.Focus() : Exit Sub
'Try
Conectar()
Dim vComando As New SqlCommand
Dim vTabla As New DataTable
Dim vAdaptador As New SqlDataAdapter("Select Max(idp) From Paciente",
vCadena)
vAdaptador.Fill(vTabla)
vComando.Connection = vCadena
vComando.CommandType = CommandType.StoredProcedure
vComando.CommandText = "Registrar_Pacientes"
vComando.Parameters.Add(New SqlParameter("@idc",
SqlDbType.Int)).Value = CInt(Me.idc.Text.Trim)
vComando.Parameters.Add(New SqlParameter("@NExpendiente",
SqlDbType.VarChar, 10)).Value = NExpediente.Text.Trim
45
vComando.Parameters.Add(New SqlParameter("@NCedula",
SqlDbType.VarChar, 17)).Value = Cedula.Text.Trim
vComando.Parameters.Add(New SqlParameter("@FechaNacimiento",
SqlDbType.SmallDateTime)).Value = DateTimePicker1
vComando.Parameters.Add(New SqlParameter("@FechaInscripcion",
SqlDbType.SmallDateTime)).Value = DateTimePicker2
vComando.Parameters.Add(New SqlParameter("@Nombres",
SqlDbType.VarChar, 50)).Value = Nombres.Text.Trim
vComando.Parameters.Add(New SqlParameter("@Apellidos",
SqlDbType.VarChar, 50)).Value = Apellidos.Text.Trim
vComando.Parameters.Add(New SqlParameter("@Sexo",
SqlDbType.VarChar, 15)).Value = Sexo.Text.Trim
vComando.Parameters.Add(New SqlParameter("@Edad",
SqlDbType.Int)).Value = Edad.Text.Trim
vComando.Parameters.Add(New SqlParameter("@EstadoCivil",
SqlDbType.VarChar, 20)).Value = EstadoCivil.Text.Trim
vComando.Parameters.Add(New SqlParameter("@Direccion",
SqlDbType.VarChar, 300)).Value = Direccion.Text.Trim
vComando.Parameters.Add(New SqlParameter("@Municipio",
SqlDbType.VarChar, 30)).Value = Municipio.Text.Trim
vComando.Parameters.Add(New SqlParameter("@Ciudad",
SqlDbType.VarChar, 50)).Value = Ciudad.Text.Trim
vComando.Parameters.Add(New SqlParameter("@Departamento",
SqlDbType.VarChar, 50)).Value = Departamentos.Text.Trim
vComando.ExecuteNonQuery()
CargarPacientes()
Desconectar()
'Catch ex As Exception
'MsgBox(ex.Message)
'Desconectar()
'End Try
End Sub
46
Private Sub Nuevo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Nuevo.Click
GroupBox1.Enabled = True
GroupBox2.Enabled = False
Me.clear()
Me.activacion(1)
End Sub
Public Sub clear()
idc.Clear()
NExpediente.Clear()
Cedula.Clear()
Nombres.Clear()
Apellidos.Clear()
Edad.Clear()
Direccion.Clear()
Ciudad.Clear()
Municipio.Clear()
Departamentos.Clear()
End Sub
Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
End Sub
End Class
47
Imports System.Data.SqlClient
Imports System.Data
Imports System
Public Class Consultas
Dim vide As Integer
Dim vidp As Integer
Dim vidc As Integer
Dim vEspecialidad As Integer
Dim vidm As Integer
48
'Private Sub txtFiltro_LostFocus(ByVal sender As Object, ByVal e As
System.EventArgs) Handles txtFiltro.LostFocus
' If txtFiltro.Text = Nothing Then
' MsgBox("Digite el Apellido", MsgBoxStyle.Exclamation)
' txtFiltro.Focus()
' Exit Sub
' End If
'End Sub
Private Sub Filtro_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Filtro.TextChanged
GrillaPaciente.Width = 550
GrillaPaciente.Height = 150
GrillaPaciente.Visible = True
GrillaPaciente.BringToFront() 'Envía la grilla al frente
Conectar()
Dim vTabla As New DataTable
Dim vAdaptador As New SqlDataAdapter("Select * From Paciente Where
Apellidos LIKE '" & Filtro.Text & "%'", vCadena)
vAdaptador.Fill(vTabla)
GrillaPaciente.Location = New Point(Filtro.Location.X, Filtro.Location.Y + 21)
GrillaPaciente.DataSource = vTabla
Desconectar()
FormatoGrillaPaciente()
End Sub
Sub FormatoGrillaPaciente()
With GrillaPaciente.ColumnHeadersDefaultCellStyle
.Alignment = DataGridViewContentAlignment.MiddleCenter
Dim Fuente = New Font(FontHeight, 10, FontStyle.Bold,
GraphicsUnit.World)
49
.Font = Fuente
End With
With GrillaPaciente.DefaultCellStyle
Dim miFuente = New Font(FontHeight, 10, FontStyle.Regular,
GraphicsUnit.World)
.Font = miFuente
End With
GrillaPaciente.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.Fill
GrillaPaciente.Columns(0).Visible = True
GrillaPaciente.Columns(1).Visible = False
GrillaPaciente.Columns(2).Visible = False
GrillaPaciente.Columns(4).Visible = False
GrillaPaciente.Columns(5).Visible = False
GrillaPaciente.Columns(8).Visible = False
GrillaPaciente.Columns(9).Visible = False
End Sub
Private Sub GrillaPaciente_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles GrillaPaciente.Click
Try
vidp = GrillaPaciente.CurrentRow.Cells(0).Value
vEspecialidad = GrillaPaciente.CurrentRow.Cells(1).Value
Me.NExpediente.Text = GrillaPaciente.CurrentRow.Cells(2).Value
Me.Nombres.Text = GrillaPaciente.CurrentRow.Cells(4).Value
Me.Apellidos.Text = GrillaPaciente.CurrentRow.Cells(5).Value
Me.Edad.Text = GrillaPaciente.CurrentRow.Cells(8).Value
Me.Sexo.Text = GrillaPaciente.CurrentRow.Cells(9).Value
GrillaPaciente.Visible = False
50
Catch ex As Exception
End Try
End Sub
Private Sub SeleccionaEspecialidad(ByVal vCarrera As Integer)
Dim vTabla As New DataTable
Dim vSql As String = "Select Especialidad From Especialidad Where ide = '" &
vEspecialidad & "'"
Dim vAdaptador As New SqlDataAdapter(vSql, vCadena)
vAdaptador.Fill(vTabla)
Conectar()
Especialidad.Text = vTabla.Rows(0).Item(0).ToString
Desconectar()
End Sub
Private Sub Consultas_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.KeyPreview = True
Conectar()
CargarConsultas()
CargarMedicos()
CargarEspecialidad()
Desconectar()
End Sub
Private Sub consultas_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
If e.KeyChar = ChrW(Keys.Enter) Then
e.Handled = True
51
SendKeys.Send("{TAB}")
End If
End Sub
Private Sub CargarMedicos()
Dim vTabla As New DataTable
Dim vAdaptador As New SqlDataAdapter("Select * From Medicos", vCadena)
vAdaptador.Fill(vTabla)
cboMedicos.DataSource = vTabla
cboMedicos.DisplayMember = "Medicos"
cboMedicos.ValueMember = "Apellidos"
End Sub
Private Sub CargarEspecialidad()
Dim vTabla As New DataTable
Dim vAdaptador As New SqlDataAdapter("Select * From Especialidad",
vCadena)
vAdaptador.Fill(vTabla)
cboEspecialidad.DataSource = vTabla
cboEspecialidad.DisplayMember = "Especialidad"
cboEspecialidad.ValueMember = "ide"
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ToolStripButton1.Click
If Me.idm.Text = Nothing Then MsgBox("Ingrese el Cod",
MsgBoxStyle.Information) : Me.idm.Focus() : Exit Sub
52
Try
Conectar()
Dim vComando As New SqlCommand
Dim vAdaptador As New SqlDataAdapter("Select Max(idc) From
Consultas", vCadena)
vComando.Connection = vCadena
vComando.Parameters.Clear()
vComando.CommandType = CommandType.StoredProcedure
vComando.CommandText = "Registrar_Consultas"
vComando.Parameters.Add(New SqlParameter("@ide",
SqlDbType.Int)).Value = ide.Text
vComando.Parameters.Add(New SqlParameter("@idm",
SqlDbType.Int)).Value = idm.Text
vComando.Parameters.Add(New SqlParameter("@NExpediente",
SqlDbType.VarChar, 50)).Value = NExpediente.Text
vComando.Parameters.Add(New SqlParameter("@Nombres",
SqlDbType.VarChar, 100)).Value = Nombres.Text
vComando.Parameters.Add(New SqlParameter("@Apellidos",
SqlDbType.VarChar, 100)).Value = Apellidos.Text
vComando.Parameters.Add(New SqlParameter("@Sexo",
SqlDbType.VarChar, 15)).Value = Sexo.Text
vComando.Parameters.Add(New SqlParameter("@Edad",
SqlDbType.VarChar, 50)).Value = Edad.Text
vComando.Parameters.Add(New SqlParameter("@Pvez",
SqlDbType.VarChar, 50)).Value = Pvez.Text
vComando.Parameters.Add(New SqlParameter("@Subsecuente",
SqlDbType.VarChar, 80)).Value = Subsec.Text
vComando.Parameters.Add(New SqlParameter("@Hospitalizados",
SqlDbType.VarChar, 80)).Value = Hospitalizados.Text
vComando.Parameters.Add(New SqlParameter("@Motivo",
SqlDbType.VarChar, 100)).Value = Motivo.Text
vComando.ExecuteNonQuery()
53
CargarConsultas()
Desconectar()
Desconectar()
Catch ex As Exception
MsgBox(ex.Message)
Desconectar()
End Try
End Sub
Private Sub HabilitarBotones(ByVal Activo As Boolean, ByVal Inactivo As
Boolean)
Guardar.Enabled = Activo
Modificar.Enabled = Inactivo
Eliminar.Enabled = Inactivo
Cancelar.Enabled = Inactivo
End Sub
Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ToolStripButton3.Click
Dim vComando As New SqlCommand, vSql As String
If MsgBox("Desea eliminar hoja de consultas: " &
DG1.CurrentRow.Cells(1).Value, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
vSql = "DELETE FROM Consultas Where idc = '" & vidc & "'"
vComando.Connection = vCadena
vComando.CommandText = vSql
Conectar()
vComando.ExecuteNonQuery()
Desconectar()
54
Me.idc.Text = Nothing
Me.idc.Focus()
HabilitarBotones(True, False)
CargarConsultas()
MsgBox("Registro eliminado correctamente...", MsgBoxStyle.Information)
Else
Me.idc.Text = Nothing
Me.idc.Focus()
HabilitarBotones(True, False)
Exit Sub
End If
End Sub
Private Sub CargarConsultas()
Dim vTabla As New DataTable
Dim vAdaptador As New SqlDataAdapter("Select * From Consultas Order by
idc Desc", vCadena)
vAdaptador.Fill(vTabla)
DG1.DataSource = vTabla
DG1.Columns(0).Visible = False
DG1.Columns(1).Visible = False
DG1.Columns(2).Visible = False
DG1.Columns(3).Visible = True
DG1.Columns(4).Visible = True
DG1.Columns(5).Visible = True
DG1.Columns(6).Visible = True
DG1.Columns(7).Visible = True
DG1.Columns(8).Visible = True
DG1.Columns(9).Visible = True
55
DG1.Columns(10).Visible = True
DG1.Columns(11).Visible = True
DG1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
End Sub
Private Sub DataGridView1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles DG1.Click
Try
HabilitarBotones(False, True)
vidc = DG1.CurrentRow.Cells(0).Value
Me.ide.Text = DG1.CurrentRow.Cells(1).Value
Me.idm.Text = DG1.CurrentRow.Cells(2).Value
Me.NExpediente.Text = DG1.CurrentRow.Cells(3).Value
Me.Nombres.Text = DG1.CurrentRow.Cells(4).Value
Me.Apellidos.Text = DG1.CurrentRow.Cells(5).Value
Me.Edad.Text = DG1.CurrentRow.Cells(7).Value
Me.Sexo.Text = DG1.CurrentRow.Cells(6).Value
Me.Pvez.Text = DG1.CurrentRow.Cells(8).Value
Me.Subsec.Text = DG1.CurrentRow.Cells(9).Value
Me.Hospitalizados.Text = DG1.CurrentRow.Cells(10).Value
Me.Motivo.Text = DG1.CurrentRow.Cells(11).Value
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Public Sub activacion(ByVal x As Integer)
56
Select Case x
Case 1
Guardar.Enabled = False
Modificar.Enabled = True
Cancelar.Enabled = False
Eliminar.Enabled = True
Case 2
Guardar.Enabled = False
Modificar.Enabled = True
Cancelar.Enabled = False
Eliminar.Enabled = True
Case 3
Guardar.Enabled = False
Modificar.Enabled = True
Cancelar.Enabled = False
Eliminar.Enabled = True
Case 4
Guardar.Enabled = False
Modificar.Enabled = True
Cancelar.Enabled = False
Eliminar.Enabled = True
Me.Modificar.Text = " Actualizar"
Case 0
Guardar.Enabled = False
Modificar.Enabled = True
57
Cancelar.Enabled = False
Eliminar.Enabled = True
End Select
End Sub
Private Sub Nuevo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Nuevo.Click
GroupBox1.Enabled = True
Me.clear()
Me.activacion(1)
End Sub
Public Sub clear()
ide.Clear()
idm.Clear()
NExpediente.Clear()
Nombres.Clear()
Apellidos.Clear()
Edad.Clear()
Motivo.Clear()
End Sub
End Class
58
Imports System.Data.SqlClient
Imports System.Data
Imports System.Drawing
Imports System.Data.Common
Imports System.Data.Sql
Imports System.Data.OleDb
Public Class Doctors
Dim tabla As DataTable
Dim vidm, idm As Integer
Dim vide, ide As Integer
59
Private Sub Medicos_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
If e.KeyChar = ChrW(Keys.Enter) Then
e.Handled = True
SendKeys.Send("{TAB}")
End If
End Sub
Private Sub GrillaM_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles GrillaM.Click
HabilitarBotones(False, True)
vidm = GrillaM.CurrentRow.Cells(0).Value
Me.TextBox2.Text = GrillaM.CurrentRow.Cells(1).Value
Me.TextBox1.Text = GrillaM.CurrentRow.Cells(2).Value
Me.TextBox3.Text = GrillaM.CurrentRow.Cells(3).Value
Me.MaskedTextBox1.Text = GrillaM.CurrentRow.Cells(4).Value
End Sub
Private Sub HabilitarBotones(ByVal Activo As Boolean, ByVal Inactivo As
Boolean)
Guardar.Enabled = Activo
Modificar.Enabled = Inactivo
Eliminar.Enabled = Inactivo
End Sub
Private Sub Medicos_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.KeyPreview = True
Conectar()
CargarMedicos()
60
CargarEspecialidad()
Desconectar()
End Sub
Private Sub CargarEspecialidad()
Dim vTabla As New DataTable
Dim vAdaptador As New SqlDataAdapter("Select * From Especialidad",
vCadena)
vAdaptador.Fill(vTabla)
cboEspecialidad.DataSource = vTabla
cboEspecialidad.DisplayMember = "Especialidad"
cboEspecialidad.ValueMember = "ide"
End Sub
Private Sub CargarMedicos()
Dim vTabla As New DataTable
Dim vAdaptador As New SqlDataAdapter("Select * From Medicos Order by
idm Desc", vCadena)
vAdaptador.Fill(vTabla)
GrillaM.DataSource = vTabla
GrillaM.Columns(0).Visible = False
GrillaM.Columns(1).Visible = True
GrillaM.Columns(2).Visible = True
GrillaM.Columns(3).Visible = True
GrillaM.Columns(4).Visible = True
GrillaM.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
End Sub
Private Sub asignarDGB()
61
Dim vComando As New SqlCommand
vComando.Connection = vCadena
Dim vAdaptador As New SqlDataAdapter
vComando.Parameters.Clear()
tabla.Clear()
vComando.CommandType = CommandType.StoredProcedure
vComando.CommandText = "Mostrar_todos_los_Medicos"
vadaptador.SelectCommand = vComando
vadaptador.Fill(tabla)
GrillaM.DataSource = Nothing
Dim stile As New DataGridViewCellStyle
With stile
.BackColor = Color.LightGray
.ForeColor = Color.Black
End With
GrillaM.DataSource = tabla
GrillaM.AllowUserToAddRows = False
GrillaM.AllowUserToDeleteRows = False
GrillaM.RowHeadersVisible = False
GrillaM.AllowUserToAddRows = False
GrillaM.AllowUserToDeleteRows = False
62
GrillaM.SelectionMode = DataGridViewSelectionMode.FullRowSelect
GrillaM.AlternatingRowsDefaultCellStyle = stile
End Sub
Private Sub Actualizar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
If Me.Modificar.Text.Trim = "Modificar" Then
Me.activacion(3)
Me.Modificar.Text = "Actualizar_Pacientes"
Me.GroupBox1.Enabled = True
Else
Me.Modificar.Text = "Modificar"
Me.Actualizar_Medicos()
Me.GroupBox1.Enabled = False
Me.activacion(1)
End If
End Sub
Public Sub activacion(ByVal x As Integer)
Select Case x
Case 1
Guardar.Enabled = False
Modificar.Enabled = True
Eliminar.Enabled = True
Case 2
Guardar.Enabled = False
Modificar.Enabled = True
Eliminar.Enabled = True
Case 3
63
Guardar.Enabled = False
Modificar.Enabled = True
Eliminar.Enabled = True
Case 4
Guardar.Enabled = False
Modificar.Enabled = True
Eliminar.Enabled = True
Me.Modificar.Text = " Actualizar"
Case 0
Guardar.Enabled = False
Modificar.Enabled = True
Eliminar.Enabled = True
End Select
End Sub
Private Sub Actualizar_Medicos()
Try
If TextBox4.Text.Trim.Length > 0 Then
Dim vComando As New SqlCommand
vComando.Connection = vCadena
vComando.Parameters.Clear()
vComando.CommandType = CommandType.StoredProcedure
vComando.CommandText = "Actualizar_Medicos()"
vComando.Parameters.Add(New SqlParameter("@idm",
SqlDbType.Int)).Value = Val(TextBox4.Text.Trim)
64
vComando.Parameters.Add(New SqlParameter("@Nombres",
SqlDbType.VarChar, 50)).Value = TextBox2.Text.Trim
vComando.Parameters.Add(New SqlParameter("@Apellidos",
SqlDbType.VarChar, 50)).Value = TextBox1.Text.Trim
vComando.Parameters.Add(New SqlParameter("@Sexo",
SqlDbType.VarChar, 50)).Value = TextBox3.Text.Trim
vComando.Parameters.Add(New SqlParameter("@Celular",
SqlDbType.VarChar, 50)).Value = MaskedTextBox1.Text.Trim
vComando.ExecuteNonQuery()
Me.asignarDGB()
Else
MessageBox.Show("Error no ha sido ingresado o seleccionado el codigo
de registro")
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
MessageBox.Show("Error al intentar actualizar el archivo")
End Try
End Sub
Public Sub Eliminardatos_Medicos()
If TextBox4.Text.Trim.Length > 0 And Windows.Forms.DialogResult.Yes =
MessageBox.Show("Eliminar el Registro Actual de la Base de Datos", "SAO
SIXAR", MessageBoxButtons.YesNo, MessageBoxIcon.Stop) Then
Try
Dim vComando As New SqlCommand
vComando.Connection = vCadena
65
vComando.Parameters.Clear()
tabla.Clear()
vComando.Parameters.Clear()
vComando.CommandType = CommandType.StoredProcedure
vComando.CommandText = "Eliminardatos_Medicos()"
vComando.Parameters.Add(New SqlParameter("@idm",
SqlDbType.Int)).Value = Val(TextBox4.Text.Trim)
vComando.ExecuteNonQuery()
Me.asignarDGB()
Catch ex As Exception
MessageBox.Show("El Registro no se Pudo eliminar", "SAO SIXAR",
MessageBoxButtons.YesNo, MessageBoxIcon.Information)
End Try
End If
End Sub
Private Sub Cancelar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Me.activacion(5)
End Sub
Public Sub clear()
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
MaskedTextBox1.Clear()
End Sub
66
Private Sub Guardar_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Guardar.Click
If Me.TextBox2.Text = Nothing Then MsgBox("Ingrese los Nombres",
MsgBoxStyle.Information) : Me.TextBox2.Focus() : Exit Sub
Try
Conectar()
Dim vComando As New SqlCommand
vComando.Connection = vCadena
vComando.Parameters.Clear()
vComando.CommandType = CommandType.StoredProcedure
vComando.CommandText = "Registrar_Medicos"
vComando.Parameters.Add(New SqlParameter("@Nombres",
SqlDbType.VarChar, 50)).Value = TextBox2.Text
vComando.Parameters.Add(New SqlParameter("@Apellidos",
SqlDbType.VarChar, 50)).Value = TextBox1.Text
vComando.Parameters.Add(New SqlParameter("@Sexo",
SqlDbType.VarChar, 50)).Value = TextBox3.Text
vComando.Parameters.Add(New SqlParameter("@Celular",
SqlDbType.VarChar, 50)).Value = MaskedTextBox1.Text
vComando.ExecuteNonQuery()
CargarMedicos()
Desconectar()
Catch ex As Exception
MsgBox(ex.Message)
Desconectar()
End Try
End Sub
Private Sub Eliminar_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Eliminar.Click
Dim vComando As New SqlCommand, vSql As String
67
If MsgBox("Desea eliminar el Medico: " & GrillaM.CurrentRow.Cells(1).Value,
MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
vSql = "DELETE FROM Medicos Where idm = '" & vidm & "'"
vComando.Connection = vCadena
vComando.CommandText = vSql
Conectar()
vComando.ExecuteNonQuery()
Desconectar()
Me.TextBox4.Text = Nothing
Me.TextBox4.Focus()
HabilitarBotones(True, False)
CargarMedicos()
MsgBox("Registro eliminado correctamente...", MsgBoxStyle.Information)
Else
Me.TextBox4.Text = Nothing
Me.TextBox4.Focus()
HabilitarBotones(True, False)
Exit Sub
End If
End Sub
Private Sub Modificar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Modificar.Click
Dim vComando As New SqlCommand
Dim vSql As String
vSql = "UPDATE Medicos SET Medicos = '" & Me.TextBox4.Text & "' WHERE
idm = '" & vidm & "'"
vComando.Connection = vCadena : vComando.CommandText = vSql
68
Conectar()
Me.TextBox4.Text = Nothing
Me.TextBox4.Focus()
HabilitarBotones(True, False)
CargarMedicos()
Desconectar()
MsgBox("Registro Actualizado correctamente...", MsgBoxStyle.Information)
Me.TextBox4.Text = Nothing
Me.TextBox4.Focus()
HabilitarBotones(True, False)
Exit Sub
End Sub
Private Sub Nuevo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Nuevo.Click
GroupBox1.Enabled = True
GroupBox2.Enabled = False
Me.clear()
Me.activacion(1)
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
RegistroMedicos.Show()
End Sub
69
Private Sub cboEspecialidad_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
cboEspecialidad.SelectedIndexChanged
End Sub
End Class
Imports System.Data.SqlClient
Imports System
Imports System.Data.SqlTypes
Imports System.Data.Sql
Public Class Especialidad
70
Dim vide As Integer
Private Sub Especialidad_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
If e.KeyChar = ChrW(Keys.Enter) Then
e.Handled = True
SendKeys.Send("{TAB}")
End If
End Sub
Private Sub Especialidad_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.KeyPreview = True
HabilitarBotones(True, False)
Conectar()
CargarGrilla()
Desconectar()
End Sub
Private Sub CargarGrilla()
Dim vTabla As New DataTable
Dim vAdaptador As New SqlDataAdapter("Select * From Especialidad",
vCadena)
vAdaptador.Fill(vTabla)
GrillaE.DataSource = vTabla
GrillaE.Columns(0).Visible = False
GrillaE.Columns(1).Visible = True
GrillaE.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
End Sub
71
Private Sub HabilitarBotones(ByVal Activo As Boolean, ByVal Inactivo As
Boolean)
Guardar.Enabled = Activo
Modificar.Enabled = Inactivo
Eliminar.Enabled = Inactivo
End Sub
Private Sub GrillaE_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles GrillaE.Click
HabilitarBotones(False, True)
vide = GrillaE.CurrentRow.Cells(0).Value
Me.TextBox2.Text = GrillaE.CurrentRow.Cells(1).Value
End Sub
Private Sub Guardar_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs)
If Me.TextBox2.Text = Nothing Then MsgBox("Ingrese el nombre de la
Especialidad", MsgBoxStyle.Information) : Me.TextBox2.Focus() : Exit Sub
Try
Conectar()
Dim vComando As New SqlCommand
vComando.CommandType = CommandType.StoredProcedure
vComando.CommandText = "Llena_Especialidad"
vComando.Connection = vCadena
vComando.Parameters.Add(New SqlParameter("@Especialidad",
SqlDbType.VarChar, 50)).Value = TextBox2.Text
vComando.ExecuteNonQuery()
CargarGrilla()
Desconectar()
Me.TextBox2.Text = Nothing
72
Catch ex As Exception
MsgBox(ex.Message)
Desconectar()
End Try
End Sub
Private Sub Nuevo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Nuevo.Click
TextBox2.Clear()
End Sub
Private Sub Modificar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Modificar.Click
Dim vComando As New SqlCommand
Dim vSql As String
vSql = "UPDATE Especialidad SET Especialidad = '" & Me.TextBox2.Text & "'
WHERE ide = '" & vide & "'"
vComando.Connection = vCadena : vComando.CommandText = vSql
Conectar()
vComando.ExecuteNonQuery()
CargarGrilla()
Me.TextBox2.Text = Nothing
Me.TextBox2.Focus()
Desconectar()
MsgBox("Actualizado correctamente", MsgBoxStyle.Information)
End Sub
Private Sub Eliminar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Eliminar.Click
Dim vComando As New SqlCommand, vSql As String
73
If MsgBox("Desea eliminar la Especialidad: " &
GrillaE.CurrentRow.Cells(1).Value, MsgBoxStyle.YesNo) = MsgBoxResult.Yes
Then
vSql = "DELETE FROM Especialidad Where ide = '" & vide & "'"
vComando.Connection = vCadena
vComando.CommandText = vSql
Conectar()
vComando.ExecuteNonQuery()
Desconectar()
Me.TextBox2.Text = Nothing
Me.TextBox2.Focus()
HabilitarBotones(True, False)
CargarGrilla()
MsgBox("Registro eliminado correctamente...", MsgBoxStyle.Information)
Else
Me.TextBox2.Text = Nothing
Me.TextBox2.Focus()
HabilitarBotones(True, False)
Exit Sub
End If
End Sub
Private Sub GrillaE_CellContentClick(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.DataGridViewCellEventArgs) Handles
GrillaE.CellContentClick
End Sub
End Class
74
Conclusiones
Se logró cumplir con los objetivos planteados, de crear un programa que permita
llevar el control de pacientes, consultas o médicos y seguimientos de registros en
las áreas del Hospital San Juan de Dios de Estelí.
Proporcionando un mayor control y acceso de la información a los pacientes/
médicos. Lo cual optimiza y agiliza los datos ingresados, perfeccionando de esta
manera el registro de pacientes o médicos al momento de pedir un expediente.
El mercado de software de historias clínicas no ha sido explotado debidamente,
entre otras razones, porque muchos médicos no tienen cultura informática y se les
dificulta el manejar una aplicación tradicional de PC. Es por esto que todo el
desarrollo de este sistema se enfoca en desarrollar e implementar una solución
simple y fácil de usar, dirigida a usuarios no diestros.
75
76
Herramienta CASE utilizada
Rational Rose Enterprise Edition.
Día
Asiut sistema de diseño
Visual Basic 2008
SQL Server 2008
Casos de prueba
77
Proformas de equipos obtenidas para el estudio de factibilidad
78
Documentos proporcionados por el cliente.
Hoja de Consultas
Hoja de registro
79
Entrevista
¿Cree usted necesario y/o útil la creación de un sistema automatizado donde se
almacenen los datos de los pacientes que el doctor atiende diariamente?, ¿Por qué?
Sí, porque pienso que de esta forma se agilizaría el sistema que actualmente
estamos utilizando y estaríamos trabajando con las nuevas tecnologías.
¿Qué beneficios cree usted que le proporcionaría la elaboración de un sistema
donde se almacenen toda la información de los pacientes?
Se evitaría la compra constantes de cuadernos, agendas, libretas, lapiceros que
anualmente se usan para registrar a los pacientes. Obtendríamos más información
de los pacientes ya que normalmente solo se registra el número de cédula. Y se
visualizaría de una forma más legible la información.
¿Usted como secretaria que datos cree que son necesarios al momento del registro
de los pacientes?
Sería bueno anotar, nombres y apellidos, cédula, edad, sexo, profesión, dirección,
número telefónico, motivo de consulta, procedencia o referencia, tipo de asistencia,
fecha de consulta, si asiste por seguro (empresa de seguro) o particular y monto de
consulta cancelado (consulta primera vez, consulta + campo visual, consulta familiar
de médico, consulta por seguro). Para el Doctor (Usuario Secundario): A usted como
Doctor,
¿Le agrada la idea de la elaboración de un sistema donde pueda almacenar los
datos necesarios, así como el diagnóstico dado a sus pacientes?, ¿Por qué?
Si, ya que sería mucho más fácil buscar la historia de un paciente y podría obtener
toda la información referente a él, porque actualmente ocupo mucho espacio en el
disco de la computadora, debido a que las historias las guardo en documentos de
Word y es un poco tedioso al momento de realizar la búsqueda de una de ellas
¿Qué datos son registrados al momento de describir la evaluación realizada por
usted al paciente?
Los datos que normalmente registro son: valoración psicológica, trauma emocional,
intento de homicidio, Diagnóstico, tratamiento recetado.
80
Bibliografía
Meta patrones. Una nueva aproximación a los patrones de diseño’. Moisés Daniel Díaz Toledano. Url http://www.moisesdaniel.com/es/wri/metapatrones.html Patterns of Enterprise Application Architecture’, Martin Fowler. URL: http://martinfowler.com/isa/index.html Client/Server: Past, Present and Future’, George Schussel. URL: http://www.sei.cmu.edu/str/descriptions/clientserver_body.html Client/Server architectures for Business Information Systems. A pattern Language’, Renzel y Keller, Plop’97. URL: http://jerry.cs.uiuc.edu/~plop/plop97/Proceedings/renzel.pdf Architecture Patterns for Business Systems’, por Lorraine Boydj, Plop’97, URL: http://jerry.cs.uiuc.edu/~plop/plop97/Proceedings/boyd.pdf Big Ball of Mud’, Foote y Yoder, URL: http://www.laputan.org/mud/ Application Design Guidelines: From N-Tier to .NET’, by Chappell, Kirk. URL: http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnbda/html/bdadotnetarch001.asp J2EE, Java 2 Platform, Enterprise Edition’, URL: http://java.sun.com/j2ee/
Jorge Magallanes, Jairo Reyes y Fernando Zamudio, “Diseño e implementación de
un sistema para historias clínicas” (Tesis, Facultad de Ingeniería en Electricidad y
Computación, Escuela Superior Politécnica del Litoral, 2005).
Roger S. Pressman. “Ingeniería del Software, Un Enfoque Práctico”, [3era.
Edicion, MacGraw Hill, 1998], pp. 5
Marjorie Lazoff, MD, Julio 2001, “Medical Software on the Web”, Medical
Computing Today.
http://www.medicalcomputingtoday.com
http://www.seis.es/informes/2003/
Walter H, Saldías JA, Zambano R. Historias clínicas electrónicas. Experiencia en
un Hospital Nacional.
Universidad Michoacana de San Nicolás Hidalgo-Facultad de Contaduría y
Ciencias Administrativa
81