Está en la página 1de 12

PROGRAMACION ORIENTADA A OBJETOS

TEMA: IMPLEMENTACION DE HISTORIA CLINICA DE CONSULTA AMBULATORIA

INGENIERIA AUTOMATICA INDUSTRIAL

Presentado Por:

CRISTIAN ANDRES HURTADO

DAVID FELIPE GUZMAN LOPEZ

Profesor:

JORGE ADRIÁN MUÑOZ VELASCO

UNIVERSIDAD DEL CAUCA

27/06/20109
IMPLEMENTACION DE HISTORIA CLINICA DE CONSULTA AMBULATORIA

PROBLEMA:

Se desea implementar un modelo del proceso de una consulta ambulatoria aplicando el


paradigma orientado a objetos, Se deben implementar todas las clases y relaciones observadas
en la figura 1. Las clases deben contener sus respectivos atributos, constructores vacíos y con
parámetros, getters and setters y métodos solicitados. También debe de ser capaz de
mantener una herencia entre clases, para ahorrar código.

Figura 1. Modelado Hospital SLV reducido v1.


ARQUITECTURA:

MODELADO

PRUEBA

VISTA

IMPLEMENTACION DE CODIGO

PAQUETE DE PUEBA: en este paquete implementamos public static void main (String [] args)
que es el método principal de Java es el punto de entrada de cualquier programa java. Su
sintaxis es siempre pública estática vacía (String [] args). Solo puede cambiar el nombre del
argumento de la cadena de cadenas, por ejemplo, puede cambiar los argumentos a
myStringArgs.

En este se llevara a cabo la ejecución de los métodos principales del programa.

1)

package prueba;

import modelado.*;

import vista.Menu;

public class Principal {

public static void main(String[] args) {

Hospital hospitalSusana= new Hospital();

Menu objMenu=new Menu(hospitalSusana);

objMenu.ejecutarMenuPricipal();

}
PAQUETE DE VISTA: En este paquete se implementaran los métodos necesarios para leer,
escribir, guardar, modificar los datos de los objetos que interactúan en el proceso. A
continuación tendremos el menú principal de todos las funciones que se encontraran en la
consola de visualización del programa.
public int menuTextual() {
int opcion=-1;

imprimir("************************************************************
");
imprimir(" MENU HOSPITAL ");
imprimir("1. Ingresar paciente");
imprimir("2. Ingresar Profesional");
imprimir("3. Mostrar listado de pacientes");
imprimir("4. Mostrar listado de profesionales");
imprimir("5. Guardar los archivos de paciente");
imprimir("6. Guardar los archivos de profesional");
imprimir("7. buscar paciente");
imprimir("8. eliminar paciente");
imprimir("9. actualizar");
imprimir("10. Salir");
imprimir("Ingrese una opcion: ");
opcion=objScanner.nextInt();
while(opcion<1 || opcion>10) {
System.out.println("Por favor, digite una opcion entre 1 y
5: ");
opcion=objScanner.nextInt();
}
return opcion;
}

A continuación, veremos uno a uno las funciones de nuestro menú y como están
implementadas.

1. INGRESAR PACIENTE

En esta Función agregaremos un método para ejecutar la opción uno del menú,
la cual implica ingresar los datos de los pacientes al registro. Ello se hace
a través de un método readline que permitirá ingresar la información por
teclado de cada uno de los atributos que tenga paciente como se muestra a
continuación.

public void ejecutarOpcion1() throws IOException {

int cantPacientes;

System.out.println("Ingese la cantidad de pacientes: ");


cantPacientes=objScanner.nextInt();
while(cantPacientes<=0) {
System.out.println("Lacantidad de Pacientes a ingresar
debe ser mayor a 0");
cantPacientes=objScanner.nextInt();
}
objHospital.setLst_Paciente(lst_pacientes);

for(int i=0;i<cantPacientes;i++) {
String planBeneficios;
String regimen;
long nivelEstrato;

objPaciente=new Paciente();
imprimir("Entrada de datos del paciente ");

imprimir("Ingrese la indentificacion del paciente:");


objPaciente.setIdentificacion(objScanner.nextLong());

imprimir("Ingrese el nombre completo del paciente:");


objPaciente.setNombre_completo(rd.readLine());

imprimir("Ingrese el sexo del paciente:");


objPaciente.setSexo(rd.readLine());

imprimir("Ingrese el estado civil del paciente:");


objPaciente.setEstado_civil(rd.readLine());

imprimir("Ingrese la fecha de nacimiento del paciente:");


objPaciente.setFecha_nacimiento(rd.readLine());

imprimir("Ingrese la direccion del paciente:");


objPaciente.setDireccion(rd.readLine());

imprimir("Ingrese el telefono del paciente:");


objPaciente.setTelefono(objScanner.nextLong());

imprimir("Ingrese la ocupacion del paciente:");


objPaciente.setOcupacion(rd.readLine());

imprimir("Ingrese la procedencia del paciente:");


objPaciente.setProcedencia(rd.readLine());

imprimir("Ingrese el plan de beneficios del paciente:");


planBeneficios=rd.readLine();

imprimir("Ingrese el regimen del paciente:");


regimen=rd.readLine();
imprimir("Ingrese el nivel de estrato del paciente:");
nivelEstrato=objScanner.nextLong();
objPaciente.setRefAfiliacionPaciente(planBeneficios,
regimen, nivelEstrato);

//Agregar elementos objPaciente al listado de pacientes de


objHospital

objHospital.Registrar_paciente(objPaciente);
}
}
2. INGRESAR PROFESIONAL

En esta Función agregaremos un método para ejecutar la opción dos del menú,
la cual implica ingresar los datos de los profesionales al registro. Ello se
hace a través de un método readline que permitirá ingresar la información por
teclado de cada uno de los atributos que tenga profesional como se muestra a
continuación.

objHospital.setLst_Profesional(lst_profesionales);//?????????????????????????
??????????????

objProfesional=new Profesional(); //reserva de memoria para cada


profesional

imprimir("Entrada de datos del profesional");

imprimir("Ingrese la identificacion del profesional");


objProfesional.setIdentificacion(objScanner.nextLong());

imprimir("Ingrese el nombre del profesional");


objProfesional.setNombre_completo(rd.readLine());

imprimir("Ingrese el sexo del profesional");


objProfesional.setSexo(rd.readLine());

imprimir("Ingrese el esatdo civil del profesional");


objProfesional.setEstado_civil(rd.readLine());

imprimir("Ingrese la fecha de nacimiento del profesional");


objProfesional.setFecha_nacimiento(rd.readLine());

imprimir("Ingrese la direccion del profesional");


objProfesional.setDireccion(rd.readLine());

imprimir("Ingrese el telefono del Profesional");


objProfesional.setTelefono(objScanner.nextLong());

imprimir("Ingrese le registro del profesional");


objProfesional.setRegistro_profesional(objScanner.nextLong());

//Agregar elementos objProfesional al listado de profesionales


de objHospital
objHospital.Registrar_Profesional(objProfesional);

}
3. GUARDAR LOS ARCHIVOS DEL PACIENTE

En esta etapa creamos un archivo de tipo txt donde podremos almacenar los
datos de cada objeto paciente creado.

public void guardar_datos_paciente() {


//variables y objetos locales
DataOutputStream datosDestino = null; //flujo de datos
FileOutputStream archivo = null; //crear dato salida

Paciente objPaciente; //llama al objeto paciente


//validación para creación de flujo paciente.txt
try{
archivo = new FileOutputStream("paciente.txt"); //crear
archivo txt
datosDestino = new DataOutputStream(archivo); //asigna
el destino de lps datos a un archivo

objPaciente = new Paciente();


for(int i=0; i<objHospital.getLst_Paciente().size(); i++){
objPaciente = objHospital.getLst_Paciente().get(i);
//obtener los datos de cada profesor para poder manimularlos y los asigna a
una variable

datosDestino.writeUTF(objPaciente.obtener_info_paciente());//manipula
la informacion obtenida y la escribe en el txt
}
}
catch(IOException er){
System.out.println("Excepción en el flujo de
salida"+er.getMessage());
}
finally{
try{
archivo.close();
}
catch (IOException er){
er.printStackTrace();
}
}
}

4. GUARDAR LOS ARCHIVOS DEL PROFESIONAL

En esta etapa creamos un archivo de tipo txt donde podremos almacenar los
datos de cada objeto profesional creado. Primero accedemos a la lista de los
profesionales y después a la información de cada uno de ellos, esa
información la escribimos en el archivo txt.

public void guardar_datos_profesional() {


//variables y objetos locales
DataOutputStream datosDestino = null; //flujo de datos
FileOutputStream archivo = null; //crear dato salida

Profesional objProfesional; //llama al


objetoprofesional
//validacion para la creaciion del flujo profesional.txt
try {
archivo = new FileOutputStream("profesional.txt");
datosDestino = new DataOutputStream(archivo);

objProfesional = new Profesional();


for(int i=0;i<objHospital.getLst_Profesional().size();i++)
{
objProfesional =
objHospital.getLst_Profesional().get(i);

datosDestino.writeUTF(objProfesional.obtener_info_profesional());
}
}
catch(IOException er) {
System.out.println("Excepcion en el flujo de
salida"+er.getMessage());
}
finally {
try {
archivo.close();
}
catch(IOException er) {
er.printStackTrace();
}
}
}

5. LEER ARCHIVO PACIENTE

public void leer_archivo_paciente() {


DataInputStream datosOrigen = null;
FileInputStream archivo = null;

Paciente objPaciente;
String linea;
String elemento[];
//validación para abrir el flujo de datos de paciente.txt
try {
archivo = new FileInputStream("paciente.txt");
datosOrigen = new DataInputStream(archivo);
}
catch(IOException io) {
System.out.println("Anamolias al crear flujo de entrada de
datos"+io.getMessage());
return;
}
//validación para recorrer los datos de paciente.txt
try {
boolean bandera = true;
while(bandera) {
objPaciente=new Paciente();
linea = datosOrigen.readUTF();

imprimir(linea);
elemento=linea.split(",");

objPaciente.setIdentificacion(Long.parseLong(elemento[0]));
objPaciente.setNombre_completo(elemento[1]);
objPaciente.setSexo(elemento[2]);
objPaciente.setEstado_civil(elemento[3]);
objPaciente.setFecha_nacimiento(elemento[4]);
objPaciente.setDireccion(elemento[5]);

objPaciente.setTelefono(Long.parseLong(elemento[6]));
objPaciente.setOcupacion(elemento[7]);
objPaciente.setProcedencia(elemento[8]);

objPaciente.setRefAfiliacionPaciente(elemento[9],elemento[10],Long.par
seLong(elemento[11]));

lst_pacientes.add(objPaciente);
}
}
catch(EOFException eof){
System.out.println("Fin de lectura de archivo");
}
catch(IOException io) {
System.out.println("Anomalía al leer flujo de entrada, "+
io.getMessage());
return; // termina la ejecución
}
finally{
try{

objHospital.setLst_Paciente(lst_pacientes);//?????????????????????????
????
archivo.close();
}
catch (IOException er){
er.printStackTrace();
}
}

}
6. ELIMINAR DATOS PACIENTE

public void eliminar_paciente(int identificacion) {


int resultado;
resultado=buscar_paciente(identificacion);

if(Lst_Paciente.get(resultado).getIdentificacion()==identificacion) {
Lst_Paciente.remove(resultado);
}
else {
System.out.println("El paciente no fue encontrado");
}
}

7. ACTUALIZAR DATOS PACIENTE

public void ejecutarOpcion9() throws IOException {


int identificacion;
int res;
String direccion;
long telefono;
imprimir("ingrese la identificacion del paciente: ");
identificacion=objScanner.nextInt();
res=objHospital.buscar_paciente(identificacion);
imprimir("Ingrese la nueva direccion del paciente: ");
direccion=rd.readLine();
objHospital.getLst_Paciente().get(res).setDireccion(direccion);
imprimir("Ingrese el nuevo telefono del paciente: ");
telefono=objScanner.nextLong();
objHospital.getLst_Paciente().get(res).setTelefono(telefono);
}

8. BUSCAR PACIENTE

public int buscar_paciente(int identificacion) {


int posicion=-1;
for(int i=0;i<Lst_Paciente.size();i++) {

if(Lst_Paciente.get(i).getIdentificacion()==identificacion) {
posicion=i;
}
}
return posicion;
}
9. IMPRIMIR DATOS PACIENTE

public void imprimir_listado_pacientes() {


for(int i=0;i<Lst_Paciente.size();i++) {
int numPaciente=i+1;
//salida de datos objeto paciente

System.out.println("**************************************************
************");
System.out.println(" Paciente #"+ numPaciente);
System.out.println("Identificacion : "+
Lst_Paciente.get(i).getIdentificacion());
System.out.println("Nombre :
"+Lst_Paciente.get(i).getNombre_completo());
System.out.println("Tipo de sexo :
"+Lst_Paciente.get(i).getSexo());
System.out.println("Estado civil :
"+Lst_Paciente.get(i).getEstado_civil());
System.out.println("Fecha de nacimiento:
"+Lst_Paciente.get(i).getFecha_nacimiento());
System.out.println("Direccion: :
"+Lst_Paciente.get(i).getDireccion());
System.out.println("Telefono :
"+Lst_Paciente.get(i).getTelefono());
System.out.println("Ocupacion :
"+Lst_Paciente.get(i).getOcupacion());
System.out.println("Procedencia :
"+Lst_Paciente.get(i).getProcedencia());

Afiliacion
objAfiliacion=Lst_Paciente.get(i).getRefAfiliacionPaciente();
System.out.println("Plan beneficios:
"+objAfiliacion.getPlan_beneficios());
System.out.println("Regimen:
"+objAfiliacion.getRegimen());
System.out.println("Nivel estrato: " +
objAfiliacion.getNivel_estrato());

System.out.println("**************************************************
************");
}
}
10. IMPRIMIR DATOS PROFESIONAL

public void imprimir_listado_profesionales() {


for(int i=0;i<Lst_Profesional.size();i++) {
int numProfesional=i+1;

System.out.println("**************************************************
************");
System.out.println(" Profesional #"+ numProfesional);
System.out.println("Identificacion: "+
Lst_Profesional.get(i).getIdentificacion());
System.out.println("Nombre :
"+Lst_Profesional.get(i).getNombre_completo());
System.out.println("Tipo de sexo :
"+Lst_Profesional.get(i).getSexo());
System.out.println("Estado civil :
"+Lst_Profesional.get(i).getEstado_civil());
System.out.println("Fecha de nacimiento:
"+Lst_Profesional.get(i).getFecha_nacimiento());
System.out.println("Direccion: :
"+Lst_Profesional.get(i).getDireccion());
System.out.println("Telefono :
"+Lst_Profesional.get(i).getTelefono());
System.out.println("Registro profesional:
"+Lst_Profesional.get(i).getRegistro_profesional());

System.out.println("Especialidad:
"+Lst_Especialidad.get(i).getNombre());

//System.out.println("Espcialidad:
"+Lst_Especialidad.get(i).getNombre());

//System.out.println("Especialidad"+Lst_Profesional.get(i).getLst_Espe
cialidad().get(i).getNombre());
//Lst_Profesional.get(i).getLst_Especialidad();

System.out.println("**************************************************
************");
}
}

También podría gustarte