Exemplo n.º 1
0
 function obtenerMarcador($id, $id_cita)
 {
     $marcadorcita = MarcadorCita::where('id_marcador', $id)->where('id_cita', $id_cita)->first();
     if (empty($marcadorcita)) {
         $marcadorcita = new MarcadorCita();
         $marcadorcita->mom = '0';
         $marcadorcita->corr_peso_lineal = '0';
         $marcadorcita->corr_peso_exponencial = '0';
         $marcadorcita->valor = '0';
     }
     return $marcadorcita;
 }
 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));
 }
 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;
 }
Exemplo n.º 4
0
 /**
  * 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']);
 }