/** * crear nuevo paciente repositorio * @param Usuario $medico * @return PacientesJohannaRepositorioLaravelMySQL|PacientesRepositorioRigobertoLaravelMysql */ public static function crear(Usuario $medico) { switch ($medico->getUsername()) { case 'johanna.vazquez': return new PacientesJohannaRepositorioLaravelMySQL(new PacientesRepositorioLaravelMySQL()); case 'rigoberto.garcia': return new PacientesRepositorioRigobertoLaravelMysql(); default: throw new \InvalidArgumentException('Médico inválido'); } }
/** * @param Paciente $paciente * @param Usuario $medico * @param Expediente $expediente * @param array|null $listaPadecimientos * @param array|null $listaTrastornos * @param array|null $listaMarcas * @return ExpedienteOtorrino * @throws \Exception */ public static function construirVista(Paciente $paciente, Usuario $medico, Expediente $expediente = null, $listaPadecimientos = null, $listaTrastornos = null, $listaMarcas = null) { switch ($medico->getUsername()) { case 'johanna.vazquez': // odontopediatría return View::make('expedientes.expediente_odontopediatria', compact('paciente', 'medico', 'listaPadecimientos', 'listaTrastornos', 'listaMarcas', 'expediente')); break; case 1: return new ExpedienteOtorrino(); break; default: throw new \Exception('Intentando crear una vista inexistente'); break; } }
public static function verificarCreacionDeConsulta(Usuario $medico, Request $request) { switch ($medico->getUsername()) { case 'johanna.vazquez': // verificar si hay odontograma if ($request->session()->has('odontograma')) { $odontograma = $request->session()->get('odontograma'); // guardar odontograma en la BD } // verificar si hay plan de tratamiento if ($request->session()->has('plan')) { $planTratamiento = $request->session()->get('plan'); // guardar pla de tratamiento en la BD } break; case 'rigoberto.garcia': break; default: throw new \InvalidArgumentException('Médico inválido'); break; } }
/** * @param Request $request * @param Paciente $paciente * @param Usuario $medico */ private static function alimentarPacienteDetalle(Request $request, Paciente $paciente, Usuario $medico) { switch ($medico->getUsername()) { case 'johanna.vazquez': $marca = new MarcaPasta(); $trastorno = new TrastornoLenguaje(); $txtNombrePadre = $request->get('txtNombrePadre'); $txtNombreMadre = $request->get('txtNombreMadre'); $txtOcupacionPadre = $request->get('txtOcupacionPadre'); $txtOcupacionMadre = $request->get('txtOcupacionMadre'); $txtNombresEdades = $request->get('txtNombresEdades'); !is_null($request->get('trastorno')) ? $trastornoLenguaje = $request->get('trastorno') : ($trastornoLenguaje = 1); !is_null($request->get('dolorBoca')) ? $dolorBoca = 1 : ($dolorBoca = 0); !is_null($request->get('sangradoEncias')) ? $sangradoEncias = 1 : ($sangradoEncias = 0); !is_null($request->get('malOlor')) ? $malOlor = 1 : ($malOlor = 0); !is_null($request->get('dienteFlojo')) ? $dienteFlojo = 1 : ($dienteFlojo = 0); $primeraVisita = $request->get('primeraVisita') === '2' ? 0 : 1; $txtFechaUltimoExamen = $request->get('txtFechaUltimoExamen'); $txtMotivoUltimoExamen = $request->get('txtMotivoUltimoExamen'); $anestesico = $request->get('anestesico') === '2' ? 0 : 1; $malaReaccion = $request->get('malaReaccion') === '2' ? 0 : 1; $txtQueReaccion = $request->get('txtQueReaccion'); $txtTraumatismo = $request->get('txtTraumatismo'); $tipoCepillo = $request->get('tipoCepillo'); $marcaPasta = $request->get('marcaPasta'); $vecesCepilla = $request->get('txtVecesCepilla'); $txtEdadErupcionDiente = $request->get('txtEdadErupcionaPrimerDiente'); $ayudaAlCepillarse = $request->get('ayudaAlCepillarse') === '2' ? 1 : 0; $txtVecesComeDia = $request->get('txtVecesCome'); $txtEspecifiqueAuxiliar = $request->get('txtEspecifiqueAuxiliar'); !is_null($request->get('hiloDental')) ? $hiloDental = 1 : ($hiloDental = 0); !is_null($request->get('enjuagueBucal')) ? $enjuagueBucal = 1 : ($enjuagueBucal = 0); !is_null($request->get('limpiadorLingual')) ? $limpiadorLingual = 1 : ($limpiadorLingual = 0); !is_null($request->get('tabletasReveladoras')) ? $tabletasReveladoras = 1 : ($tabletasReveladoras = 0); !is_null($request->get('otroAuxiliar')) ? $otroAuxiliar = 1 : ($otroAuxiliar = 0); !is_null($request->get('succionDigital')) ? $succionDigital = 1 : ($succionDigital = 0); !is_null($request->get('succionLingual')) ? $succionLingual = 1 : ($succionLingual = 0); !is_null($request->get('biberon')) ? $biberon = 1 : ($biberon = 0); !is_null($request->get('bruxismo')) ? $bruxismo = 1 : ($bruxismo = 0); !is_null($request->get('succionLabial')) ? $succionLabial = 1 : ($succionLabial = 0); !is_null($request->get('respiracionBucal')) ? $respiracionBucal = 1 : ($respiracionBucal = 0); !is_null($request->get('onicofagia')) ? $onicofagia = 1 : ($onicofagia = 0); !is_null($request->get('chupon')) ? $chupon = 1 : ($chupon = 0); !is_null($request->get('otroHabito')) ? $otroHabito = 1 : ($otroHabito = 0); $txtEspecifiqueHabito = $request->get('txtEspecifiqueHabito'); $paciente->setComportamientoInicial(new ComportamientoInicial(1)); $paciente->setComportamientoFrankl(new ComportamientoFrankl(1)); $paciente->setMorfologiaCraneofacial(new MorfologiaCraneofacial(1)); $paciente->setMorfologiaFacial(new MorfologiaFacial(1)); $paciente->setConvexividadFacial(new ConvexividadFacial(1)); $paciente->setATM(new ATM(1)); $paciente->setNombrePadre($txtNombrePadre); $paciente->setNombreMadre($txtNombreMadre); $paciente->setOcupacionPadre($txtOcupacionPadre); $paciente->setOcupacionMadre($txtOcupacionMadre); $paciente->setNombreEdadesHermanos($txtNombresEdades); $paciente->setHaPresentadoDolorBoca($dolorBoca); $paciente->setHaNotadoSangradoEncias($sangradoEncias); $paciente->setPresentaMalOlorBoca($malOlor); $paciente->setSienteDienteFlojo($dienteFlojo); $trastorno->setId($trastornoLenguaje); $paciente->setTrastornoLenguaje($trastorno); $paciente->setPrimeraVisitaDentista($primeraVisita); $paciente->setFechaUltimoExamenBucal($txtFechaUltimoExamen); $paciente->setMotivoVisitaDentista($txtMotivoUltimoExamen); $paciente->setLeHanColocadoAnestesico($anestesico); $paciente->setTuvoMalaReaccionAnestesico($malaReaccion); $paciente->setReaccionAnestesico($malaReaccion); $paciente->setTraumatismoBucal($txtTraumatismo); $paciente->setTipoCepilloAdulto($tipoCepillo); $marca->setId($marcaPasta); $paciente->setMarcaPasta($marca); $paciente->setVecesCepillaDiente($vecesCepilla); $paciente->setEdadErupcionoPrimerDiente($txtEdadErupcionDiente); $paciente->setAlguienAyudaACepillarse($ayudaAlCepillarse); $paciente->setVecesComeDia($txtVecesComeDia); $paciente->setHiloDental($hiloDental); $paciente->setEnjuagueBucal($enjuagueBucal); $paciente->setLimpiadorLingual($limpiadorLingual); $paciente->setTabletasReveladoras($tabletasReveladoras); $paciente->setOtroAuxiliar($otroAuxiliar); $paciente->setEspecifiqueAuxiliar($txtEspecifiqueAuxiliar); $paciente->setSuccionDigital($succionDigital); $paciente->setSuccionLingual($succionLingual); $paciente->setBiberon($biberon); $paciente->setBruxismo($bruxismo); $paciente->setSuccionLabial($succionLabial); $paciente->setRespiracionBucal($respiracionBucal); $paciente->setOnicofagia($onicofagia); $paciente->setChupon($chupon); $paciente->setOtroHabito($otroHabito); $paciente->setDescripcionHabito($txtEspecifiqueHabito); break; } }
/** * @param \Siacme\Dominio\Pacientes\Paciente $paciente * @param \Siacme\Dominio\Usuarios\Usuario $medico * @return array */ public function obtenerExpedientePorPacienteMedico(Paciente $paciente, Usuario $medico) { try { $expedientes = DB::table('expediente')->where('idPaciente', $paciente->getId())->where('UserMedico', $medico->getUsername())->first(); $totalExpedientes = count($expedientes); if ($totalExpedientes > 0) { $expediente = new Expediente($expedientes->idExpediente); $expediente->setPaciente($paciente); $expediente->setMedico($medico); $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); if (!is_null($consultas->idReceta)) { $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); } // 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); $expediente->agregarPlanTratamiento($plan); } } // tratamientos ortopedia ortodoncia $otrosTratamientos = DB::table('tratamiento_ortopedia_ortodoncia')->where('idExpediente', $expediente->getId())->get(); if (count($otrosTratamientos) > 0) { foreach ($otrosTratamientos as $otroTratamiento) { $tratamientoOdontologia = new TratamientoOdontologia($otroTratamiento->id, $otroTratamiento->Dx, $otroTratamiento->Costo, $otroTratamiento->Duracion, $otroTratamiento->Mensualidades); // obtener el detalle de tratamientos $otrosTratamientosDetalle = DB::table('tratamiento_ortopedia_ortodoncia_detalle')->where('id', $tratamientoOdontologia->getId())->get(); if (count($otrosTratamientosDetalle) > 0) { foreach ($otrosTratamientosDetalle as $otroTratamientoDetalle) { $tratamientoOdontologiaTipo = new TratamientoOdontologiaTipo($otroTratamientoDetalle->Tipo); $tratamientoOdontologia->getListaTratamientos()->push($tratamientoOdontologiaTipo); } } $expediente->agregarTratamientoOdontologia($tratamientoOdontologia); } } return $expediente; } return null; } catch (\PDOException $e) { return null; } }
/** * @param \Siacme\Dominio\Pacientes\Paciente $paciente * @param \Siacme\Dominio\Usuarios\Usuario $medico * @return Cita */ public function obtenerCitaPorPacienteMedico(Paciente $paciente, Usuario $medico) { try { $citas = DB::table('cita')->join('cita_estatus', 'cita.idCitaEstatus', '=', 'cita_estatus.idCitaEstatus')->where('cita.idPaciente', $paciente->getId())->where('cita.UserDoctor', $medico->getUsername())->first(); $totalCitas = count($citas); if ($totalCitas > 0) { $cita = new Cita($citas->idCita); //cita estatus $citaEstatus = new CitaEstatus(); $citaEstatus->setId($citas->idCitaEstatus); $citaEstatus->setEstatus($citas->CitaEstatus); $cita->setFecha($citas->FechaCita); $cita->setHora($citas->HoraCita); $cita->setMedico($medico); $cita->setEstatus($citaEstatus); $cita->setPaciente($paciente); return $cita; } return null; } catch (Exception $e) { //mail del error para debug mail("*****@*****.**", "Error en el sistema SIACM", "Error: " . $e->getMessage()); return null; } }