예제 #1
0
 function getPacientIfExist($num_polis)
 {
     $resultPacient = Pacient::where("n_polis", $num_polis)->first();
     //->where("im","=",$pacient->im)
     //->where("ot","=",$pacient->ot)
     //->where("dr","=",$pacient->dr)
     return $resultPacient ? $resultPacient : false;
 }
예제 #2
0
 public function index(Request $request)
 {
     if (Session::has("user_id") || Auth::check()) {
         $errorMessage = "";
         $successMessage = "";
         if (Auth::check()) {
             //только для админа
             /*
              * Обновление даты/времени приема если есть
              */
             if ($request->has("update_priem")) {
                 $updateSched = Schedule::find($request->input("sched_id"));
                 $updateSched->data_priem = date("Y-m-d", strtotime($request->input("message_data_priem")));
                 $updateSched->time_priem = $request->input("message_time_priem");
                 $updateSched->save();
                 $successMessage = "Расписание успешно обновлено";
             }
             /*
              * Удаление приема
              */
             if ($request->has("del_priem")) {
                 $delSched = Schedule::find($request->input("sched_id"));
                 $delSched->delete();
                 $successMessage = "Время приема удалено";
             }
             /*
              * Добавление нового приема если пришел запрос
              */
             if ($request->has("add_datatime")) {
                 $validator = Validator::make($request->all(), ["data_priem" => "required", "time_priem" => "required", "doctor_id" => "required"]);
                 if ($validator->fails()) {
                     $errorMessage = "Не все поля заполнены или невыбран врач";
                 } else {
                     $schedLine = new Schedule();
                     $schedLine->data_priem = date("Y-m-d", strtotime($request->input("data_priem")));
                     $schedLine->time_priem = $request->input("time_priem");
                     $schedLine->doctor_id = $request->input("doctor_id");
                     if ($request->has("pay")) {
                         $schedLine->pay = 1;
                     }
                     $schedLine->save();
                     $successMessage = "В расписание врача " . $schedLine->doctor->name . " добавлен прием на дату " . date("d.m.Y", strtotime($schedLine->data_priem)) . " время {$schedLine->time_priem}";
                 }
             }
         }
         // end if (Auth::check())
         /************************************************/
         /*
          * Запись нового пациента, если пришел запрос
          */
         if ($request->has("save")) {
             if (!Auth::check()) {
                 $sched = Schedule::find($request->input('sched_id'));
                 if (!$sched->pacient_id) {
                     $sched->pacient_id = $request->input('user_id');
                     $sched->save();
                     $successMessage = "Запись к врачу {$sched->doctor->name} на дату " . date("d.m.Y", strtotime($sched->data_priem)) . " в {$sched->time_priem} часов успешно произведена<br>\n                        <ul>\n                            <li class='rules-list__item'>\n                                Необходимо не менее чем за 30 минут до начала приема обратиться в регистратуру, предъявить полис и паспорт, оформить статталон.\n                            </li>\n                            <li class='rules-list__item'>Если Вы не являетесь пациентом, прикрепленным к Больнице КНЦ РАН, то при обращении Вам необходимо иметь при себе амбулаторную карту или выписку из нее</li>\n                            <li class='rules-list__item'>Если Вы записались на платный прием, необходимо произвести оплату до начала приема в кабинете №3 </li>\n                        </ul>\n                        ";
                     Event::fire(new PeopleWriteToVisit($sched));
                 } else {
                     $errorMessage = "Запись невозможна.";
                 }
             } else {
                 $errorMessage = "Вы вошли как администратор запись невозможна";
             }
         }
         /*****************************************************/
         $data = array();
         if (Auth::check()) {
             // вход выполнен в административную часть - то роль админа получаем пользователя из Users
             $data["is_admin"] = true;
             $user = Auth::user();
             $data["user_id"] = $user->id;
             $data["user_fullname"] = $user->fullname;
         } else {
             $data["is_admin"] = false;
             // полаем пользователя из Pacients
             $pacient = Pacient::find(Session::get("user_id"));
             $data["user_id"] = $pacient->id;
             $data["user_fullname"] = implode(" ", array($pacient->fam, $pacient->im, $pacient->ot));
             //объединяем в одну строку
         }
         /*
          * получаем список специализаций и "привязанных" к ним врачей
          */
         $specializations = Specialization::all();
         foreach ($specializations as $spec) {
             $doctors = $spec->doctors;
             if ($doctors->toArray()) {
                 $data["doctors"][$spec->name] = $doctors;
             }
         }
         /*
          * здесь передаем данные пациента и получаем данные по врачам
          */
         return view("home", ["data" => $data, "success" => $successMessage, "error" => $errorMessage]);
     } else {
         return view("auth");
     }
 }