/**
  * @param TratamientoOdontologia $tratamiento
  * @param Expediente $expediente
  * @return bool
  */
 public function guardar(TratamientoOdontologia $tratamiento, Expediente $expediente)
 {
     // TODO: Implement guardar() method.
     try {
         $idTratamiento = DB::table('tratamiento_ortopedia_ortodoncia')->insertGetId(['idExpediente' => $expediente->getId(), 'Dx' => $tratamiento->getDx(), 'Costo' => $tratamiento->getCosto(), 'Duracion' => $tratamiento->getDuracion(), 'Mensualidades' => $tratamiento->getMensualidades(), 'Activo' => 1, 'FechaModificacion' => date('Y-m-d H:m:i')]);
         foreach ($tratamiento->getListaTratamientos() as $tratamientoOdontologiaTipo) {
             DB::table('tratamiento_ortopedia_ortodoncia_detalle')->insert(['idOrtopediaOrtodoncia' => $idTratamiento, 'Tipo' => $tratamientoOdontologiaTipo->getNombre(), 'FechaAsignacion' => date('Y-m-d H:m:i'), 'FechaModificacion' => date('Y-m-d H:m:i')]);
         }
         return true;
     } catch (\PDOException $e) {
         echo $e->getMessage();
         return false;
     }
 }
 /**
  * @param Expediente $expediente
  * @param string $idCita
  * @param DibujadorInterface|null $dibujadorOdontograma
  * @param null $listaComportamientosFrankl
  * @param null $listaPadecimientos
  * @param null $listaRecetas
  * @param null $listaMedicos
  * @param null $listaMorfologiasCraneofacial
  * @param null $listaMorfologiasFacial
  * @param null $listaConvexividades
  * @param null $listaAtms
  * @param null $listaCostosConsultas
  * @param null|DibujadorInterface $dibujadorPlan
  * @return ExpedienteOtorrino
  * @throws \Exception
  * @internal param null $listaCostoConsultas
  */
 public static function construirVista(Expediente $expediente, $idCita, DibujadorInterface $dibujadorOdontograma = null, $listaComportamientosFrankl = null, $listaPadecimientos = null, $listaRecetas = null, $listaMedicos = null, $listaMorfologiasCraneofacial = null, $listaMorfologiasFacial = null, $listaConvexividades = null, $listaAtms = null, $listaCostosConsultas = null, DibujadorInterface $dibujadorPlan = null)
 {
     switch ($expediente->getMedico()->getUsername()) {
         case 'johanna.vazquez':
             // odontopediatría
             return View::make('consultas.consultas_odontopediatria_capturar', compact('expediente', 'idCita', 'dibujadorOdontograma', 'listaComportamientosFrankl', 'listaPadecimientos', 'listaRecetas', 'listaMedicos', 'listaMorfologiasCraneofacial', 'listaMorfologiasFacial', 'listaConvexividades', 'listaAtms', 'listaCostosConsultas', 'dibujadorPlan'));
             break;
         case 1:
             return new ExpedienteOtorrino();
             break;
         default:
             throw new \Exception('Intentando crear una vista inexistente');
             break;
     }
 }
 /**
  * verificar la creación de elementos durante una consulta
  * @param Request $request
  * @param Expediente $expediente
  * @return bool
  */
 public function verificarElementosCreadosEnConsulta(Request $request, Expediente $expediente)
 {
     switch ($expediente->getMedico()->getUsername()) {
         case 'johanna.vazquez':
             // odontograma
             if ($request->session()->has('odontograma')) {
                 $odontograma = $request->session()->get('odontograma');
                 $expediente->agregarOdontograma($odontograma);
             }
             // plan de tratamiento
             if ($request->session()->has('plan')) {
                 $planTratamiento = $request->session()->get('plan');
                 $expediente->agregarPlanTratamiento($planTratamiento);
             }
             break;
         default:
             break;
     }
     // guardar la información
     return $this->expedientesRepositorio->guardarElementosDeConsulta($expediente);
 }
 public function guardarInterconsulta(Expediente $expediente)
 {
     // insertar interconsulta
     foreach ($expediente->getListaInterconsultas() as $interconsulta) {
         $operacion = DB::table('interconsulta')->insertGetId(['idMedicoReferencia' => $interconsulta->getMedico()->getId(), 'idExpediente' => $expediente->getId(), 'Referencia' => $interconsulta->getReferencia(), 'Respondida' => 0, 'FechaModificacion' => date('Y-m-d H:m:i')]);
         // setear id de la interconsulta
         $interconsulta->setId($operacion);
     }
 }
 /**
  * @param Request $request
  * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
  */
 public function agregarEditarExpediente(Request $request)
 {
     $idPaciente = (int) base64_decode($request->get('idPaciente'));
     $userMedico = base64_decode($request->get('userMedico'));
     $medico = $this->usuariosRepositorio->obtenerUsuarioPorUsername($userMedico);
     $pacientesRepositorio = PacientesRepositorioFactory::crear($medico);
     $paciente = $pacientesRepositorio->obtenerPacientePorId($idPaciente);
     $expediente = $this->expedientesRepositorio->obtenerExpedientePorPacienteMedico($paciente, $medico);
     // alimentar de Http Post
     PacientesFactory::alimentarDeHttp($request, $paciente, $medico);
     // persistir
     if (!$pacientesRepositorio->persistir($paciente)) {
         return response(0);
     }
     // generar expediente
     if (is_null($expediente)) {
         $expediente = new Expediente();
         $expediente->setMedico($medico);
         $expediente->setPaciente($paciente);
         $expediente->setPrimeraVez(true);
         $this->expedientesRepositorio->persistir($expediente);
     }
     // éxito
     return response(1);
 }