/**
  * @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;
     }
 }
 /**
  * @param Expediente $expediente
  * @return bool
  */
 public function persistir(Expediente $expediente)
 {
     try {
         if (is_null($expediente->getId())) {
             $idExpediente = DB::table('expediente')->insertGetId(['idPaciente' => $expediente->getPaciente()->getId(), 'UserMedico' => $expediente->getMedico()->getUsername(), 'PrimeraVez' => $expediente->primeraVez() ? '1' : '0', 'FechaCreacion' => date('Y-m-d'), 'FechaActualizacion' => date('Y-m-d')]);
             // obtener el Id
             $expediente->setId($idExpediente);
         } else {
             // editar
             DB::table('expediente')->where('idExpediente', '=', $expediente->getId())->update(['PrimeraVez' => $expediente->primeraVez() ? '1' : '0', 'Firma' => $expediente->getFirma(), 'FechaActualizacion' => date('Y-m-d')]);
         }
         return true;
     } catch (\PDOException $e) {
         echo $e->getMessage();
         return false;
     }
 }
 /**
  * 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);
 }