#include <iostream>
#include <conio.h>
using namespace std;
struct registro{
char nombre[35];
char condicionC[50];
string documento,fechaN,estado,Regimen1;
string direccion,telefono,eps;
char tipoD[35];
int piso,Eps1,Regimen,nivel,nivel1;
int pisoT,disp;
int fila,columna;
int filaT,columnaT;
};
registro paciente[20];
registro cama[4][8][8];
void registro();
void listado();
void consulta();
void mostrar();
void disponibilidad1();
void disponibilidad2();
void disponibilidad3();
void disponibilidad4();
void pagar();
void retiroP();
void transladarP();
int i=0;
int paga;
string doc;
int fil,colum;
int main(){
int op,op1,op3;
do{
cout<<"\t\t\nHOSPITAL SAN FERNANDO\n\n";
cout<<"1.REGISTRAR PACIENTE\n";
cout<<"2.LISTADO DE PACIENTES\n";
cout<<"3.CONSULTA INFORMACION DE PACIENTES\n";
cout<<"4.MOSTRAR DISPONIBILIDAD DE CAMAS\n";
cout<<"5.FACTURA DE PACIENTE\n";
cout<<"6.RETIRO DE PACEINTE\n";
cout<<"7.TRANSLADAR PACIENTE\n";
cout<<"8.SALIR\n";
cout<<"Escoja un opcion\n";
cin>>op;
switch(op){
case 1:cout<<"\nREGISTRO DE PACIENTES\n";
registro();
break;
case 2:cout<<"LISTADO DE PACIENTES\n";
listado();
break;
case 3:cout<<"CONSULTA INFORMACION DE PACIENTES\n";
consulta();
break;
case 4:cout<<"MOSTRAR DISPONIBILIDAD DE CAMA\n";
mostrar();
break;
case 5:cout<<"FACTURA DE PACIENTE\n";
pagar();
break;
case 6:cout<<"RETIRO DE PACIENTE\n";
retiroP();
break;
case 7:cout<<"TRANSLADAR PACIENTE\n";
transladarP();
break;
case 8:cout<<"\t\nSALIENDO\n";
return 0;
break;
default:cout<<"\tERROR DE OPCION\n\n";
break;
}
cout<<"Desea regresar al menu\n";
cout<<"1.SI/2.NO\n";
cin>>op1;
}while (op1==1);
getch();
return 0;
}
void registro(){
int op,op1,op3;
cout<<"Que tipo de documento tiene?\n";
cout<<"Ingrese el nombre del tipo de documento que tiene\n";
cin.getline(paciente[i].tipoD,35);
cin.getline(paciente[i].tipoD,35);
disponibilidad1();
cout<<"Escoja la fila en la que quiere ubicar al paciente\n";
cin>>fil;
cout<<"Escoja la columna en la que quiere ubicar al paciente\n";
cin>>colum;
if(fil>8||colum>8||fil<1||colum<1){
cout<<"\n\tLo sentimos,la fila o la columna son incorretos\n";
return void (0);
}
if(cama[0][fil-1][colum-1].disp==1){
cout<<"\n\t Lo sentimos este espacio ya se ecuetra ocupado\n";
return void (0);
}
if(cama[0][fil-1][colum-1].disp==0){
cout<<"\n\tSe ecuetra disponile\n";
}
cama[0][fil-1][colum-1].disp=1;
cout<<"Ingrese su numero de documento\n";
cin>>paciente[i].documento;
cout<<"Ingrese su nombre completo\n";
cin.getline(paciente[i].nombre,35);
cin.getline(paciente[i].nombre,35);
cout<<"Ingrese su fecha de nacimiento\n";
cin>>paciente[i].fechaN;
cout<<"Ingrese su direccion\n";
cin>>paciente[i].direccion;
cout<<"Ingrese su numero de telefono\n";
cin>>paciente[i].telefono;
cout<<"tiene EPS\n";
cout<<"1.Si/2.No\n";
cin>>paciente[i].Eps1;
if(paciente[i].Eps1==1){
cout<<"Que EPS pertenece\n";
cin>>paciente[i].eps;
cout<<"Que tipo de Regimen es:\n";
cout<<"1.Subsidio/2.Contributivo\n";
cin>>paciente[i].Regimen;
if(paciente[i].Regimen==2){
paciente[i].Regimen1="contributivo";
cout<<"En que nivel se encuentra\n";
cout<<"1.Nivel 1\n";
cout<<"2.Nivel 2\n";
cout<<"3.Nivel 3\n";
cin>>paciente[i].nivel1;
}
}
if(paciente[i].Regimen==1){
paciente[i].Regimen1="Subsidio";
}
cout<<"Nivel de Urgencia del paciente entre 1 a 4\n";
cout<<"Recuerde que 1 es mas urgente y 4 es menos urgente\n";
cin>>paciente[i].nivel;
cout<<"Condicion clinica del paciente(Nombre Enfermedad O Dolencia)\n";
cin.getline(paciente[i].condicionC,50);
cin.getline(paciente[i].condicionC,50);
paciente[i].piso=1;
cout<<"\n\t EL PACIENTE SE A REGISTRADO CORRECTAMENTE\n\n";
cama[0][fil][colum].fila=fil;
cama[0][fil][colum].columna=colum;
i++;
}
void listado(){
int j,m;
cout<<"Paciente que han ingresado\n";
for(j=0;j<i;j++){
cout<<"-----------------------------------------------------------";
cout<<"\n\tRegistro # "<<j<<"\n\n";
cout<<"NOMBRE....: "<<paciente[j].nombre<<"\n";
cout<<"TIPO DE DOCUMENTO....: "<<paciente[j].tipoD<<"\n";
cout<<"NUMER DE DOCUMENTO....: "<<paciente[j].documento<<"\n";
cout<<"FACHA DE NACIMIENTO....: "<<paciente[j].fechaN<<"\n";
cout<<"DIRECCION....: "<<paciente[j].direccion<<"\n";
cout<<"TELEFONO....: "<<paciente[j].telefono<<"\n";
cout<<"EPS....: "<<paciente[j].eps<<"\n";
cout<<"TIPO DE REGIMEN....: "<<paciente[j].Regimen1<<"\n";
cout<<"NIVEL DE URGENCIA....: "<<paciente[j].nivel<<"\n";
cout<<"CONDICION CLINICA....: "<<paciente[j].condicionC<<"\n";
cout<<"PISO ASIGNADO....: "<<paciente[j].piso<<"\n";
cout<<"CAMA ASIGNADA....: "<<cama[0][fil][colum].fila<<" x "<<cama[0][fil][colum].columna<<"\n";
cout<<"PISO TRANSLADADO....: "<<paciente[j].pisoT<<"\n";
cout<<"CAMA TRANSLADADA....: "<<cama[j][fil][colum].filaT<<" x "<<cama[j][fil][colum].columnaT<<"\n";
cout<<"ESTADO DEL PACIENTE....: "<<paciente[j].estado<<"\n";
cout<<"----------------------------------------------------------------------\n";
}
}
void consulta(){
string doc;
int j;
cout<<"Ingrese el numero de documento del paciente\n";
cin>>doc;
for (j=0;j<i;j++){
if(doc==paciente[j].documento){
cout<<"-----------------------------------------------------------";
cout<<"Registro # "<<j<<"\n";
cout<<"NOMBRE: "<<paciente[j].nombre<<"\n";
cout<<"TIPO DE DOCUMENTO: "<<paciente[j].tipoD<<"\n";
cout<<"NUMER DE DOCUMENTO: "<<paciente[j].documento<<"\n";
cout<<"FACHA DE NACIMIENTO: "<<paciente[j].fechaN<<"\n";
cout<<"DIRECCION: "<<paciente[j].direccion<<"\n";
cout<<"TELEFONO: "<<paciente[j].telefono<<"\n";
cout<<"EPS: "<<paciente[j].eps<<"\n";
cout<<"TIPO DE REGIMEN: "<<paciente[j].Regimen1<<"\n";
cout<<"NIVEL DE URGENCIA: "<<paciente[j].nivel<<"\n";
cout<<"CONDICION CLINICA: "<<paciente[j].condicionC<<"\n";
cout<<"PISO ASIGNADO: "<<paciente[j].piso<<"\n";
cout<<"CAMA ASIGNADA: "<<paciente[j].fila<<" x "<<paciente[j].columna<<"\n";
cout<<"PISO TRANSLADADO: "<<paciente[j].pisoT<<"\n";
cout<<"CAMA TRANSLADADA: "<<paciente[j].filaT<<" x "<<paciente[j].columnaT<<"\n";
cout<<"ESTADO DEL PACIENTE: "<<paciente[j].estado<<"\n";
cout<<"-----------------------------------------------------------\n";
}
}
}
void mostrar(){
int op;
cout<<"Escoja el piso en el que de sea ver la disponibiladad de camas\n";
cout<<"1.Piso 1\n";
cout<<"2.Piso 2\n";
cout<<"3.Piso 3\n";
cout<<"4.Piso 4\n";
cin>>op;
if(op==1){
disponibilidad1();
}
if(op==2){
disponibilidad2();
}
if(op==3){
disponibilidad3();
}
if(op==4){
disponibilidad4();
}
if(op>=5){
cout<<"\n\tERROR DE OPCION\n\n";
}
}
void pagar(){
float valor1=4000,valor3;
float estadia=150000;
float procedimiento=567000;
int op,op1,j;
string doc;
cout<<"Ingrese el numero de documento del paciente\n";
cin>>doc;
for(j=0;j<i;j++){
if(doc==paciente[j].documento){
cout<<"El paciente tiene seguro\n";
cout<<"1.Si/2.No\n";
cin>>op;
if (op==1){
paga=0;
valor3=procedimiento+estadia+valor1;
paga=valor3*1/100;
cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
}
else if (op==2){
if(paciente[j].Eps1==1){
if(paciente[j].Regimen==1){
paga=0;
valor3=procedimiento+estadia+valor1;
paga=valor3*5/100;
cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
}
if(paciente[i].Regimen==2){
if (paciente[j].nivel1==1){
paga=0;
valor3=procedimiento+estadia+valor1;
paga=valor3*25/100;
cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
}
if (paciente[j].nivel1==2){
paga=0;
valor3=procedimiento+estadia+valor1;
paga=valor3*40/100;
cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
}
if (paciente[j].nivel1==3){
paga=0;
valor3=procedimiento+estadia+valor1;
paga=valor3*55/100;
cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
}
}
}
else{
cout<<"\n\tEl paciente no tiene EPS\n\n";
paga=0;
paga=procedimiento+estadia+valor1;
cout<<"Valor a pagar del paciente es: "<<paga<<"\n";
}
}
}
else{
cout<<"\n\t\tEl paciente no existe en la base de datos \n\n";
}
}
}
void disponibilidad1(){
int n,j;
cout<<" (1)(2)(3)(4)(5)(6)(7)(8)\n";
for (n=0;n<8;n++){
cout<<"("<<n+1<<")";
for (j=0;j<8;j++){
cout<<"["<<cama[0][j][n].disp<<"]";
}
cout<<"\n";
}
}
void disponibilidad2(){
int n,j;
cout<<" (1)(2)(3)(4)(5)(6)(7)(8)\n";
for (n=0;n<8;n++){
cout<<"("<<n+1<<")";
for (j=0;j<8;j++){
cout<<"["<<cama[1][j][n].disp<<"]";
}
cout<<"\n";
}
}
void disponibilidad3(){
int n,j;
cout<<" (1)(2)(3)(4)(5)(6)(7)(8)\n";
for (n=0;n<8;n++){
cout<<"("<<n+1<<")";
for (j=0;j<8;j++){
cout<<"["<<cama[2][j][n].disp<<"]";
}
cout<<"\n";
}
}
void disponibilidad4(){
int n,j;
cout<<" (1)(2)(3)(4)(5)(6)(7)(8)\n";
for (n=0;n<8;n++){
cout<<"("<<n+1<<")";
for (j=0;j<8;j++){
cout<<"["<<cama[3][j][n].disp<<"]";
}
cout<<"\n";
}
}
void retiroP(){
int op;
cout<<"En que piso se encuentra el paciente\n";
cout<<"1.piso 1\n";
cout<<"2.piso 2\n";
cout<<"3.piso 3\n";
cout<<"4.piso 5\n";
cin>>op;
cout<<"Ingrese la fila de la cama en la que se encuentra el paciente\n";
cin>>fil;
cout<<"Ingrese la columna de la cama en la que se encuentra el paciente\n";
cin>>colum;
cama[0][fil][colum].fila=fil;
cama[0][fil][colum].columna=colum;
if(op==1){
if(cama[0][fil-1][colum-1].disp==1){
cama[0][fil-1][colum-1].disp=0;
pagar();
cout<<"\n\tEL PACIENTE SE A RETIRADO CON EXITO\n\n";
cout<<"\n\tNO SE OLVIDE DE PAGAR FACTURA\n\n";
}
}
if(op==2){
if(cama[1][fil-1][colum-1].disp==1){
cama[1][fil-1][colum-1].disp=0;
pagar();
cout<<"\n\tEL PACIENTE SE A RETIRADO CON EXITO\n\n";
cout<<"\n\tNO SE OLVIDE DE PAGAR FACTURA\n\n";
}
}
if(op==3){
if(cama[2][fil-1][colum-1].disp==1){
cama[2][fil-1][colum-1].disp=0;
pagar();
cout<<"\n\tEL PACIENTE SE A RETIRADO CON EXITO\n\n";
cout<<"\n\tNO SE OLVIDE DE PAGAR FACTURA\n\n";
}
}
if(op==4){
if(cama[3][fil-1][colum-1].disp==1){
cama[3][fil-1][colum-1].disp=0;
pagar();
cout<<"\n\tEL PACIENTE SE A RETIRADO CON EXITO\n\n";
cout<<"\n\tNO SE OLVIDE DE PAGAR FACTURA\n\n";
}
}
if(op>=5){
cout<<"\n\tERROR DE OPCION\n\n";
}
}
void transladarP(){
int j,op;
cout<<"Ingrese el numero de documento del paciente\n";
cin>>doc;
for(j=0;j<i;j++){
if (doc==paciente[j].documento){
cout<<"En que estado en encuentra el paciente\n";
cout<<"1. Normal\n";
cout<<"2. Medio\n";
cout<<"3. Alto\n";
cin>>op;
if(op==1){
paciente[j].estado="Normal";
cout<<"PISO 2\n";
paciente[j].pisoT=2;
disponibilidad2();
cout<<"Escoja la fila en la que quiere ubicar al paciente\n";
cin>>paciente[j].filaT;
cout<<"Escoja la columna en la que quiere ubicar al paciente\n";
cin>>paciente[j].columnaT;
if(cama[1][paciente[j].filaT-1][paciente[j].columnaT-1].disp==0){
//desocupar fila y columna anterior
cama[0][fil][colum].disp=0;
//Guardar fila y columna nueva
cama[1][fil][colum].fila=paciente[j].filaT;
cama[1][fil][colum].columna=paciente[j].columnaT;
//Marcar como ocupado
cama[1][paciente[j].filaT-1][paciente[j].columnaT-1].disp=1;
}
else{
cout<<"El cama se encuentra ocupada";
}
}
if(op==2){
paciente[j].estado="Medio";
cout<<"PISO 3\n";
paciente[j].pisoT=3;
disponibilidad3();
cout<<"Escoja la fila en la que quiere ubicar al paciente\n";
cin>>paciente[j].filaT;
cout<<"Escoja la columna en la que quiere ubicar al paciente\n";
cin>>paciente[j].columnaT;
if(cama[2][paciente[j].filaT-1][paciente[j].columnaT-1].disp==0){
//desocupar fila y columna anterior
cama[0][fil][colum].disp=0;
//Guardar fila y columna nueva
cama[2][fil][colum].fila=paciente[j].filaT;
cama[2][fil][colum].columna=paciente[j].columnaT;
//Marcar como ocupado
cama[2][paciente[j].filaT-1][paciente[j].columnaT-1].disp=1;
}
else{
cout<<"El cama se encuentra ocupada";
}
}
if(op==3){
paciente[j].estado="Alto";
cout<<"PISO 4\n";
paciente[j].pisoT=4;
disponibilidad4();
cout<<"Escoja la fila en la que quiere ubicar al paciente\n";
cin>>paciente[j].filaT;
cout<<"Escoja la columna en la que quiere ubicar al paciente\n";
cin>>paciente[j].columnaT;
if(cama[3][paciente[j].filaT-1][paciente[j].columnaT-1].disp==0){
//desocupar fila y columna anterior
cama[0][fil][colum].disp=0;
//Guardar fila y columna nueva
cama[3][fil][colum].fila=paciente[j].filaT;
cama[3][fil][colum].columna=paciente[j].columnaT;
//Marcar como ocupado
cama[3][paciente[j].filaT-1][paciente[j].columnaT-1].disp=1;
}
else{
cout<<"El cama se encuentra ocupada";
}
}
}
}
}