/**
  * 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;
     }
 }
Example #4
0
 /**
  * @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;
     }
 }