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)
 {
     $data = Input::all();
     $rules = ['exploracion_conj' => 'required', 'av_sc_od' => 'required', 'av_sc_oi' => 'required'];
     $v = Validator::make($data, $rules);
     //Si falla mostrará la pantalla anterior con los errores correspondientes
     if ($v->fails()) {
         return Redirect::back()->withInput()->withErrors($v);
     }
     $cita = Cita::find($id);
     $cita->id_paciente = $data['id_paciente'];
     $cita->interrogatorio = $data['interrogatorio'];
     $cita->exploracion_conj = $data['exploracion_conj'];
     $cita->esclerotica = $data['esclerotica'];
     $cita->cornea = $data['cornea'];
     $cita->parpados = $data['parpados'];
     $cita->pestagna = $data['pestagna'];
     $cita->pupilas = $data['pupilas'];
     $cita->ref_pup = $data['ref_pup'];
     $cita->av_sc_od = $data['av_sc_od'];
     $cita->av_sc_oi = $data['av_sc_oi'];
     $cita->av_cc_od = $data['av_cc_od'];
     $cita->av_cc_oi = $data['av_cc_oi'];
     $cita->av_cc_od_esf = $data['av_cc_od_esf'];
     $cita->av_cc_od_cil = $data['av_cc_od_cil'];
     $cita->av_cc_od_add = $data['av_cc_od_add'];
     $cita->av_cc_oi_esf = $data['av_cc_oi_esf'];
     $cita->av_cc_oi_cil = $data['av_cc_oi_cil'];
     $cita->av_cc_oi_add = $data['av_cc_oi_add'];
     $cita->oftalmoscopia_od = $data['oftalmoscopia_od'];
     $cita->oftalmoscopia_oi = $data['oftalmoscopia_oi'];
     $cita->queratometria_od = $data['queratometria_od'];
     $cita->queratometria_oi = $data['queratometria_oi'];
     $cita->motilidad_ocular_od = $data['motilidad_ocular_od'];
     $cita->motilidad_ocular_oi = $data['motilidad_ocular_oi'];
     $cita->sentido_cromatico = $data['sentido_cromatico'];
     $cita->tonometria_od = $data['tonometria_od'];
     $cita->tonometria_oi = $data['tonometria_oi'];
     $cita->grad_od_esf = $data['grad_od_esf'];
     $cita->cap_visual_od = $data['cap_visual_od'];
     $cita->cap_visual_oi = $data['cap_visual_oi'];
     $cita->grad_od_cil = $data['grad_od_cil'];
     $cita->grad_od_eje = $data['grad_od_eje'];
     $cita->grad_od_av = $data['grad_od_av'];
     $cita->grad_oi_esf = $data['grad_oi_esf'];
     $cita->grad_oi_cil = $data['grad_oi_cil'];
     $cita->grad_oi_eje = $data['grad_oi_eje'];
     $cita->grad_oi_av = $data['grad_oi_av'];
     $cita->grad_di = $data['grad_di'];
     $cita->grad_add_od = $data['grad_add_od'];
     $cita->grad_add_oi = $data['grad_add_oi'];
     $cita->cerca_od_esf = $data['cerca_od_esf'];
     $cita->cerca_od_cil = $data['cerca_od_cil'];
     $cita->cerca_od_eje = $data['cerca_od_eje'];
     $cita->cerca_oi_esf = $data['cerca_oi_esf'];
     $cita->cerca_oi_cil = $data['cerca_oi_cil'];
     $cita->cerca_oi_eje = $data['cerca_oi_eje'];
     $cita->instrucciones = $data['instrucciones'];
     $cita->od_esf = $data['od_esf'];
     $cita->od_cil_eje = $data['od_cil_eje'];
     $cita->od_add = $data['od_add'];
     $cita->od_di = $data['od_di'];
     $cita->od_prisma = $data['od_prisma'];
     $cita->od_alt = $data['od_alt'];
     $cita->od_color = $data['od_color'];
     $cita->oi_esf = $data['oi_esf'];
     $cita->oi_cil_eje = $data['oi_cil_eje'];
     $cita->oi_add = $data['oi_add'];
     $cita->oi_di = $data['oi_di'];
     $cita->oi_prisma = $data['oi_prisma'];
     $cita->oi_alt = $data['oi_alt'];
     $cita->oi_tipo = $data['oi_tipo'];
     $cita->observaciones = $data['observaciones'];
     if (empty($data['endurecido'])) {
         $cita->endurecido = 0;
     } else {
         $cita->endurecido = $data['endurecido'];
     }
     if (empty($data['tratam_uv'])) {
         $cita->tratam_uv = 0;
     } else {
         $cita->tratam_uv = $data['tratam_uv'];
     }
     if (empty($data['tratam_anti_rayas'])) {
         $cita->tratam_anti_rayas = 0;
     } else {
         $cita->tratam_anti_rayas = $data['tratam_anti_rayas'];
     }
     if (empty($data['tratam_anti_reflejos'])) {
         $cita->tratam_anti_reflejos = 0;
     } else {
         $cita->tratam_anti_reflejos = $data['tratam_anti_reflejos'];
     }
     if (empty($data['hi_index'])) {
         $cita->hi_index = 0;
     } else {
         $cita->hi_index = $data['hi_index'];
     }
     if (empty($data['hi_lite'])) {
         $cita->hi_lite = 0;
     } else {
         $cita->hi_lite = $data['hi_lite'];
     }
     $cita->seg_bif = $data['seg_bif'];
     $cita->aro = $data['aro'];
     $cita->costo_consulta = $data['costo_consulta'];
     $cita->examen_realizado = $data['examen_realizado'];
     $cita->fecha_consulta = $data['fecha_consulta'];
     $cita->save();
     $datos['paciente'] = Paciente::find($data['id_paciente']);
     if ($datos['paciente']->examen == 'LC') {
         $LC = LenteContacto::where('id_cita', $id)->first();
         if (empty($LC->id_cita)) {
             $LC = new LenteContacto();
         }
         $LC->id_cita = $id;
         $LC->kod = $data['kod'];
         $LC->koi = $data['koi'];
         $LC->diam_dhiv = $data['diam_dhiv'];
         $LC->ap = $data['ap'];
         $LC->parpados = $data['l_parpado'];
         $LC->esclera = $data['esclera'];
         $LC->conjuntiva = $data['conjuntiva'];
         $LC->iris = $data['iris'];
         $LC->cornea = $data['cornea'];
         $LC->pmma = $data['pmma'];
         $LC->hema = $data['hema'];
         $LC->permeable = $data['permeable'];
         $LC->proveedor = $data['proveedor'];
         $LC->soluciones = $data['soluciones'];
         $LC->datos_lc = $data['datos_lc'];
         $LC->r_od = $data['l_od'];
         $LC->r_oi = $data['l_oi'];
         $LC->r_tipo = $data['l_tipo'];
         $LC->r_soluciones = $data['l_soluciones'];
         $LC->r_costo = $data['l_costo'];
         $LC->r_observaciones = $data['l_observaciones'];
         $LC->save();
     }
     $datos['cita'] = new Cita();
     $datos['form'] = array('route' => 'datos.citas.store', 'method' => 'POST');
     $datos['cita']->fecha_consulta = date("Y-m-d");
     $datos['lc'] = new LenteContacto();
     if (strlen($datos['paciente']->fecha_nacimiento) != 10) {
         $datos['edad'] = 0;
     } else {
         $datos['edad'] = $datos['paciente']->edad($datos['paciente']->fecha_nacimiento);
     }
     return View::make('datos/citas/list-edit-form')->with('datos', $datos);
 }
 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;
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     $data = Input::all();
     $citas = Cita::find($id);
     $id_anterior = $citas->id_cita_referencia;
     if (!empty($id_anterior)) {
         $cita_anterior = Cita::find($id_anterior);
         $cita_anterior->id_cita_referencia = 0;
         $cita_anterior->save();
     }
     //sino encuentra una cita crea un nuevo objeto
     if (is_null($citas)) {
         $citas = new Cita();
     }
     //Sentencias para almacenar los datos correspondientes de la cita
     $citas->id_medico = $data['id_medico'];
     $citas->peso = $data['peso'];
     $citas->fecha_ultrasonido = $data['fecha_ultrasonido'];
     $citas->fur = $data['fur'];
     $citas->fpp = $data['fpp'];
     $citas->fecha_flebotomia = $data['fecha_flebotomia'];
     $citas->fecha_cita = $data['fecha_cita'];
     $citas->edad_gestacional = $data['edad_gestacional'];
     $citas->observaciones = $data['observaciones'];
     $citas->estatura = $data['estatura'];
     $citas->id_institucion = $data['id_institucion'];
     $citas->hijos_embarazo = $data['hijos_embarazo'];
     $citas->edad_materna = $data['edad'];
     $citas->edad_gestacional_fur = $data['semana'];
     $citas->riesgo = $data['riesgo'];
     $citas->riesgo_fap = $data['riesgo_fap'];
     $citas->tipo_cita = $data['tipo_cita'];
     $citas->id_cita_referencia = $data['id_cita_referencia'];
     $citas->id_user_updated = Auth::user()->id;
     $citas->save();
     if ($data['tipo_cita'] == '2' and $data['id_cita_referencia'] != '0') {
         $cita = Cita::find($data['id_cita_referencia']);
         $cita->id_cita_referencia = $id;
         $cita->save();
     }
     //Se almacena en una variable el id de la metodologia que eleigio en general.
     $met_general = $data['' . $data['tipo_cita'] . '_met_general'];
     //Ciclo para recorrer todos los marcadores
     foreach (Marcador::where('trimestre_marcador', $data['tipo_cita'])->Orwhere('trimestre_marcador', '3')->get() as $marcador) {
         $marcador_cita = new MarcadorCita();
         $marcadorcita = $marcador_cita->obtenerMarcador($marcador->id, $id);
         $marcadorcita->id_cita = $id;
         $marcadorcita->id_marcador = $marcador->id;
         $marcadorcita->valor = $data['' . $data['tipo_cita'] . '_valor_' . $marcador->id . ''];
         $marcadorcita->mom = $data['' . $data['tipo_cita'] . '_mom_' . $marcador->id . ''];
         $marcadorcita->corr_peso_lineal = $data['' . $data['tipo_cita'] . '_corr_lineal_' . $marcador->id . ''];
         $marcadorcita->corr_peso_exponencial = $data['' . $data['tipo_cita'] . '_corr_exp_' . $marcador->id . ''];
         //Si la metodologia es distinta de 0 quiere decir que se eligio una para ese marcador
         if ($data['' . $data['tipo_cita'] . '_metodo_' . $marcador->id . ''] != 0) {
             //Se almacena la metodologia correspondiente
             $marcadorcita->id_metodologia = $data['' . $data['tipo_cita'] . '_metodo_' . $marcador->id . ''];
         } else {
             //Sino entonces se almacena el metodo que se eligio como general.
             $marcadorcita->id_metodologia = $met_general;
         }
         $marcadorcita->save();
     }
     return Redirect::route('datos.citas.show', $data['id_paciente']);
 }
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function edit($id)
 {
     //Declarar un arreglo para devolver los resultados.
     $parameter = array();
     //Se instancian los objetos necesarios.
     $parameter['cita'] = Cita::find($id);
     $parameter['paciente'] = Paciente::find($parameter['cita']->id_paciente);
     $parameter['paciente']->nombre = $parameter['paciente']->primer_nombre . ' ' . $parameter['paciente']->segundo_nombre . ' ' . $parameter['paciente']->primer_apellido . ' ' . $parameter['paciente']->segundo_apellido;
     if (strlen($parameter['paciente']->fecha_nacimiento) != 10) {
         $parameter['paciente']->edad = 0;
     } else {
         $parameter['paciente']->edad = $parameter['paciente']->edad($parameter['paciente']->fecha_nacimiento);
     }
     if ($parameter['paciente']->sexo == 1) {
         $parameter['paciente']->sexo = 'Masculino';
     } else {
         $parameter['paciente']->sexo = 'Femenino';
     }
     if ($parameter['cita']->endurecido == 1) {
         $parameter['cita']->endurecido = 'Si';
     } else {
         $parameter['cita']->endurecido = 'No';
     }
     if ($parameter['cita']->tratam_uv == 1) {
         $parameter['cita']->tratam_uv = 'Si';
     } else {
         $parameter['cita']->tratam_uv = 'No';
     }
     if ($parameter['cita']->tratam_anti_rayas == 1) {
         $parameter['cita']->tratam_anti_rayas = 'Si';
     } else {
         $parameter['cita']->tratam_anti_rayas = 'No';
     }
     if ($parameter['cita']->tratam_anti_reflejos == 1) {
         $parameter['cita']->tratam_anti_reflejos = 'Si';
     } else {
         $parameter['cita']->tratam_anti_reflejos = 'No';
     }
     if ($parameter['cita']->hi_index == 1) {
         $parameter['cita']->hi_index = 'Si';
     } else {
         $parameter['cita']->hi_index = 'No';
     }
     if ($parameter['cita']->hi_lite == 1) {
         $parameter['cita']->hi_lite = 'Si';
     } else {
         $parameter['cita']->hi_lite = 'No';
     }
     if (empty($parameter['cita']->seg_bif)) {
         $parameter['cita']->seg_bif = 'Sin registro.';
     } else {
         $parameter['cita']->seg_bif = $parameter['cita']->seg_bif;
     }
     if (empty($parameter['cita']->aro)) {
         $parameter['cita']->aro = 'Sin registro.';
     } else {
         $parameter['cita']->aro = $parameter['cita']->aro;
     }
     $pdf = App::make('dompdf');
     $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['cita']->id . '_' . $parameter['paciente']->cedula . '.pdf');
 }