/** * dibujar una representación * @return string */ public function dibujar() { // TODO: Implement dibujar() method. $otrosTratamientos = ''; foreach ($this->planTratamiento->getListaOtrosTratamientos() as $otroTratamiento) { $otrosTratamientos .= $otroTratamiento->getTratamiento() . ' ($' . (string) number_format($otroTratamiento->getCosto(), 2) . ') - '; } $html = ' <p class="text-medium"><span class="strong">Costo total:</span> <span>$ ' . (string) number_format($this->planTratamiento->costo(), 2) . '</span></p> <p><span class="strong">Otros:</span> <em>' . $otrosTratamientos . '</em></p> <table class="table table-bordered tablaPlan text-small"> <thead> <tr> <th>Diente</th> <th>Padecimiento</th> <th>Tratamiento 1</th> <th>Tratamiento 2</th> <th>Costo</th> <th>Marcar atención</th> </tr> </thead> <tbody>'; foreach ($this->planTratamiento->getListaDientes() as $diente) { $dientePlan1 = $dientePlan2 = null; $accion = ' -- '; $atendido = false; if (!is_null($diente->getListaTratamientos())) { $dientePlan1 = $diente->getListaTratamientos()->get('1')->getDienteTratamiento()->getTratamiento(); $dientePlan2 = !is_null($diente->getListaTratamientos()->get('2')) ? $diente->getListaTratamientos()->get('2')->getDienteTratamiento()->getTratamiento() : ' -- '; $atendido = $diente->getListaTratamientos()->get('1')->atendido(); if (!is_null($diente->getListaTratamientos()->get('2'))) { $atendido = $diente->getListaTratamientos()->get('2')->atendido(); } $accion = '<label><input type="checkbox" name="dienteAtendido[]" value="' . $diente->getNumero() . '" class="tratamiento" data-costo=""><input type="hidden" value="' . $diente->costoTratamientos() . '"> Dar atención</label>'; if ($atendido) { $accion = '<span class="strong">Atendido</span>'; } } else { $dientePlan1 = $dientePlan2 = ' -- '; } $html .= ' <tr> <td class="diente">' . $diente->getNumero() . '</td> <td>' . $this->dibujarPadecimientos($diente->getListaPadecimientos()) . '</td> <td>' . $dientePlan1 . '</td> <td>' . $dientePlan2 . '</td> <td>' . $this->dibujarCostosTratamientos($diente->getListaTratamientos()) . '</td> <td>' . $accion . '</td> </tr> '; } $html .= '</tbody></table>'; return $html; }
/** * obtener un plan por su id * @param $id * @return PlanTratamiento */ public function obtenerPorId($id) { // TODO: Implement obtenerPorId() method. try { $planes = DB::table('plan_tratamiento')->where('idPlanTratamiento', $id)->first(); if (count($planes) > 0) { // buscar la lista de dientes $dientes = DB::table('diente')->orderBy('Numero')->get(); $plan = new PlanTratamiento(!$planes->Activo); $listaDientes = new Collection(); $plan->setId($planes->idPlanTratamiento); foreach ($dientes as $dientes) { $dienteActual = new Diente($dientes->Numero); // padecimientos dentales $dientesPadecimientos = DB::table('diente_diente_padecimiento')->join('diente_padecimiento', 'diente_padecimiento.idDientePadecimiento', '=', 'diente_diente_padecimiento.idDientePadecimiento')->where('diente_diente_padecimiento.idPlanTratamiento', $planes->idPlanTratamiento)->where('diente_diente_padecimiento.Numero', $dientes->Numero)->get(); foreach ($dientesPadecimientos as $dientesPadecimientos) { $padecimiento = new DientePadecimiento($dientesPadecimientos->idDientePadecimiento, $dientesPadecimientos->DientePadecimiento, $dientesPadecimientos->RutaImagen); $dienteActual->agregarPadecimiento($padecimiento); } //=============================================================================== // tratamientos dentales $dientesTratamientos = DB::table('diente_diente_tratamiento')->leftJoin('diente_tratamiento', 'diente_tratamiento.idDienteTratamiento', '=', 'diente_diente_tratamiento.idDienteTratamiento')->where('diente_diente_tratamiento.idPlanTratamiento', $planes->idPlanTratamiento)->where('diente_diente_tratamiento.Numero', $dientes->Numero)->get(); if (count($dientesTratamientos) > 0) { $index = 1; foreach ($dientesTratamientos as $dientesTratamientos) { $tratamiento = new DientePlan(new DienteTratamiento((int) $dientesTratamientos->idDienteTratamiento, $dientesTratamientos->DienteTratamiento, $dientesTratamientos->Costo), $dientesTratamientos->Atendido === 1 ? true : false); $dienteActual->agregarTratamiento((string) $index, $tratamiento); $index++; } } else { } //if($dientes->Numero === 18) { dd($dienteActual); } $listaDientes->push($dienteActual); } // otros tratamientos $otrosTratamientos = DB::table('plan_tratamiento_otros')->join('plan_otro_tratamiento', 'plan_otro_tratamiento.idOtroTratamiento', '=', 'plan_tratamiento_otros.idOtroTratamiento')->where('plan_tratamiento_otros.idPlanTratamiento', $plan->getId())->get(); if (count($otrosTratamientos) > 0) { foreach ($otrosTratamientos as $otrosTratamientos) { $otroTratamiento = new OtroTratamiento($otrosTratamientos->idOtroTratamiento, $otrosTratamientos->OtroTratamiento, $otrosTratamientos->Costo); $plan->agregarOtroTratamiento($otroTratamiento->getId(), $otroTratamiento); } } $plan->setCosto($planes->Costo); $plan->setListaDientes($listaDientes); return $plan; } } catch (\PDOException $e) { echo $e->getMessage(); return null; } }
/** * generar vista para el plan de tratamiento * @param Request $request * @param string $userMed * @param string $idPaciente * @param DienteTratamientosRepositorioInterface $dienteTratamientosRepositorio * @param OtrosTratamientosRepositorioInterface $otrosTratamientosRepositorio * @return \Illuminate\View\View */ public function verPlan(Request $request, $userMed, $idPaciente, DienteTratamientosRepositorioInterface $dienteTratamientosRepositorio, OtrosTratamientosRepositorioInterface $otrosTratamientosRepositorio) { $odontograma = $request->session()->get('odontograma'); if (is_null($request->session()->get('plan'))) { $odontograma->borrarDientesTratamientos(); // obtener primeros dos otros tratamientos para el plan $otroTratamiento1 = $otrosTratamientosRepositorio->obtenerOtroTratamientoPorId(1); $otroTratamiento2 = $otrosTratamientosRepositorio->obtenerOtroTratamientoPorId(2); // obtener plan $plan = new PlanTratamiento(); $plan->agregarOtroTratamiento($otroTratamiento1->getId(), $otroTratamiento1); $plan->agregarOtroTratamiento($otroTratamiento2->getId(), $otroTratamiento2); $plan->generarDeOdontograma($odontograma); } else { $plan = $request->session()->get('plan'); } $listaDienteTratamientos = $dienteTratamientosRepositorio->obtenerDienteTratamientos(); $listaOtrosTratamientos = $otrosTratamientosRepositorio->obtenerOtrosTratamientos(); $dibujadorPlan = new DibujadorPlanTratamiento($plan, $listaDienteTratamientos); $request->session()->put('plan', $plan); return View::make('consultas.consultas_plan_tratamiento', compact('dibujadorPlan', 'listaOtrosTratamientos', 'userMed', 'idPaciente')); }
/** * @param int $idExpediente * @return Expediente */ public function obtenerExpedientePorId($idExpediente) { try { $expedientes = DB::table('expediente')->where('expediente.idExpediente', $idExpediente)->first(); $totalExpedientes = count($expedientes); if ($totalExpedientes > 0) { $expediente = new Expediente($expedientes->idExpediente); $expediente->setPrimeraVez($expedientes->PrimeraVez); $expediente->setFirma($expedientes->Firma); // buscar las interconsultas del expediente $interconsultas = DB::table('interconsulta')->join('medico_referencia', 'medico_referencia.idMedicoReferencia', '=', 'interconsulta.idMedicoReferencia')->join('especialidad', 'especialidad.idEspecialidad', '=', 'medico_referencia.idEspecialidad')->where('interconsulta.idExpediente', $expediente->getId())->orderBy('interconsulta.idInterconsulta', 'desc')->limit(50)->get(); if (count($interconsultas) > 0) { foreach ($interconsultas as $interconsultas) { $interconsulta = new Interconsulta($interconsultas->idInterconsulta, new MedicoReferencia($interconsultas->idMedicoReferencia, $interconsultas->Direccion, new Especialidad($interconsultas->idEspecialidad, $interconsultas->Especialidad)), $interconsultas->Referencia); $interconsulta->getMedico()->setNombre($interconsultas->Nombre); $interconsulta->getMedico()->setPaterno($interconsultas->Paterno); $interconsulta->getMedico()->setMaterno($interconsultas->Materno); $expediente->agregarInterconsulta($interconsulta); } } //=============================================================================== // buscar las consultas del expediente $consultas = DB::table('consulta')->join('comportamiento_frankl', 'consulta.idComportamientoFrankl', '=', 'comportamiento_frankl.idComportamientoFrankl')->leftJoin('receta', 'receta.idReceta', '=', 'consulta.idReceta')->where('consulta.idExpediente', $expediente->getId())->orderBy('consulta.idConsulta', 'desc')->limit(50)->get(); if (count($consultas) > 0) { foreach ($consultas as $consultas) { $consulta = new Consulta($consultas->idConsulta, $consultas->PadecimientoActual, $consultas->Interrogatorio, new ExploracionFisica($consultas->Peso, $consultas->Talla, $consultas->Pulso, $consultas->Temperatura, $consultas->TensionArterial), $consultas->Nota, new ComportamientoFrankl($consultas->idComportamientoFrankl), $consultas->Costo, $consultas->Fecha); $consulta->setReceta(new Receta($consultas->idReceta, $consultas->Receta)); $expediente->agregarConsulta($consulta); } } //=============================================================================== // buscar los planes de tratamiento $planes = DB::table('plan_tratamiento')->where('idExpediente', $expediente->getId())->orderBy('idPlanTratamiento', 'desc')->limit(50)->get(); if (count($planes) > 0) { // buscar la lista de dientes $dientes = DB::table('diente')->orderBy('Numero')->get(); foreach ($planes as $planes) { $plan = new PlanTratamiento(!$planes->Activo); $listaDientes = new Collection(); $plan->setId($planes->idPlanTratamiento); foreach ($dientes as $dientes) { $dienteActual = new Diente($dientes->Numero); // padecimientos dentales $dientesPadecimientos = DB::table('diente_diente_padecimiento')->join('diente_padecimiento', 'diente_padecimiento.idDientePadecimiento', '=', 'diente_diente_padecimiento.idDientePadecimiento')->where('diente_diente_padecimiento.idPlanTratamiento', $planes->idPlanTratamiento)->where('diente_diente_padecimiento.Numero', $dientes->Numero)->get(); foreach ($dientesPadecimientos as $dientesPadecimientos) { $padecimiento = new DientePadecimiento($dientesPadecimientos->idDientePadecimiento, $dientesPadecimientos->DientePadecimiento, $dientesPadecimientos->RutaImagen); $dienteActual->agregarPadecimiento($padecimiento); } //=============================================================================== // tratamientos dentales $dientesTratamientos = DB::table('diente_diente_tratamiento')->leftJoin('diente_tratamiento', 'diente_tratamiento.idDienteTratamiento', '=', 'diente_diente_tratamiento.idDienteTratamiento')->where('diente_diente_tratamiento.idPlanTratamiento', $planes->idPlanTratamiento)->where('diente_diente_tratamiento.Numero', $dientes->Numero)->get(); if (count($dientesTratamientos) > 0) { $index = 1; foreach ($dientesTratamientos as $dientesTratamientos) { $tratamiento = new DientePlan(new DienteTratamiento((int) $dientesTratamientos->idDienteTratamiento, $dientesTratamientos->DienteTratamiento, $dientesTratamientos->Costo), $dientesTratamientos->Atendido === 1 ? true : false); $dienteActual->agregarTratamiento((string) $index, $tratamiento); $index++; } } else { } //if($dientes->Numero === 18) { dd($dienteActual); } $listaDientes->push($dienteActual); } $plan->setCosto($planes->Costo); $plan->setListaDientes($listaDientes); $expediente->agregarPlanTratamiento($plan); } } return $expediente; } } catch (\PDOException $e) { echo $e->getMessage(); return null; } }