Este documento presenta el análisis y diseño de un sistema de control de registros para un hospital. Incluye una descripción del problema actual, los objetivos del nuevo sistema, un estudio de factibilidad técnica, operativa y económica, y los diagramas de casos de uso, clases, secuencias y otros elementos del modelo de diseño. El objetivo general es facilitar el control de datos de pacientes y consultas mediante una herramienta digital que sea más eficiente que el actual sistema manual.
Libro de guardia, Indicaciones medicas y controles de enfermería, Historia Clínica de Guardia, Hojas de derivación, Libro de Intervenciones policiales, Registro informatizado de Triage, Consentimiento informado, Denuncias de NN, Enfermedades de Denuncia obligatoria, Receta de guardia, Pedido de Interconsulta, Pedido de Imágenes y Pedido de Laboratorio de guardia
Expediente clínico de Enfermería como norma y su trascendencia ético-legalSSI CONAMED
Expediente clínico de Enfermería como norma y su trascendencia ético-legal
Presentado en Curso Monográfico "Aspectos legales en la práctica de Enfermería". Hospital de Especialidades CMN SXXI, IMSS. 24-04-2014.
Es el documento médico legal, en el que se registra los datos de identificación y de los procesos relacionados con la atención del paciente, en forma ordenada, integrada, secuencial e inmediata a la atención que el médico u otros profesionales de salud brindan al paciente o usuario de salud y que son refrendados con la firma manuscrita o digital de los mismos. Las historias clínicas son administradas por las IPRESS.
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
18. 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
30. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
46. 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
48. 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. 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. 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. 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
53. 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. 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. 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)
57. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
79. 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. 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/bdadotn
etarch001.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