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; }