manual de la base de datos hospital

26
1 MANUAL DE LA BASE DE DATOS HOSPITAL 1. Crear la base de datos y sus correspondientes tablas create database hospital; create table hospitales(codigo varchar(8)primary key,

Upload: publitecnoweb

Post on 18-Jan-2016

26 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Manual de La Base de Datos Hospital

1

MANUAL DE LA BASE DE DATOS HOSPITAL

1. Crear la base de datos y sus correspondientes tablas

create database hospital;

create table hospitales(codigo varchar(8)primary key, nombre varchar(50), direccion varchar(50), cantcamas int(5));

Page 2: Manual de La Base de Datos Hospital

2

create table salas(codigo varchar(8)primary key, nombre varchar(50), camas varchar(50), codigohosp varchar(8), foreign key(codigohosp) references hospitales(codigo));

create table pacientes(cedula varchar(8)primary key, nombre varchar(50), sexo varchar(10), fnac varchar(20), nreg varchar(20), ncama int(5), direccion varchar(50), codigosal varchar(8), foreign key (codigosal) references salas(codigo));

create table telhosp(telefono varchar(10)primary key, cdhosp varchar(8), foreign key(cdhosp) references hospitales(codigo));

2. para conectar mysql con java se necesita un driver, y se necesita colocarlo en la siguiente dirección:

C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext

3. Abrir netbeans, enseguida se crea un nuevo proyecto con el nombre de sistemahospital.

Page 3: Manual de La Base de Datos Hospital

3

Ruta: File/ Newproject/ Java/J ava Aplication/ sistemahospital.

Después de crear el proyecto enseguida se crea un jframe con el nombre de interfazhospital (interfazhospital.java).

Page 4: Manual de La Base de Datos Hospital

4

4. En el archivo principal sistemahospital.java, se manda llamar el Jframe con los siguientes códigos:

interfazhospital interfaz = new interfazhospital(); interfaz.setLocationRelativeTo(interfaz); interfaz.setVisible(true);

Nota: Con estos códigos nuestro proyecto podrá compilarse con el Jframe creado.

5. En el Jframe creado (interfazhospital.java) diseñaremos el siguiente interfaz.

Se inserta una TabbedPane Se inserta 3 panel dentro del TabbedPane en la misma línea como se

muestra en la imagen siguiente.

Cada componente del interfaz se configura y queda de la siguiente forma:

Page 5: Manual de La Base de Datos Hospital

5

Los primeros componentes son del primer panel que es de Alta a Hospitales.

Label (código, Nombre, Dirección, N° Cama y N° Teléfono). TextField (txtcodigo, txtnombre, txtdireccion, txtcamas, txttelfpac). Botón (btnguardar, btnnuevo, btncerrar, btnagregarnumero,

btneliminarnumero). List (Jlistnumhospital). Table (tbhospitales).

Al terminar de diseñar el interfaz para dar alta al hospital,al final de cerrar la ultima llave del programa se crean los objetos para la conexión con la base de datos y los códigos son los siguientes:

conectar cc = new conectar();Connection cn = cc.conexion();

6. se crea una clase dentro del proyecto con el nombre de conexión (conexión.java).

Page 6: Manual de La Base de Datos Hospital

6

Después de crear la clase, se procede a programarlo con los siguientes códigos:

package sistemahospital;

import java.sql.Connection;import java.sql.DriverManager;import javax.swing.JOptionPane;

public class conexion {Connection conexion = null; public Connection conexion(){ try { Class.forName("com.mysql.jdbc.Driver"); conectar = DriverManager.getConnection("jdbc:mysql://localhost/hospital","root","12345"); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } return conectar; }

7. Se programara el botón Nuevo. Dándole doble clic en ella y nos llevara enla área de codificación:

private void btnnuevoActionPerformed(java.awt.event.ActionEvent evt) { this.txtcodigo.setText(""); this.txtnombre.setText(""); this.txtdireccion.setText(""); this.txttelfpac.setText(""); this.txtcamas.setText(""); lista.removeAllElements(); this.jlistnumhospital.setModel(lista);}

Con estas líneas de códigos sirve para limpiar los datos ingresados en la pantalla e ingresar nuevos datos según el sistema.

Page 7: Manual de La Base de Datos Hospital

7

8. Ahorra programaremos el botón Guardar, dándole 2 clic sobre en ella.

Sobre en esta línea ingresaremos los siguientes códigos:

private void btnguardarActionPerformed(java.awt.event.ActionEvent evt) {

try { PreparedStatement pst = cn.prepareStatement("INSERT INTO hospitales(codigo,nombre,direccion,cantcamas) VALUES (?,?,?,?)"); pst.setString(1,this.txtcodigo.getText()); pst.setString(2,this.txtnombre.getText()); pst.setString(3,this.txtdireccion.getText()); pst.setInt(4,Integer.parseInt(this.txtcamas.getText())); pst.executeUpdate(); mostrardatos(); //CODIGO PARA GUARDAR EN LA TABLA DE TELEFONO String cdhosp, telefono; cdhosp = this.txtcodigo.getText(); for(int i=0;i<this.jlistnumhospital.getModel().getSize();i++) { telefono = this.jlistnumhospital.getModel().getElementAt(1).toString(); pst = cn.prepareStatement("insert into telhosp(telefono,cdhosp) values(?,?)"); pst.setString(1,telefono); pst.setString(2,cdhosp); pst.executeUpdate(); } } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } Con estos códigos ya podremos ingresar y gradar los registros de la base de datos

Page 8: Manual de La Base de Datos Hospital

8

9. Ahora se procederá a programar el botón Agregar, dándole doble clic sobre ella y nos llevara a la área de programación:

En esta área ingresaremos primero una línea de código antes de la clase (una línea antes de la clase a programar) con los siguiente códigos:

DefaultListModel lista =new DefaultListModel();

Ahorra se ingresara los siguientes códigos dentro de la clase Agregar:

private void btnagregarnumeroActionPerformed(java.awt.event.ActionEvent evt) { lista.addElement(this.txttelfpac.getText()); this.jlistnumhospital.setModel(lista);

}

10.Se procede a programar el botón Eliminar Telefono, doble clic en ella y nos llevara en la área de codificación:

Se ingresaran los siguiente códigos dentro de la clase:

private void btneliminartelefonoActionPerformed(java.awt.event.ActionEvent evt) { try { int index; index = this.jlistnumhospital.getSelectedIndex(); lista.removeElementAt(index); this.jlistnumhospital.setModel(lista); } catch (Exception e) { JOptionPane.showMessageDialog(null, "NO Se Seleciono Ningun Elemento"); } }

Page 9: Manual de La Base de Datos Hospital

9

11.Ahora se agregara un nuevo componente Table donde se visualizará todos los registros ingresados a la base de datos.

Una vez agregado la tabla en en interfaz se procede a configurarlo: Dándole clic secundario en la tabla /Table Contennts Columns(eliminar todos) Rows(inicializar a cero) close.

12.Se crea el método para mostrar los datos de la tabla hospitales, se

ingresan los siguientes códigos:

void mostrardatos() { DefaultTableModel modelo = new DefaultTableModel(); modelo.addColumn("Codigo Hospital"); modelo.addColumn("Nombre Hospital"); modelo.addColumn("Direccion Hospital"); modelo.addColumn("Camas Hospital"); this.tbhospitales.setModel(modelo); String[] datos = new String[4]; try { Statement st = cn.createStatement(); ResultSet rs = st.executeQuery("select *from hospitales"); while(rs.next()) { datos[0]=rs.getString(1); datos[1]=rs.getString(2); datos[2]=rs.getString(3); datos[3]=rs.getString(4); modelo.addRow(datos); }

Page 10: Manual de La Base de Datos Hospital

10

this.tbhospitales.setModel(modelo); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } }

13.Se agrega el método en el constructor.

public hospital() { initComponents(); mostrardatos();}

PARTE 2. ALTA SALAS

Page 11: Manual de La Base de Datos Hospital

11

1. Se creara un nuevo panel llamado Alta Salas dentro del panel de Alta Salas y sus componentes estarán compuesto por los siguientes:

Label (código, Nombre, N° Cama y Hospital). TextField (txtcodsala, txtnumsala, txtcamsalas). Boton (btnguardarsala). Combobox (comboboxhospitales, combocodigo). Table (tabsalas).

Nuestra pantalla quedara de la siguiente forma:

2. Se programara el botón de Guardar, doble clic en ella y nos llevara en la área de programación, ingresaremos los siguientes códigos:

private void btnguardarsalasActionPerformed(java.awt.event.ActionEvent evt)

{

try { int num; String sel; num = this.ComboBoxsalas.getSelectedIndex(); this.ComboBoxcodigo.setSelectedIndex(num); sel = (String)this.ComboBoxcodigo.getSelectedItem(); PreparedStatement pst = cn.prepareStatement("insert into salas(codigo,nombre,camas,codigohosp) values (?,?,?,?)"); pst.setString(1,this.txtcodigosalas.getText()); pst.setString(2,this.txtnombresalas.getText()); pst.setString(3,this.txtcodigosalas.getText()); pst.setString(4, sel); pst.executeUpdate();

Page 12: Manual de La Base de Datos Hospital

12

mostrardatossalas(); } catch (SQLException sQLException) { } }

3. Ahora se agregara un nuevo componente Table donde se visualizará todos los registros ingresados a la base de datos.

Una vez agregado la tabla en en interfaz se procede a configurarlo: Dándole clic secundario en la tabla /Table Contennts Columns(eliminar todos) Rows(inicializar a cero) close.

4.

Se crea el método para mostrar los datos de la tabla salas, los códigos son los siguientes:

void mostrardatossalas() { DefaultTableModel modelo = new DefaultTableModel(); modelo.addColumn("Codigo Salas"); modelo.addColumn("Nombre Salas"); modelo.addColumn("Direccion Salas"); modelo.addColumn("Codigo Hosp"); this.tabsalas.setModel(modelo); String[] datos = new String[4]; try { Statement st = cn.createStatement(); ResultSet rs = st.executeQuery("select *from salas"); while(rs.next())

Page 13: Manual de La Base de Datos Hospital

13

{ datos[0]=rs.getString(1); datos[1]=rs.getString(2); datos[2]=rs.getString(3); datos[3]=rs.getString(4); modelo.addRow(datos); } this.tabsalas.setModel(modelo); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } }

5. Se manda a llamar el método mostrardatossalas(); en el constructor.

public hospital() { initComponents(); mostrardatos(); mostrardatossalas();}

6. Se programara el ComboBox , con ellos se creara el método para mostrar los nombres y el código de los hospitales dados de alta en los combobox.

void mostrarcombobox() { try { ResultSet resultado; Statement sentencia = cn.createStatement();

resultado = sentencia.executeQuery("select nombre,codigo from hospitales"); while(resultado.next()) { this.cbhopac.addItem(resultado.getObject("Nombre")); this.cbcodhopac.addItem(resultado.getObject("codigo")); this.ComboBoxsalas.addItem(resultado.getObject("nombre")); this.ComboBoxcodigo.addItem(resultado.getObject("codigo"));

Page 14: Manual de La Base de Datos Hospital

14

} } catch (SQLException sQLException) { } }

7. Se manda a llamar el método mostrarcombobox(); en el constructor.

public hospital() { initComponents(); mostrardatos(); mostrardatossalas(); mostrarcombobox();}

8. Se crea el método para no repetir los datos registrados de la tabla hospital, dados de alta.

void limpiarcombobox(){ int elementos =this.ComboBoxsalas.getItemCount(); for (int i=0; i<elementos;i++) { this.ComboBoxsalas.removeItemAt(0); this.ComboBoxcodigo.removeItemAt(0);} }

9. Se manda a llamar el método limpiarcombobox(); en el constructor.

public hospital() { initComponents(); mostrardatos(); mostrardatossalas(); mostrarcombobox(); limpiarcombobox();}

Page 15: Manual de La Base de Datos Hospital

15

10.Se manda a llamar el método limpiarcombobox(); en el botón de guardar del panel de Alta a Paciente. Entre la línea de mostrardatos(); y mostrarcombobox(); Como se ve a continuación en la figura.

11.Se programara el botón cerrar

private void btncerrarActionPerformed(java.awt.event.ActionEvent evt) {dispose();}

Nuestra pantalla quedara de la siguiente manera:

PARTE 3. ALTA PACIENTE

1. Se agregara un nuevo panel en jTabbedPane y sus componentes estará compuesto por los siguientes:

Page 16: Manual de La Base de Datos Hospital

16

Label (cedula,Nombre,Sexo,Fecha de Nacimiento,N° Registro, N°cama, Direccion, Hospital, Sala).

TextField (txtcedula, txtnombrepaciente, txtfechanacipaciente, txtregistro, txtcamapaciente, txtdireccionpaciente)

Combobox (combosexo, cbhopac, cbcodhopac, combopacsala1, combopacsala2)

Table (tabpaciente)

Nuestro interfaz quedara de la siguiente manera:

2. Se programara el ComboBox (cbhopac, cbcodhopac)

cbhopac cbcodhopac

cuando se selecione un hospital, se debe mostrar solo las salas que pertenece dicho hospital, para ello se necesita realizar una consulta, se necesita enviar un valor( la llave primaria del hospital) por ello se programara de la siguiente forma.

En cbhopac (ComboBox) se le agregara los siguientes códigos:

Page 17: Manual de La Base de Datos Hospital

17

int num2; String sel2; num2 = this.cbhopac.getSelectedIndex(); this.cbcodhopac.setSelectedIndex(num2); sel2 = (String) this.cbcodhopac.getSelectedItem(); salashospitales(sel2);}

3. Se crea un método salashospitales(); para visualizar las salas del hospital dadas de alta.

void salashospitales(String codhosp) { try { ResultSet resultado; Statement sentencia = cn.createStatement(); limpiarcombobox(); resultado= sentencia.executeQuery("select salas.codigo,salas.nombre from hospitales,salas where hospitales.codigo=salas.codigohosp and salas.codigohosp ='"+codhosp+"'"); while(resultado.next()) { this.combopacsala1.addItem(resultado.getObject("nombre")); this.combopacsala2.addItem(resultado.getObject("codigo")); } } catch (SQLException sQLException) { } }

4. En el método limpiarcombobox(); creado, se le anexa los siguientes códigos para no repetir las salas y hospitales dados de alta al sistema:

{

Page 18: Manual de La Base de Datos Hospital

18

int registros = this.ComboBoxcodigo.getComponentCount(); for (int i=0; i<elementos;i++) { this.combopacsala1.removeAllItems(); this.combopacsala2.removeAllItems(); }

ver imagen.

5. Se programara el botón de Guardar con los siguientes códigos:

private void btnguardarpacienteActionPerformed(java.awt.event.ActionEvent evt) { try { //Para que se posicione en el codigo de la sala dependiendo de la sala que se seleccione int location; location = this.combopacsala1.getSelectedIndex(); this.combopacsala2.setSelectedIndex(location); //Capturar los valores del combobox que estan seleccionados String sexo,codigosal; sexo = (String) this.combosexo.getSelectedItem(); codigosal = (String) this.combopacsala2.getSelectedItem(); PreparedStatement pst = cn.prepareStatement("insert into pacientes(cedula,nombre,sexo,fnac,nreg,ncama,direccion,codigosal) values (?,?,?,?,?,?,?,?)"); pst.setString(1,this.txtcedula.getText()); pst.setString(2,this.txtnombrepaciente.getText()); pst.setString(3,sexo);

Page 19: Manual de La Base de Datos Hospital

19

pst.setString(4,this.txtfechanacipaciente.getText()); pst.setString(5,this.txtregistro.getText()); pst.setInt(6,Integer.parseInt(this.txtcamapaciente.getText())); pst.setString(7,this.txtdireccionpaciente.getText()); pst.setString(8,codigosal); pst.executeUpdate(); mostrardatospaciente(); } catch (Exception ex) { JOptionPane.showMessageDialog(this,"Error"+ex.getMessage()); }}

6. Se crea el método para mostrar los datos de la tabla salas, los códigos son los siguientes:

void mostrardatospaciente() { DefaultTableModel modelo = new DefaultTableModel(); modelo.addColumn("Cedula"); modelo.addColumn("Nombre"); modelo.addColumn("Sexo"); modelo.addColumn("Fecha Nacimiento"); modelo.addColumn("Registro"); modelo.addColumn("N° Cama"); modelo.addColumn("Dirección"); modelo.addColumn("Codigo Sala"); this.tabpaciente.setModel(modelo); String []datos = new String[8]; try { Statement st = cn.createStatement(); ResultSet rs = st.executeQuery("select * from pacientes"); while(rs.next()){ datos[0]= rs.getString(1); datos[1]= rs.getString(2); datos[2]= rs.getString(3); datos[3]= rs.getString(4); datos[4]= rs.getString(5); datos[5]= rs.getString(6); datos[6]= rs.getString(7); datos[7]= rs.getString(8);

Page 20: Manual de La Base de Datos Hospital

20

modelo.addRow(datos); } this.tabpaciente.setModel(modelo); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } }

7. Se manda a llamar el método mostrardatospaciente(); en el constructor.

public hospital() { initComponents(); mostrardatos(); mostrardatossalas(); mostrarcombobox(); limpiarcombobox(); mostrardatospaciente(); }

8. Se programara el botón nuevo, con los siguientes códigos:

private void btnnuevopacienteActionPerformed(java.awt.event.ActionEvent evt) { this.txtcedula.setText(""); this.txtnombrepaciente.setText(""); this.txtcamapaciente.setText(""); this.txtdireccionpaciente.setText(""); this.txtfechanacipaciente.setText(""); this.txtregistro.setText("");}

Pantalla final de nuestro sistema.

Page 21: Manual de La Base de Datos Hospital

21