public function getCita($id)
 {
     //Declarar un arreglo para devolver los resultados.
     $parameter = array();
     //Se instancian los objetos necesarios.
     $paciente = new Paciente();
     $condiciones = new CondicionEnfermedad();
     //Sentencia para crear un objeto para realizar los documentos PDF.
     $pdf = App::make('dompdf');
     //Se almacena los datos pertenecientes a la cita.
     $parameter['cita'] = Cita::find($id);
     //Se almacena los datos pertenecientes al pacientes.
     $parameter['datos'] = $paciente->datos_pacientes($parameter['cita']->id_paciente);
     //Se busca la institucion respectiva del ID almacenado en la cita.
     $institucion = Institucion::find($parameter['cita']->id_institucion);
     if (empty($institucion)) {
         $parameter['institucion'] = new Institucion();
         $parameter['institucion']->denominacion = 'No Definido';
     } else {
         $parameter['institucion'] = Institucion::find($parameter['cita']->id_institucion);
     }
     //Se busca y se almacena al medico perteneciente al ID que se almaceno en la cita.
     $medico = Medico::find($parameter['cita']->id_medico);
     if (empty($medico)) {
         $parameter['medico'] = new Medico();
         $parameter['medico']->primer_nombre = 'No';
         $parameter['medico']->apellido_paterno = 'Definido';
     } else {
         $parameter['medico'] = Medico::find($parameter['cita']->id_medico);
     }
     //Se busca y se almacenan los datos pertenecientes a los marcadores de la cita.
     $parameter['marcadores'] = MarcadorCita::where('id_cita', $id)->where('valor', '<>', '0')->get();
     $parameter['cantidad'] = MarcadorCita::where('id_cita', $id)->where('valor', '<>', '0')->count();
     //Se llama a la funcion obtenerEnfermedades que me devuelve un arreglo con las enfermedades que dieron positivo y negativo de la cita
     //correspondiente al ID que le envio.
     $parameter['resultados'] = $condiciones->obtenerEnfermedades($id);
     //Cargo la vista mandandole los respectivos datos correspondientes almacenados en el arreglo $parameter.
     $pdf = PDF::loadView('datos/citas/Print', $parameter);
     //Creo el archivo pdf y lo almaceno utilizando la cedula como el nombre del archivo.
     return $pdf->stream('' . $parameter['datos'][0]->cedula . '.pdf', array("Attachment" => false));
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     //Se almacena en la variable data los valores de los campos recibidos del formularios
     $data = Input::all();
     //Se busca la enfermedad por el id recibido para poder editarla
     $enfermedad = Enfermedad::find($id);
     //Se coloca los valores recibidos del fomrulario para almacenarlo en cada campo correspondiente
     $enfermedad->descripcion = $data['descripcion'];
     $enfermedad->mensaje_positivo = $data['mensaje_positivo'];
     $enfermedad->mensaje_negativo = $data['mensaje_negativo'];
     $enfermedad->status = $data['status'];
     $enfermedad->save();
     //Ciclo que recorre los marcadores con los valores recibidos del formulario
     foreach (Marcador::all() as $marcador) {
         if ($marcador->trimestre_marcador == 3) {
             $sw = 0;
             $condicion = CondicionEnfermedad::where('id_enfermedad', $id)->where('id_marcador', $marcador->id)->where('trimestre_marcador', '1')->first();
             if ($data['marcador_' . $marcador->id . '_1'] == '' && !empty($condicion)) {
                 CondicionEnfermedad::destroy($condicion->id);
             } elseif ($data['marcador_' . $marcador->id . '_1'] != '' && !empty($condicion)) {
                 $condicion = CondicionEnfermedad::find($condicion->id);
                 $sw = 1;
             } elseif ($data['marcador_' . $marcador->id . '_1'] != '' && empty($condicion)) {
                 $condicion = new CondicionEnfermedad();
                 $sw = 1;
             }
             if ($sw == 1) {
                 $condicion->id_enfermedad = $id;
                 $condicion->id_marcador = $marcador->id;
                 $condicion->trimestre_marcador = '1';
                 $condicion->valor_condicion = $data['marcador_' . $marcador->id . '_1'];
                 $condicion->limite_superior = $data['limite_superior_' . $marcador->id . '_1'];
                 $condicion->limite_inferior = $data['limite_inferior_' . $marcador->id . '_1'];
                 $condicion->id_user_updated = Auth::user()->id;
                 $condicion->save();
             }
             $marcador->trimestre_marcador = '2';
         }
         $sw = 0;
         //Variable que almacena el objeto de la condicion perteneciente a esa enfermedad y ese marcador
         $condicion = CondicionEnfermedad::where('id_enfermedad', $id)->where('id_marcador', $marcador->id)->where('trimestre_marcador', $marcador->trimestre_marcador)->first();
         //Si el valor recibido del formulario viene en blanco y la condicion exista en la base de datos se procede a editar el valor
         if ($data['marcador_' . $marcador->id . ''] == '' && !empty($condicion)) {
             CondicionEnfermedad::destroy($condicion->id);
         } elseif ($data['marcador_' . $marcador->id . ''] != '' && !empty($condicion)) {
             $condicion = CondicionEnfermedad::find($condicion->id);
             $sw = 1;
         } elseif ($data['marcador_' . $marcador->id . ''] != '' && empty($condicion)) {
             $condicion = new CondicionEnfermedad();
             $sw = 1;
         }
         if ($sw == 1) {
             $condicion->id_enfermedad = $id;
             $condicion->id_marcador = $marcador->id;
             $condicion->trimestre_marcador = $marcador->trimestre_marcador;
             $condicion->valor_condicion = $data['marcador_' . $marcador->id . ''];
             $condicion->limite_superior = $data['limite_superior_' . $marcador->id . ''];
             $condicion->limite_inferior = $data['limite_inferior_' . $marcador->id . ''];
             $condicion->id_user_updated = Auth::user()->id;
             $condicion->save();
         }
     }
     //Se retorna a la vista
     return Redirect::route('datos.condiciones.index');
 }
 function obtenerEnfermedades($id)
 {
     $tipo_cita = Cita::find($id)->tipo_cita;
     //Ciclo que recorre todas las enfermedades
     foreach (Enfermedad::where('status', 1)->get() as $enfermedad) {
         //Variable usada como switch para detectar enfermedades.
         $sw = 1;
         //Variable usada como contador
         $contador = 0;
         //Se crea un objeto para poder almacenar la informacion de los resultados.
         $resultado[$enfermedad->id] = new Enfermedad();
         //Almaceno el nombre de la enfermedad en el resultado usando como indice el ID de la enfermedad
         $resultado[$enfermedad->id]->enfermedad = $enfermedad->descripcion;
         //Sentencia para buscar todas las condiciones pertenecientes a una enfermedad especifica
         $condiciones = CondicionEnfermedad::where('id_enfermedad', $enfermedad->id)->where('valor_condicion', '<>', '')->where('trimestre_marcador', $tipo_cita)->get();
         //Variable que almacena la suma de los porcentajes
         $porcentaje = 0;
         //Variabele que almacena el mensaje de advertencia si el porcentaje es alto
         $advertencia = '';
         //Variable que almacena la mediana de los porcentajes
         $porcentajeTotal = 0;
         //Ciclo que recorre todas las condiciones
         foreach ($condiciones as $condicion) {
             //Decision donde se compara el valor obtenido del marcador de la cita
             //con la condicion para ver si son diferentes.
             $mom_marcador = '';
             if (!empty(MarcadorCita::where('id_cita', $id)->where('id_marcador', $condicion->id_marcador)->first()->mom)) {
                 $mom_marcador = MarcadorCita::where('id_cita', $id)->where('id_marcador', $condicion->id_marcador)->first()->mom;
             }
             if ($mom_marcador != 0) {
                 //Si la condicion es -1 quiere decir que es bajo
                 if ($condicion->valor_condicion == -1) {
                     if ($mom_marcador < $condicion->limite_inferior) {
                         $porcentaje = $porcentaje + 1;
                     } else {
                         $porcentaje = $porcentaje + $condicion->limite_inferior / $mom_marcador;
                     }
                     $sw = 0;
                 } elseif ($condicion->valor_condicion == 1) {
                     if ($mom_marcador > $condicion->limite_superior) {
                         $porcentaje = $porcentaje + 1;
                     } else {
                         $porcentaje = $porcentaje + $mom_marcador / $condicion->limite_superior;
                     }
                     $sw = 0;
                 } elseif ($mom_marcador > $condicion->limite_inferior && $mom_marcador < $condicion->limite_superior) {
                     $porcentaje = $porcentaje + 1;
                     $sw = 0;
                 }
             }
             $contador++;
         }
         if ($contador > 0) {
             $porcentajeTotal = $porcentaje / $contador;
         } else {
             $sw = 1;
         }
         //Condicion para evaluar el porcentaje de contraer una enfermedad
         if ($porcentajeTotal >= 0.85) {
             $advertencia = '<br><p style="background:orange;">Tamiz Negativo, sin embargo existe un alto riesgo para contraer esta enfermedad</p>';
         }
         //Decision que determina el mensaje a imprimir
         //Si la variable Switch es igual a 0 quiere decir que nunca entro en la decision anterior
         //en caso contrario quiere decir que la variable tiene el valor de 1 y por lo tanto una condicion se cumple y la enfermedad es positiva
         if ($sw == 0 && $porcentajeTotal == 1) {
             $resultado[$enfermedad->id]->resultado = '<b style="background:#d9534f;">Tamiz Positivo</b>';
             $resultado[$enfermedad->id]->mensaje = $enfermedad->mensaje_positivo;
             //De ser falso la condicion osea que el switch tomo el valor de 1 quiere decir que no fueron
             //exactamente los valores de la cita con las condiciones y arroja un resultado negativo
         } else {
             $resultado[$enfermedad->id]->resultado = '<b>Tamiz Negativo</b>';
             $resultado[$enfermedad->id]->mensaje = $enfermedad->mensaje_negativo . ' ' . $advertencia;
         }
     }
     //Devuelve un arreglo con tdas las enfermedades usando como indice el ID de cada enfermedad
     //Con sus respectivo nombre, resultado si fue positivo o negativo y el mensaje correspondiente.
     return $resultado;
 }