1657 lines
82 KiB
PHP
1657 lines
82 KiB
PHP
<?php
|
||
|
||
namespace App\Http\Controllers;
|
||
|
||
use App\Models\AfterQuestionnaire;
|
||
use App\Models\AppealsDoctor;
|
||
use App\Models\AppealsPatient;
|
||
use App\Models\BeforeQuestionnaire;
|
||
use App\Models\CalendarDays;
|
||
use App\Models\CoursesSportEdit;
|
||
use App\Models\DiplomModel\Products;
|
||
use App\Models\DiplomModel\Worker;
|
||
use App\Models\Patient;
|
||
use App\Models\SetOfSportsExercises;
|
||
use App\Models\SetsOfSportsActivities;
|
||
use App\Models\SportCourses;
|
||
use App\Models\Category;
|
||
use App\Models\Product;
|
||
use App\Models\SportPatient;
|
||
use App\Models\SportTasks;
|
||
use Cassandra\Date;
|
||
use Illuminate\Http\Request;
|
||
use Illuminate\Support\Facades\Auth;
|
||
use Illuminate\Support\Facades\Crypt;
|
||
use Illuminate\Support\Facades\DB;
|
||
use Illuminate\Support\Facades\Hash;
|
||
use Illuminate\Support\Facades\Validator;
|
||
use Illuminate\Support\Str;
|
||
use PhpParser\Node\Scalar\String_;
|
||
|
||
class DoctorController extends Controller
|
||
{
|
||
|
||
//Создание аккаунта пациенту
|
||
public function CreateAccountPatient(Request $request)
|
||
{
|
||
$Doctor = Auth::user()->makeHidden(['id']);
|
||
$error = Validator::make($request->all(), [
|
||
'login' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:20|min:4|unique:patient',
|
||
'password' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:100|min:10',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
Patient::create([
|
||
'login' => $request->login,
|
||
'password' => Hash::make($request->password),
|
||
'token' => Str::random(80),
|
||
'id_doctor' => $Doctor->id,
|
||
|
||
]);
|
||
return response(['message' => 'Новый пациент был создан'], 200);
|
||
}
|
||
}
|
||
|
||
//Обновление данных пациента
|
||
public function UpdateAccountPatient(Request $request)
|
||
{
|
||
$error = Validator::make($request->all(), [
|
||
'id' => 'required|numeric|max:10000|min:1',
|
||
'login' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:20|min:4|unique:patient',
|
||
'password' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:100|min:10',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id)->first();
|
||
if ($Patient != null) {
|
||
$pat = $Patient;
|
||
$pat->login = $request->login;
|
||
$pat->password = Crypt::encryptString($request->password);
|
||
$pat->update();
|
||
}
|
||
|
||
return response(['Данные обновлены' => $request->password], 200);
|
||
}
|
||
}
|
||
|
||
// //Обновление данных пациента
|
||
// public function AddCoursesAccountPatient(Request $request)
|
||
// {
|
||
// $error = Validator::make($request->all(), [
|
||
// 'id' => 'required',
|
||
// 'login' => 'required',
|
||
// 'password' => 'required',
|
||
// ]);//1024
|
||
// if ($error->fails()) {
|
||
// return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
// }
|
||
// else{
|
||
// $Patient = Patient::where('id', $request->id)->first();
|
||
// if ($Patient != null) {
|
||
// $pat = $Patient;
|
||
// $pat->login = $request->login;
|
||
// $pat->password = Crypt::encryptString($request->password);
|
||
// $pat->update();
|
||
// }
|
||
//
|
||
// return response(['Данные обновлены' => $request->password], 200);
|
||
// }
|
||
// }
|
||
|
||
//Редактирвоание курса
|
||
public function GetCoursesSport(Request $request)
|
||
{
|
||
$Doctor = Auth::user()->makeHidden(['id']);
|
||
$error = Validator::make($request->all(), [
|
||
'id_patient' => 'required|numeric|max:10000|min:1',
|
||
'id_sports_courses_patient' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id_patient)->first();
|
||
if ($Patient != null) {
|
||
if ($Patient->id_sport_patient != null || $Patient->id_sport_patient != "") {
|
||
|
||
$SetOfSportsExercises = SetOfSportsExercises::orderBy('id', 'ASC')
|
||
->leftJoin('sets_of_sports_activities', 'sets_of_sports_activities.id', '=', 'set_of_sports_exercises.id_sets_of_sports_activities')
|
||
->leftJoin('sports_tasks', 'sports_tasks.id', '=', 'set_of_sports_exercises.id_sports_tasks')
|
||
->leftJoin('sports_courses', 'sports_courses.id', '=', 'sets_of_sports_activities.id_sports_courses')
|
||
->leftJoin('sport_patient', 'sport_patient.id_sports_courses', '=', 'sports_courses.id')
|
||
->leftJoin('image', 'image.id', '=', 'sports_tasks.id_image')
|
||
->select('sports_tasks.id', 'sports_tasks.name', 'sports_tasks.description', 'image.url_image')->where("sport_patient.id", $Patient->id_sport_patient)
|
||
->distinct()
|
||
->where("sports_courses.id", $request->id_sports_courses_patient)->get();//, 'patient.email', 'doctor.login as loginDoctor', 'doctor.email as emailDoctor', 'patient.pause', 'patient.block', 'patient.report7day', 'patient.report15day', 'sport_patient.id_patient', 'patient.total_days_sports', 'patient.now_days_sports', 'patient.created_at', 'patient.updated_at'
|
||
return response(["set_of_sports_exercises" => $SetOfSportsExercises], 200);
|
||
} else {
|
||
return response(['message' => 'Ошибка, курса у пациента нету'], 400);
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка, такого пациента нету'], 400);
|
||
}
|
||
}
|
||
}
|
||
|
||
//Редактирвоание курса
|
||
//в БУДУШЕМ НУЖНО ИЗМЕНИТЬ И УБИРАТЬ ЗАБЛОКИРОВАННЫЕ НЕ ЧЕРЕЗ ПЕРЕБОРКУ ЦИКЛА А ПРОСТО ЧЕРЕЗ ЗАПРОС В БАЗУ, ПРОСТО НУЖНО ПОСИДЕТЬ И ПОНЯТЬ ЧТО Я НЕПРАВИЛЬНО ЗАБИВАЛ В БАЗУ
|
||
public function GetCoursesSportYes(Request $request)
|
||
{
|
||
$Doctor = Auth::user()->makeHidden(['id']);
|
||
$error = Validator::make($request->all(), [
|
||
'id_patient' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id_patient)->first();
|
||
if ($Patient != null) {
|
||
if ($Patient->id_sport_patient != null || $Patient->id_sport_patient != "") {
|
||
$SetOfSportsExercises2 = CoursesSportEdit::get();
|
||
|
||
|
||
$CoursesSportEdit = CoursesSportEdit::orderBy('id', 'ASC')->where('id_sport_patient', $Patient->id_sport_patient)->get();
|
||
|
||
$result = [];
|
||
|
||
$number = 0;
|
||
|
||
if (Count($CoursesSportEdit) != 0) {
|
||
$CoursesSportEdit = CoursesSportEdit::orderBy('id', 'ASC')->where('id_sport_patient', $Patient->id_sport_patient)->get();
|
||
$SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
|
||
->join('sets_of_sports_activities', 'set_of_sports_exercises.id_sets_of_sports_activities', '=', 'sets_of_sports_activities.id')
|
||
->join('sports_tasks', 'set_of_sports_exercises.id_sports_tasks', '=', 'sports_tasks.id')
|
||
->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
|
||
->join('sports_courses', 'sets_of_sports_activities.id_sports_courses', '=', 'sports_courses.id')
|
||
->join('sport_patient', 'sport_patient.id_sports_courses', '=', 'sports_courses.id')
|
||
->join('image', 'sports_tasks.article_image', '=', 'image.article')
|
||
->select('sports_tasks.id', 'sports_tasks.name', 'sports_tasks.description', 'image.url_image')
|
||
->distinct('id')
|
||
->where('sport_patient.id', $Patient->id_sport_patient)
|
||
->get();
|
||
for ($i = 0; $i != Count($SetOfSportsExercises); $i++) {
|
||
$res = 0;
|
||
for ($j = 0; $j != Count($CoursesSportEdit); $j++) {
|
||
if ($SetOfSportsExercises[$i]->id != $CoursesSportEdit[$j]->id_sports_tasks) {
|
||
$res++;
|
||
}
|
||
}
|
||
if ($res == Count($CoursesSportEdit)) {
|
||
$number++;
|
||
$search_sport = [
|
||
'number' => $number,
|
||
'id' => $SetOfSportsExercises[$i]->id,
|
||
'name' => $SetOfSportsExercises[$i]->name,
|
||
'description' => $SetOfSportsExercises[$i]->description,
|
||
'url_image' => $SetOfSportsExercises[$i]->url_image,
|
||
];
|
||
array_push($result, $search_sport);
|
||
}
|
||
}
|
||
} else {
|
||
$SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
|
||
->join('sets_of_sports_activities', 'set_of_sports_exercises.id_sets_of_sports_activities', '=', 'sets_of_sports_activities.id')
|
||
->join('sports_tasks', 'set_of_sports_exercises.id_sports_tasks', '=', 'sports_tasks.id')
|
||
->join('sports_courses', 'sets_of_sports_activities.id_sports_courses', '=', 'sports_courses.id')
|
||
->join('sport_patient', 'sport_patient.id_sports_courses', '=', 'sports_courses.id')
|
||
->join('image', 'sports_tasks.article_image', '=', 'image.article')
|
||
->select('sports_tasks.id', 'sports_tasks.name', 'sports_tasks.description', 'image.url_image')
|
||
->distinct('id')
|
||
->where('sport_patient.id', $Patient->id_sport_patient)
|
||
->get();
|
||
for ($i = 0; $i != Count($SetOfSportsExercises); $i++) {
|
||
$number++;
|
||
$search_sport = [
|
||
'number' => $number,
|
||
'id' => $SetOfSportsExercises[$i]->id,
|
||
'name' => $SetOfSportsExercises[$i]->name,
|
||
'description' => $SetOfSportsExercises[$i]->description,
|
||
'url_image' => $SetOfSportsExercises[$i]->url_image,
|
||
];
|
||
array_push($result, $search_sport);
|
||
}
|
||
}
|
||
|
||
|
||
return response(["set_of_sports_exercises_yes" => $result], 200);
|
||
} else {
|
||
return response(['message' => 'Ошибка, курса у пациента нету'], 400);
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка, такого пациента нету'], 400);
|
||
}
|
||
}
|
||
}
|
||
|
||
public function GetCoursesSportNo(Request $request)
|
||
{
|
||
$Doctor = Auth::user()->makeHidden(['id']);
|
||
$error = Validator::make($request->all(), [
|
||
'id_patient' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id_patient)->first();
|
||
if ($Patient != null) {
|
||
if ($Patient->id_sport_patient != null || $Patient->id_sport_patient != "") {
|
||
|
||
$CoursesSportEdit = CoursesSportEdit::orderBy('id', 'ASC')->distinct()
|
||
->join('sports_tasks', 'courses_sport_edit.id_sports_tasks', '=', 'sports_tasks.id')
|
||
->join('image', 'sports_tasks.article_image', '=', 'image.article')
|
||
->select('sports_tasks.id as sports_tasks_id', 'courses_sport_edit.id', 'sports_tasks.name', 'sports_tasks.description', 'image.url_image')
|
||
->distinct('id')
|
||
->where('courses_sport_edit.id_sport_patient', $Patient->id_sport_patient)
|
||
->get();
|
||
$result = [];
|
||
$number = 0;
|
||
for ($i = 0; $i != Count($CoursesSportEdit); $i++) {
|
||
$number++;
|
||
$search_sport = [
|
||
'number' => $number,
|
||
'id' => $CoursesSportEdit[$i]->id,
|
||
'name' => $CoursesSportEdit[$i]->name,
|
||
'description' => $CoursesSportEdit[$i]->description,
|
||
'url_image' => $CoursesSportEdit[$i]->url_image,
|
||
];
|
||
array_push($result, $search_sport);
|
||
}
|
||
|
||
return response(["set_of_sports_exercises_no" => $result], 200);
|
||
} else {
|
||
return response(['message' => 'Ошибка, курса у пациента нету'], 400);
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка, такого пациента нету'], 400);
|
||
}
|
||
}
|
||
}
|
||
|
||
public function UpdateBlockSportTasksYes(Request $request)
|
||
{
|
||
$error = Validator::make($request->all(), [
|
||
'id_patient' => 'required|numeric|max:10000|min:1',
|
||
'id_sports_tasks' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id_patient)->first();
|
||
if ($Patient != null) {
|
||
$SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->first();
|
||
$SportTasks = SportTasks::where('id', $request->id_sports_tasks)->first();
|
||
if ($SportTasks != null && $SportPatient != null) {
|
||
CoursesSportEdit::create([
|
||
'id_sport_patient' => $SportPatient->id,
|
||
'id_sports_tasks' => $SportTasks->id,
|
||
]);
|
||
return response(['message' => 'Тренировка добавлена в блок'], 200);
|
||
|
||
} else {
|
||
return response(['message' => 'Таких данных нету'], 400);
|
||
}
|
||
} else {
|
||
return response(['message' => 'Такого пациента нету'], 400);
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
public function UpdateBlockSportTasksNo(Request $request)
|
||
{
|
||
$error = Validator::make($request->all(), [
|
||
'id' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$CoursesSportEdit = CoursesSportEdit::where('id', $request->id)->first();
|
||
if ($CoursesSportEdit != null) {
|
||
$CoursesSportEdit->delete();
|
||
return response(['message' => 'Тренировка убрана из блока'], 200);
|
||
} else {
|
||
return response(['message' => 'Таких данных нету'], 400);
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
//Блокировка
|
||
public function UpdateBlockAccountPatient(Request $request)
|
||
{
|
||
|
||
|
||
$error = Validator::make($request->all(), [
|
||
'id' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id)->first();
|
||
if ($Patient != null) {
|
||
$CalendarDays = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->orderBy('day', 'DESC')->first();
|
||
|
||
if ($Patient->block == null || $Patient->block == "") {
|
||
//Если есть календарный список
|
||
if ($CalendarDays != null) {
|
||
for ($i = 0; $i < 4; $i++) {
|
||
CalendarDays::create([
|
||
'id_patient' => $Patient->id,
|
||
'day' => $CalendarDays->day + $i,
|
||
'date' => date('Y-m-d', strtotime("+$i day", strtotime($CalendarDays->date))),
|
||
'id_sport_patient' => $Patient->id_sport_patient,
|
||
]);
|
||
}
|
||
|
||
$pat = $Patient;
|
||
$date = date('Y-m-d', strtotime('+3 day'));
|
||
$pat->block = $date;
|
||
$pat->update();
|
||
|
||
//Установка блока в календаре
|
||
for ($i = 0; $i < 4; $i++) {
|
||
$dateCD = date('Y-m-d', strtotime("+$i day"));
|
||
$CD = CalendarDays::where('date', $dateCD)->where('id_sport_patient', $Patient->id_sport_patient)->first();
|
||
$CD->block = $dateCD;
|
||
$CD->update();
|
||
}
|
||
|
||
} //Если нету календарного списка
|
||
else if ($CalendarDays == null) {
|
||
$pat = $Patient;
|
||
$date = date('Y-m-d', strtotime('+3 day'));
|
||
$pat->block = $date;
|
||
$pat->update();
|
||
|
||
//Установка блока в календаре
|
||
for ($i = 0; $i < 4; $i++) {
|
||
$dateCD = date('Y-m-d', strtotime("+$i day"));
|
||
$CD = CalendarDays::where('date', $dateCD)->where('id_sport_patient', $Patient->id_sport_patient)->first();
|
||
$CD->block = $dateCD;
|
||
$CD->update();
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка, обратитесь в поддержку. Код - 1.1'], 400);
|
||
}
|
||
return response(['message' => 'Блокировка включена'], 200);
|
||
} else if ($Patient->block != null && $Patient->block != "") {
|
||
if ($CalendarDays != null) {
|
||
$pat = $Patient;
|
||
$pat->block = null;
|
||
$pat->update();
|
||
//Проверка количества дней в календаре и их изменение
|
||
$this->AddandClearDayPatient($Patient->id);
|
||
|
||
} //Если нету календарного списка
|
||
else if ($CalendarDays == null) {
|
||
$pat = $Patient;
|
||
$pat->block = null;
|
||
$pat->update();
|
||
} else {
|
||
return response(['message' => 'Ошибка, обратитесь в поддержку. Код - 1.2'], 400);
|
||
}
|
||
//Сброс блока в календаре
|
||
$dateCD = date('Y-m-d');
|
||
$CD1 = CalendarDays::where('date', $dateCD)->where('id_sport_patient', $Patient->id_sport_patient)->first();
|
||
$CD2 = CalendarDays::where('day', '>=', $CD1->day)->where('id_sport_patient', $Patient->id_sport_patient)->get();
|
||
for ($i = 0; $i < count($CD2); $i++) {
|
||
$CDUpdate = CalendarDays::where('id', $CD2[$i]->id)->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
|
||
$CDUpdate->block = null;
|
||
$CDUpdate->update();
|
||
}
|
||
return response(['message' => 'Блокировка отключена'], 200);
|
||
} else {
|
||
return response(['message' => 'Ошибка, неизвестные данные в поле'], 400);
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка, такого пациента нету'], 400);
|
||
}
|
||
}
|
||
}
|
||
|
||
//Пауза
|
||
public
|
||
function UpdatePauseAccountPatient(Request $request)
|
||
{
|
||
$error = Validator::make($request->all(), [
|
||
'id' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id)->first();
|
||
if ($Patient != null) {
|
||
$CalendarDays = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->orderBy('day', 'DESC')->first();
|
||
|
||
if ($Patient->pause == null || $Patient->pause == "") {
|
||
|
||
if ($CalendarDays != null) {
|
||
for ($i = 0; $i < 2; $i++) {
|
||
CalendarDays::create([
|
||
'id_patient' => $Patient->id,
|
||
'day' => $CalendarDays->day + $i,
|
||
'date' => date('Y-m-d', strtotime("+$i day", strtotime($CalendarDays->date))),
|
||
'id_sport_patient' => $Patient->id_sport_patient,
|
||
]);
|
||
}
|
||
$pat = $Patient;
|
||
$date = date('Y-m-d', strtotime('+1 day'));
|
||
$pat->pause = $date;
|
||
$pat->update();
|
||
//Установка пауз в календаре
|
||
for ($i = 0; $i < 2; $i++) {
|
||
$dateCD = date('Y-m-d', strtotime("+$i day"));
|
||
$CD = CalendarDays::where('date', $dateCD)->where('id_sport_patient', $Patient->id_sport_patient)->first();
|
||
$CD->pause = $dateCD;
|
||
$CD->update();
|
||
}
|
||
} else if ($CalendarDays == null) {
|
||
$pat = $Patient;
|
||
$date = date('Y-m-d', strtotime('+1 day'));
|
||
$pat->pause = $date;
|
||
$pat->update();
|
||
|
||
//Установка пауз в календаре
|
||
for ($i = 0; $i < 2; $i++) {
|
||
$dateCD = date('Y-m-d', strtotime("+$i day"));
|
||
$CD = CalendarDays::where('date', $dateCD)->where('id_sport_patient', $Patient->id_sport_patient)->first();
|
||
$CD->pause = $dateCD;
|
||
$CD->update();
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка, обратитесь в поддержку. Код - 2.1'], 400);
|
||
}
|
||
|
||
return response(['message' => 'Пауза включена'], 200);
|
||
} else if ($Patient->pause != null && $Patient->pause != "") {
|
||
if ($CalendarDays != null) {
|
||
$pat = $Patient;
|
||
$pat->pause = null;
|
||
$pat->update();
|
||
//Проверка количества дней в календаре и их изменение
|
||
$this->AddandClearDayPatient($Patient->id);
|
||
|
||
|
||
} else if ($CalendarDays == null) {
|
||
$pat = $Patient;
|
||
$pat->pause = null;
|
||
$pat->update();
|
||
|
||
|
||
} else {
|
||
return response(['message' => 'Ошибка, обратитесь в поддержку. Код - 2.2'], 400);
|
||
|
||
}
|
||
//Сброс паузы в календаре
|
||
$dateCD = date('Y-m-d');
|
||
$CD1 = CalendarDays::where('date', $dateCD)->where('id_sport_patient', $Patient->id_sport_patient)->first();
|
||
$CD2 = CalendarDays::where('day', '>=', $CD1->day)->where('id_sport_patient', $Patient->id_sport_patient)->get();
|
||
for ($i = 0; $i < count($CD2); $i++) {
|
||
$CDUpdate = CalendarDays::where('id', $CD2[$i]->id)->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
|
||
$CDUpdate->pause = null;
|
||
$CDUpdate->update();
|
||
}
|
||
return response(['message' => 'Пауза отключена'], 200);
|
||
} else {
|
||
return response(['message' => 'Ошибка, неизвестные данные в поле'], 400);
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка, такого пациента нету'], 400);
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
|
||
// //Подтверждение на 7 день
|
||
// public function Addreport7dayAccountPatient(Request $request)
|
||
// {
|
||
// $error = Validator::make($request->all(), [
|
||
// 'id' => 'required',
|
||
// ]);//1024
|
||
// if ($error->fails()) {
|
||
// return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
// }
|
||
// else{
|
||
// $Patient = Patient::where('id', $request->id)->first();
|
||
// if ($Patient != null) {
|
||
// if($Patient->report7day == null || $Patient->report7day == ""){
|
||
// $pat = $Patient;
|
||
// $pat->report7day = date ('Y-m-d');
|
||
// $pat->update();
|
||
// return response(['Отчет за 7 дней отправлен'], 200);
|
||
// }
|
||
// else{
|
||
// return response(['Отчет за 7 дней уже отправлен'], 400);
|
||
// }
|
||
// }
|
||
// else{
|
||
// return response(['Ошибка, такого пациента нету'], 400);
|
||
// }
|
||
//
|
||
// }
|
||
// }
|
||
//
|
||
// //Подтверждение на 15 день
|
||
// public function Addreport15dayAccountPatient(Request $request)
|
||
// {
|
||
// $error = Validator::make($request->all(), [
|
||
// 'id' => 'required',
|
||
// ]);//1024
|
||
// if ($error->fails()) {
|
||
// return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
// }
|
||
// else{
|
||
// $Patient = Patient::where('id', $request->id)->first();
|
||
// if ($Patient != null) {
|
||
// if($Patient->report15day == null || $Patient->report15day == ""){
|
||
// $pat = $Patient;
|
||
// $pat->report15day = date ('Y-m-d');
|
||
// $pat->update();
|
||
// return response(['Отчет за 15 дней отправлен'], 200);
|
||
// }
|
||
// else{
|
||
// return response(['Отчет за 15 дней уже отправлен'], 400);
|
||
// }
|
||
// }
|
||
// else{
|
||
// return response(['Ошибка, такого пациента нету'], 400);
|
||
// }
|
||
// }
|
||
// }
|
||
|
||
public function GetPatientSearch(Request $request)
|
||
{
|
||
$error = Validator::make($request->all(), [
|
||
'login' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:20|min:4',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('login', 'like', '%' . $request->login . '%')->orderBy('id', 'ASC')->get();
|
||
return response()->json($Patient);
|
||
}
|
||
}
|
||
|
||
//Вывод всех пациентов
|
||
public function GetPatientAll()
|
||
{
|
||
$Patient = Patient::orderBy('id', 'ASC')
|
||
->leftJoin('doctor', 'doctor.id', '=', 'patient.id_doctor')
|
||
->leftJoin('sport_patient', 'sport_patient.id', '=', 'patient.id_sport_patient')
|
||
->select('patient.id', 'patient.login', 'patient.email', 'doctor.login as loginDoctor', 'doctor.email as emailDoctor', 'patient.pause', 'patient.block', 'patient.report7day', 'patient.report15day', 'patient.id_sport_patient as id_sport_patient', 'patient.total_days_sports', 'patient.now_days_sports', 'patient.created_at', 'patient.updated_at')
|
||
->get();//, 'patient.email', 'doctor.login as loginDoctor', 'doctor.email as emailDoctor', 'patient.pause', 'patient.block', 'patient.report7day', 'patient.report15day', 'sport_patient.id_patient', 'patient.total_days_sports', 'patient.now_days_sports', 'patient.created_at', 'patient.updated_at'
|
||
$result = [];
|
||
$number = 0;
|
||
for ($i = 0; $i != Count($Patient); $i++) {
|
||
$number++;
|
||
$search_patient = [
|
||
'number' => $number,
|
||
'id' => $Patient[$i]->id,
|
||
'login' => $Patient[$i]->login,
|
||
'loginDoctor' => $Patient[$i]->login,
|
||
'emailDoctor' => $Patient[$i]->emailDoctor,
|
||
'pause' => $Patient[$i]->pause,
|
||
'block' => $Patient[$i]->block,
|
||
'report7day' => $Patient[$i]->report7day,
|
||
'report15day' => $Patient[$i]->report15day,
|
||
'id_sport_patient' => $Patient[$i]->id_sport_patient,
|
||
'total_days_sports' => $Patient[$i]->total_days_sports,
|
||
'now_days_sports' => $Patient[$i]->now_days_sports,
|
||
'created_at' => $Patient[$i]->created_at,
|
||
'updated_at' => $Patient[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_patient);
|
||
}
|
||
return response(["patient" => $result], 200);
|
||
}
|
||
|
||
//Вывод все пациентов конкретного врача с курсом
|
||
public function GetPatientAllActive()
|
||
{
|
||
$Doctor = Auth::user()->makeHidden(['id']);
|
||
|
||
$Patient = Patient::orderBy('id', 'ASC')
|
||
->leftJoin('doctor', 'doctor.id', '=', 'patient.id_doctor')
|
||
->leftJoin('sport_patient', 'sport_patient.id', '=', 'patient.id_sport_patient')
|
||
->select('patient.id', 'patient.login', 'patient.email', 'doctor.login as loginDoctor', 'doctor.email as emailDoctor', 'patient.pause', 'patient.block', 'patient.report7day', 'patient.report15day', 'patient.id_sport_patient as id_sport_patient', 'patient.total_days_sports', 'patient.now_days_sports', 'patient.created_at', 'patient.updated_at')
|
||
->where("patient.id_doctor", $Doctor->id)
|
||
->where("patient.id_sport_patient","!=", null)
|
||
->get();//, 'patient.email', 'doctor.login as loginDoctor', 'doctor.email as emailDoctor', 'patient.pause', 'patient.block', 'patient.report7day', 'patient.report15day', 'sport_patient.id_patient', 'patient.total_days_sports', 'patient.now_days_sports', 'patient.created_at', 'patient.updated_at'
|
||
|
||
$result = [];
|
||
$number = 0;
|
||
for ($i = 0; $i != Count($Patient); $i++) {
|
||
$number++;
|
||
$search_patient = [
|
||
'number' => $number,
|
||
'id' => $Patient[$i]->id,
|
||
'login' => $Patient[$i]->login,
|
||
'loginDoctor' => $Patient[$i]->login,
|
||
'emailDoctor' => $Patient[$i]->emailDoctor,
|
||
'pause' => $Patient[$i]->pause,
|
||
'block' => $Patient[$i]->block,
|
||
'report7day' => $Patient[$i]->report7day,
|
||
'report15day' => $Patient[$i]->report15day,
|
||
'id_sport_patient' => $Patient[$i]->id_sport_patient,
|
||
'total_days_sports' => $Patient[$i]->total_days_sports,
|
||
'now_days_sports' => $Patient[$i]->now_days_sports,
|
||
'created_at' => $Patient[$i]->created_at,
|
||
'updated_at' => $Patient[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_patient);
|
||
}
|
||
return response(["patient" => $result], 200);
|
||
}
|
||
|
||
//Вывод все пациентов конкретного врача без курса
|
||
public function GetPatientAllNotActive()
|
||
{
|
||
$Doctor = Auth::user()->makeHidden(['id']);
|
||
|
||
$Patient = Patient::orderBy('id', 'ASC')
|
||
->leftJoin('doctor', 'doctor.id', '=', 'patient.id_doctor')
|
||
->leftJoin('sport_patient', 'sport_patient.id', '=', 'patient.id_sport_patient')
|
||
->select('patient.id', 'patient.login', 'patient.email', 'doctor.login as loginDoctor', 'doctor.email as emailDoctor', 'patient.pause', 'patient.block', 'patient.report7day', 'patient.report15day', 'patient.id_sport_patient as id_sport_patient', 'patient.total_days_sports', 'patient.now_days_sports', 'patient.created_at', 'patient.updated_at')
|
||
->where("patient.id_doctor", $Doctor->id)
|
||
->where("patient.id_sport_patient", null)
|
||
->get();//, 'patient.email', 'doctor.login as loginDoctor', 'doctor.email as emailDoctor', 'patient.pause', 'patient.block', 'patient.report7day', 'patient.report15day', 'sport_patient.id_patient', 'patient.total_days_sports', 'patient.now_days_sports', 'patient.created_at', 'patient.updated_at'
|
||
$result = [];
|
||
$number = 0;
|
||
for ($i = 0; $i != Count($Patient); $i++) {
|
||
$number++;
|
||
$search_patient = [
|
||
'number' => $number,
|
||
'id' => $Patient[$i]->id,
|
||
'login' => $Patient[$i]->login,
|
||
'loginDoctor' => $Patient[$i]->login,
|
||
'emailDoctor' => $Patient[$i]->emailDoctor,
|
||
'pause' => $Patient[$i]->pause,
|
||
'block' => $Patient[$i]->block,
|
||
'report7day' => $Patient[$i]->report7day,
|
||
'report15day' => $Patient[$i]->report15day,
|
||
'id_sport_patient' => $Patient[$i]->id_sport_patient,
|
||
'total_days_sports' => $Patient[$i]->total_days_sports,
|
||
'now_days_sports' => $Patient[$i]->now_days_sports,
|
||
'created_at' => $Patient[$i]->created_at,
|
||
'updated_at' => $Patient[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_patient);
|
||
}
|
||
return response(["patient" => $result], 200);
|
||
}
|
||
|
||
|
||
public function GetPatientID(Request $request)
|
||
{
|
||
$Doctor = Auth::user()->makeHidden(['id']);
|
||
$error = Validator::make($request->all(), [
|
||
'id' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::orderBy('id', 'ASC')
|
||
->leftJoin('doctor', 'doctor.id', '=', 'patient.id_doctor')
|
||
->select('patient.id', 'patient.login', 'patient.email', 'doctor.login as loginDoctor', 'doctor.email as emailDoctor', 'patient.pause', 'patient.block', 'patient.report7day', 'patient.report15day', 'patient.id_sport_patient as id_sport_patient', 'patient.total_days_sports', 'patient.now_days_sports', 'patient.created_at', 'patient.updated_at')->where("patient.id", $request->id)->first();//, 'patient.email', 'doctor.login as loginDoctor', 'doctor.email as emailDoctor', 'patient.pause', 'patient.block', 'patient.report7day', 'patient.report15day', 'sport_patient.id_patient', 'patient.total_days_sports', 'patient.now_days_sports', 'patient.created_at', 'patient.updated_at'
|
||
return response( $Patient, 200);
|
||
}
|
||
|
||
}
|
||
|
||
|
||
//Авторизация врача
|
||
public function LoginDoctor(Request $request)
|
||
{
|
||
$validation = Validator::make($request->all(), [
|
||
'login' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:20|min:4',
|
||
'password' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:100|min:8',
|
||
]);
|
||
if ($validation->fails()) {
|
||
$result = [
|
||
'error' => [
|
||
'code' => 400,
|
||
'message' => 'Validation error',
|
||
'error' => $validation->errors()
|
||
]];
|
||
return response($result, 422);
|
||
}
|
||
|
||
if (Auth::guard('doctor')->attempt(['login' => $request->login, 'password' => $request->password])) {
|
||
$user = Auth::guard('doctor')->user();
|
||
$pat = $user;
|
||
$pat->api_token = Str::random(80);
|
||
$pat->update();
|
||
|
||
return response([
|
||
'id' => $user->id,
|
||
'token' => $user->api_token,
|
||
|
||
], 200);
|
||
}
|
||
return response([
|
||
'error' => [
|
||
'code' => 401,
|
||
'message' => 'Unauthorized',
|
||
'error' => [
|
||
'ОУ у тебя произошла ошибка']]
|
||
], 401);
|
||
}
|
||
|
||
public function LogoutDoctor()
|
||
{
|
||
$user = Auth::user()->makeHidden(['id', 'role']);
|
||
$pat = $user;
|
||
$pat->api_token = null;
|
||
$pat->update();
|
||
|
||
return response(['message' => 'Вы вышли из аккаунта'], 200);
|
||
}
|
||
|
||
|
||
//Вывод курса для врача, чтобы он смог посмотеть что входит в курс
|
||
public function GetCours(Request $request)
|
||
{
|
||
$error = Validator::make($request->all(), [
|
||
'name' => 'required|regex:/^[a-z0-9а-яё;]+$/iu|string|max:100|min:4',
|
||
'day' => 'required|numeric|max:365|min:1',
|
||
|
||
]);
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Cours = SportTasks::orderBy('id', 'ASC')
|
||
->leftJoin('image', 'image.id', '=', 'sports_tasks.id_image')
|
||
->leftJoin('set_of_sports_exercises', 'set_of_sports_exercises.id_sports_tasks', '=', 'sports_tasks.id')
|
||
->leftJoin('sets_of_sports_activities', 'sets_of_sports_activities.id', '=', 'set_of_sports_exercises.id_sets_of_sports_activities')
|
||
->leftJoin('sports_courses', 'sports_courses.id', '=', 'sets_of_sports_activities.id_sports_courses')
|
||
->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'sets_of_sports_activities.name as sets_of_sports_activities_Name', 'sets_of_sports_activities.description as sets_of_sports_activities_Description', 'sports_tasks.name as sports_tasks_Name', 'sports_tasks.description as sports_tasks_Description', 'sports_tasks.count as sports_tasks_Count', 'image.url_image as image_Url',)
|
||
->where('sports_courses.name', '=', $request->name)->where('sets_of_sports_activities.day', '=', $request->day)
|
||
->get();
|
||
return response()->json($Cours);
|
||
}
|
||
|
||
}
|
||
|
||
//Вывод всех курсов
|
||
public function GetCoursAll()
|
||
{
|
||
$Cours = SportCourses::get();
|
||
return response(['courses' => $Cours], 200);
|
||
}
|
||
|
||
//Вывод курса пациента
|
||
public function GetCoursAllPatient(Request $request)
|
||
{
|
||
$user = Auth::user()->makeHidden(['id']);
|
||
|
||
$error = Validator::make($request->all(), [
|
||
'id' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id)->first();
|
||
if ($Patient != null) {
|
||
$Cours = SportCourses::where('user_id',0)->get();
|
||
$SportCourses = SportCourses::join('sport_patient', 'sports_courses.id', '=', 'sport_patient.id_sports_courses')
|
||
->distinct()
|
||
->select('sports_courses.id', 'sports_courses.name', 'sports_courses.description', 'sports_courses.visibility', 'sports_courses.created_at', 'sports_courses.updated_at')
|
||
->where('id_patient', $Patient->id)
|
||
->where('sport_patient.id', $Patient->id_sport_patient)
|
||
->where('user_id',0)
|
||
->first();
|
||
$result = [];
|
||
$number = 0;
|
||
//Если у пациента есть курс
|
||
$SportPatient_ = SportPatient::where('id',$request->id)->first();
|
||
$Cours_ = SportCourses::where('user_id',0)->where('id',$SportPatient_->id_sports_courses)->first();
|
||
if ($Patient->id_sport_patient != null && $Cours_!=null && $SportCourses !=null) {
|
||
for ($i = 0; $i != Count($Cours); $i++) {
|
||
$number++;
|
||
if ($Cours[$i]->id == $SportCourses->id) {
|
||
$search_cours = [
|
||
'number' => $number,
|
||
'id' => $Cours[$i]->id,
|
||
'name' => $Cours[$i]->name,
|
||
'description' => $Cours[$i]->description,
|
||
'visibility' => 100000,
|
||
'created_at' => $Cours[$i]->created_at,
|
||
'updated_at' => $Cours[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_cours);
|
||
} else {
|
||
$search_cours = [
|
||
'number' => $number,
|
||
'id' => $Cours[$i]->id,
|
||
'name' => $Cours[$i]->name,
|
||
'description' => $Cours[$i]->description,
|
||
'visibility' => 0,
|
||
'created_at' => $Cours[$i]->created_at,
|
||
'updated_at' => $Cours[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_cours);
|
||
}
|
||
|
||
}
|
||
} //Если его нету
|
||
else {
|
||
for ($i = 0; $i != Count($Cours); $i++) {
|
||
$number++;
|
||
$search_cours = [
|
||
'number' => $number,
|
||
'id' => $Cours[$i]->id,
|
||
'name' => $Cours[$i]->name,
|
||
'description' => $Cours[$i]->description,
|
||
'visibility' => 0,
|
||
'created_at' => $Cours[$i]->created_at,
|
||
'updated_at' => $Cours[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_cours);
|
||
}
|
||
}
|
||
|
||
|
||
return response(['courses' => $result], 200);
|
||
//return response(['courses' => $Cours], 200);
|
||
} else {
|
||
return response(['Такого пациента нету'], 401);
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
//Вывод курсов созданных врачем
|
||
function GetCoursesDoctorPatient(Request $request){
|
||
$user = Auth::user()->makeHidden(['id']);
|
||
|
||
$error = Validator::make($request->all(), [
|
||
'id' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id)->first();
|
||
if ($Patient != null) {
|
||
$Cours = SportCourses::where('user_id',$user->id)->get();
|
||
$SportCourses = SportCourses::join('sport_patient', 'sports_courses.id', '=', 'sport_patient.id_sports_courses')
|
||
->distinct()
|
||
->select('sports_courses.id', 'sports_courses.name', 'sports_courses.description', 'sports_courses.visibility', 'sports_courses.created_at', 'sports_courses.updated_at')
|
||
->where('id_patient', $Patient->id)
|
||
->where('sport_patient.id', $Patient->id_sport_patient)
|
||
->where('user_id',$user->id)
|
||
->first();
|
||
$result = [];
|
||
$number = 0;
|
||
//Если у пациента есть курс
|
||
$SportPatient_ = SportPatient::where('id',$request->id)->first();
|
||
$Cours_ = SportCourses::where('user_id',$user->id)->where('id',$SportPatient_->id_sports_courses)->first();
|
||
if ($Patient->id_sport_patient != null && $Cours_==null && $SportCourses !=null) {
|
||
for ($i = 0; $i != Count($Cours); $i++) {
|
||
$number++;
|
||
if ($Cours[$i]->id == $SportCourses->id) {
|
||
$search_cours = [
|
||
'number' => $number,
|
||
'id' => $Cours[$i]->id,
|
||
'name' => $Cours[$i]->name,
|
||
'description' => $Cours[$i]->description,
|
||
'visibility' => 100000,
|
||
'created_at' => $Cours[$i]->created_at,
|
||
'updated_at' => $Cours[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_cours);
|
||
} else {
|
||
$search_cours = [
|
||
'number' => $number,
|
||
'id' => $Cours[$i]->id,
|
||
'name' => $Cours[$i]->name,
|
||
'description' => $Cours[$i]->description,
|
||
'visibility' => 0,
|
||
'created_at' => $Cours[$i]->created_at,
|
||
'updated_at' => $Cours[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_cours);
|
||
}
|
||
|
||
}
|
||
} //Если его нету
|
||
else {
|
||
for ($i = 0; $i != Count($Cours); $i++) {
|
||
$number++;
|
||
$search_cours = [
|
||
'number' => $number,
|
||
'id' => $Cours[$i]->id,
|
||
'name' => $Cours[$i]->name,
|
||
'description' => $Cours[$i]->description,
|
||
'visibility' => 0,
|
||
'created_at' => $Cours[$i]->created_at,
|
||
'updated_at' => $Cours[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_cours);
|
||
}
|
||
}
|
||
|
||
|
||
return response(['courses_doctor' => $result], 200);
|
||
//return response(['courses' => $Cours], 200);
|
||
} else {
|
||
return response(['Такого пациента нету'], 401);
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
//Добавление курса пациенту
|
||
public
|
||
function AddSportPatient(Request $request)
|
||
{
|
||
$user = Auth::user()->makeHidden(['id']);
|
||
$Patient = Patient::where('id', $request->id_patient)->first();
|
||
$error = Validator::make($request->all(), [
|
||
'id_patient' => 'required|numeric|max:10000|min:1',
|
||
'id_course' => 'required|numeric|max:10000|min:1',
|
||
'all_day' => 'required|numeric|max:365|min:1',
|
||
]);
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id_patient)->first();
|
||
|
||
if ($Patient != null) {
|
||
if ($Patient->id_sport_patient == null) {
|
||
//Добовляем данные для списка с курсами
|
||
$SportPatient = SportPatient::create([
|
||
'id_patient' => $request->id_patient,
|
||
'id_sports_courses' => $request->id_course,
|
||
]);
|
||
|
||
//Добавление в таблицу пациентов в запись пациента к какая запись из sport_patient относится к нему(в которой хранится ID курса который к неу относится)
|
||
$pat = $Patient;
|
||
$pat->id_sport_patient = $SportPatient->id;
|
||
$pat->total_days_sports = $request->all_day;
|
||
$pat->now_days_sports = 0;
|
||
$pat->all_days_sports = 0;
|
||
$pat->id_doctor = $user->id;
|
||
$pat->update();
|
||
|
||
//Создание списка на 30 дней в таблице calendar_days
|
||
for ($i = 0; $i < $request->all_day; $i++) {//Цикл на количество дней
|
||
$date = date('Y-m-d', strtotime("$i day"));
|
||
CalendarDays::create([
|
||
'id_patient' => $request->id_patient,
|
||
'day' => $i + 1,
|
||
'date' => $date,
|
||
'id_sport_patient' => $Patient->id_sport_patient,
|
||
]);
|
||
}
|
||
|
||
return response(['message' => 'Курс был добавлен в таблицу для хранения всех куров у пациента'], 200);
|
||
} else {
|
||
return response(['message' => 'У пациента уже есть курс, чтобы добавить новый удалите предыдуший'], 200);
|
||
}
|
||
} else {
|
||
return response(['message' => 'Такого пациента нету'], 401);
|
||
}
|
||
}
|
||
}
|
||
|
||
//Очистка курса пациента
|
||
public
|
||
function ClearPatientSport(Request $request)
|
||
{
|
||
$error = Validator::make($request->all(), [
|
||
'id_patient' => 'required|numeric|max:10000|min:1',
|
||
]);
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id_patient)->first();
|
||
|
||
if ($Patient != null) {
|
||
if ($Patient->id_sport_patient == null) {
|
||
return response(['message' => 'У пациента нету курса'], 200);
|
||
} else {
|
||
//Обновляем что курс окончен
|
||
$SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->first();
|
||
$SP = $SportPatient;
|
||
$SP->finished = 1;
|
||
$SP->update();
|
||
|
||
$pat = $Patient;
|
||
$pat->pause = null;
|
||
$pat->block = null;
|
||
$pat->report7day = null;
|
||
$pat->report15day = null;
|
||
$pat->id_sport_patient = null;
|
||
$pat->total_days_sports = null;
|
||
$pat->now_days_sports = null;
|
||
$pat->all_days_sports = null;
|
||
$pat->update();
|
||
return response(['message' => 'Курс пациента был очишен'], 200);
|
||
}
|
||
|
||
} else {
|
||
return response(['message' => 'Такого пациента нету'], 401);
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
function AddandClearDayPatient(string $id)
|
||
{
|
||
$Patient = Patient::where('id', $id)->first();
|
||
$CalendarDaysAdd = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('date', '>=', date('Y-m-d'))->get();
|
||
$dateMax = $Patient->total_days_sports - $Patient->now_days_sports;
|
||
$CoutCD = Count($CalendarDaysAdd);
|
||
|
||
if ($dateMax != $CoutCD) {
|
||
if ($dateMax < $CoutCD) {
|
||
$max = $CoutCD - $dateMax;
|
||
for ($i = 1; $i < $max; $i++) {
|
||
CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('date', '>=', date('Y-m-d'))->orderBy('date', 'DESC')->first()->delete();
|
||
}
|
||
} else {
|
||
$max = ($dateMax - $CoutCD) + 1;
|
||
$CalendarDaysDelete = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('date', '>=', date('Y-m-d'))->orderBy('date', 'DESC')->first();
|
||
for ($i = 1; $i < $max; $i++) {
|
||
CalendarDays::create([
|
||
'id_patient' => $Patient->id,
|
||
'day' => $CalendarDaysDelete->day + $i,
|
||
'date' => date('Y-m-d', strtotime("+$i day", strtotime($CalendarDaysDelete->date))),
|
||
'id_sport_patient' => $Patient->id_sport_patient,
|
||
]);
|
||
}
|
||
}
|
||
}
|
||
return response("CoutCD - $CoutCD | dateMax - $dateMax | Patient->total_days_sports - $Patient->total_days_sports | Patient->now_days_sports - $Patient->now_days_sports", 400);
|
||
}
|
||
|
||
|
||
//Вывод курса для врача, чтобы он смог посмотеть что входит в курс
|
||
public
|
||
function GetPatientBAQiestionar(Request $request)
|
||
{
|
||
$error = Validator::make($request->all(), [
|
||
'id' => '',
|
||
]);
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id)->first();
|
||
if ($Patient->id_sport_patient == null || $Patient->id_sport_patient == "") {
|
||
return response(['message' => "У пациента отсутсвует курс"], 200);
|
||
} else {
|
||
|
||
$BeforeQuestionnaire = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->orderBy('date', 'ASC')->get();
|
||
|
||
$result = [];
|
||
for ($i = 0; $i < Count($BeforeQuestionnaire); $i++) {
|
||
$AfterQuestionnaireSearch = AfterQuestionnaire::where('date', $BeforeQuestionnaire[$i]->date)->where('id_sport_patient', $Patient->id_sport_patient)->first();
|
||
if ($AfterQuestionnaireSearch != null) {
|
||
$search_sport = [
|
||
'date' => $BeforeQuestionnaire[$i]->date,
|
||
'idb' => $BeforeQuestionnaire[$i]->id,
|
||
'oneb' => $BeforeQuestionnaire[$i]->one,
|
||
'twob' => $BeforeQuestionnaire[$i]->two,
|
||
'threeb' => $BeforeQuestionnaire[$i]->three,
|
||
'fourb' => $BeforeQuestionnaire[$i]->four,
|
||
'fiveb' => $BeforeQuestionnaire[$i]->five,
|
||
'sixb' => $BeforeQuestionnaire[$i]->six,
|
||
'sevenb' => $BeforeQuestionnaire[$i]->seven,
|
||
'eightb' => $BeforeQuestionnaire[$i]->eight,
|
||
'nineb' => $BeforeQuestionnaire[$i]->nine,
|
||
|
||
'statusa' => "1",
|
||
'ida' => $AfterQuestionnaireSearch->id,
|
||
'onea' => $AfterQuestionnaireSearch->one,
|
||
'twoa' => $AfterQuestionnaireSearch->two,
|
||
'threea' => $AfterQuestionnaireSearch->three,
|
||
'foura' => $AfterQuestionnaireSearch->four,
|
||
'fivea' => $AfterQuestionnaireSearch->five,
|
||
'sixa' => $AfterQuestionnaireSearch->six,
|
||
'sevena' => $AfterQuestionnaireSearch->seven,
|
||
'eighta' => $AfterQuestionnaireSearch->eight,
|
||
'ninea' => $AfterQuestionnaireSearch->nine,
|
||
'tena' => $AfterQuestionnaireSearch->ten,
|
||
'elevena' => $AfterQuestionnaireSearch->eleven,
|
||
'twelvea' => $AfterQuestionnaireSearch->twelve,
|
||
];
|
||
} else {
|
||
$search_sport = [
|
||
'date' => $BeforeQuestionnaire[$i]->date,
|
||
'idb' => $BeforeQuestionnaire[$i]->id,
|
||
'oneb' => $BeforeQuestionnaire[$i]->one,
|
||
'twob' => $BeforeQuestionnaire[$i]->two,
|
||
'threeb' => $BeforeQuestionnaire[$i]->three,
|
||
'fourb' => $BeforeQuestionnaire[$i]->four,
|
||
'fiveb' => $BeforeQuestionnaire[$i]->five,
|
||
'sixb' => $BeforeQuestionnaire[$i]->six,
|
||
'sevenb' => $BeforeQuestionnaire[$i]->seven,
|
||
'eightb' => $BeforeQuestionnaire[$i]->eight,
|
||
'nineb' => $BeforeQuestionnaire[$i]->nine,
|
||
|
||
'statusa' => "0",
|
||
'onea' => 0,
|
||
'twoa' => 0,
|
||
'threea' => 0,
|
||
'foura' => 0,
|
||
'fivea' => 0,
|
||
'sixa' => 0,
|
||
'sevena' => 0,
|
||
'eighta' => 0,
|
||
'ninea' => 0,
|
||
'tena' => 0,
|
||
'elevena' => 0,
|
||
'twelvea' => 0,
|
||
];
|
||
}
|
||
|
||
array_push($result, $search_sport);
|
||
}
|
||
|
||
|
||
return response(['questionnaire' => $result], 200);
|
||
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
function CheckTokenDoctor()
|
||
{
|
||
$User = Auth::user();
|
||
if ($User != null) {
|
||
return response(['status' => "300"], 200);
|
||
} else {
|
||
return response(['status' => "600"], 200);
|
||
}
|
||
}
|
||
|
||
|
||
public function UpdatePatientLogin(Request $request)
|
||
{
|
||
$error = Validator::make($request->all(), [
|
||
'id' => 'required|numeric|max:10000|min:1',
|
||
'login' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:20|min:4',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id)->first();
|
||
if ($Patient != null) {
|
||
$PatientLogin = Patient::where('login', $request->login)->first();
|
||
if ($PatientLogin == null) {
|
||
$P = $Patient;
|
||
$P->login = $request->login;
|
||
$P->update();
|
||
return response(['message' => 'Логин обновлен'], 200);
|
||
} else {
|
||
return response(['message' => 'Данный логин уже занят'], 200);
|
||
}
|
||
|
||
} else {
|
||
return response(['message' => 'Ошибка, такого пациента нету'], 400);
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
public function UpdatePatientPassword(Request $request)
|
||
{
|
||
$error = Validator::make($request->all(), [
|
||
'id' => 'required|numeric|max:10000|min:1',
|
||
'password' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:100|min:10',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id)->first();
|
||
if ($Patient != null) {
|
||
$P = $Patient;
|
||
$P->password = Hash::make($request->password);
|
||
$P->update();
|
||
return response(['message' => 'Пароль обновлен'], 200);
|
||
} else {
|
||
return response(['message' => 'Ошибка, такого пациента нету'], 400);
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
//Вывод новых необработанных заявлений
|
||
public function GetAppealsDoctorNew()
|
||
{
|
||
$User = Auth::user();
|
||
if ($User != null) {
|
||
$Appeals = AppealsDoctor::where('check', 0)->where('id_doctor', $User->id)->first();
|
||
$result = [];
|
||
$number=0;
|
||
if($Appeals!=null){
|
||
$AppealsList = AppealsDoctor::where('check', 0)->where('id_doctor', $User->id)->get();
|
||
for ($i = 0; $i != Count($AppealsList); $i++) {
|
||
$Patient = Patient::where('id',$AppealsList[$i]->id_patient)->first();
|
||
$number = $number+1;
|
||
$search_check = [
|
||
'number' => $number,
|
||
'id' => $AppealsList[$i]->id,
|
||
'text' => $AppealsList[$i]->text,
|
||
'id_patient' => $AppealsList[$i]->id_patient,
|
||
'id_doctor'=>$AppealsList[$i]->id_doctor,
|
||
'check'=>$AppealsList[$i]->check,
|
||
'login'=>$Patient->login,
|
||
'created_at'=>$AppealsList[$i]->created_at,
|
||
'updated_at'=>$AppealsList[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_check);
|
||
}
|
||
return response(['appeals_new' => $result], 200);
|
||
}
|
||
else{
|
||
return response(['appeals_new' => null], 200);
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка 404'], 404);
|
||
}
|
||
}
|
||
|
||
//Вывод новых обработанных заявлений
|
||
public function GetAppealsDoctorOld()
|
||
{
|
||
$User = Auth::user();
|
||
if ($User != null) {
|
||
$Appeals = AppealsDoctor::where('check', 1)->where('id_doctor', $User->id)->first();
|
||
$result = [];
|
||
$number=0;
|
||
if($Appeals!=null){
|
||
$AppealsList = AppealsDoctor::where('check', 1)->where('id_doctor', $User->id)->get();
|
||
for ($i = 0; $i != Count($AppealsList); $i++) {
|
||
$Patient = Patient::where('id',$AppealsList[$i]->id_patient)->first();
|
||
$number = $number+1;
|
||
$search_check = [
|
||
'number' => $number,
|
||
'id' => $AppealsList[$i]->id,
|
||
'text' => $AppealsList[$i]->text,
|
||
'id_patient' => $AppealsList[$i]->id_patient,
|
||
'id_doctor'=>$AppealsList[$i]->id_doctor,
|
||
'check'=>$AppealsList[$i]->check,
|
||
'login'=>$Patient->login,
|
||
'created_at'=>$AppealsList[$i]->created_at,
|
||
'updated_at'=>$AppealsList[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_check);
|
||
}
|
||
return response(['appeals_old' => $result], 200);
|
||
}
|
||
else{
|
||
return response(['appeals_old' => null], 200);
|
||
}
|
||
|
||
|
||
} else {
|
||
return response(['message' => 'Ошибка 404'], 404);
|
||
}
|
||
}
|
||
|
||
//Создание сообщения для пациента
|
||
public function AddMessageDoctor(Request $request)
|
||
{
|
||
$User = Auth::user();
|
||
if ($User != null) {
|
||
$error = Validator::make($request->all(), [
|
||
//'id' => 'required|numeric|max:10000|min:1',
|
||
'login' => 'required|string|max:1000|min:4',
|
||
// 'text' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:100|min:4',
|
||
'text' => 'required|string|max:1000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('login', $request->login)->first();
|
||
if ($Patient != null) {
|
||
AppealsPatient::create([
|
||
'text' => $request->text,
|
||
'id_patient' => $Patient->id,
|
||
'id_doctor' => $User->id,
|
||
]);
|
||
return response(['message' => 'Сообщение отправлено'], 200);
|
||
} else {
|
||
return response(['message' => 'Ошибка, такого пациента нету'], 400);
|
||
}
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка 404'], 404);
|
||
}
|
||
}
|
||
|
||
//Создание сообщения для пациента
|
||
public function UpdateMessageDoctor(Request $request)
|
||
{
|
||
$User = Auth::user();
|
||
if ($User != null) {
|
||
$error = Validator::make($request->all(), [
|
||
'id_patient' => 'required|numeric|max:10000|min:1',
|
||
'id' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$Patient = Patient::where('id', $request->id_patient)->first();
|
||
if ($Patient != null) {
|
||
|
||
$AppealsPatient = AppealsDoctor::where('id',$request->id)->where('check',0)->where('id_patient',$Patient->id)->where('id_doctor',$User->id)->first();
|
||
if($AppealsPatient!=null){
|
||
if($AppealsPatient->check == 0){
|
||
$AP = $AppealsPatient;
|
||
$AP->check = 1;
|
||
$AP->update();
|
||
return response(['message' => 'Подтверждено'], 200);
|
||
}
|
||
else{
|
||
return response(['message' => 'Данное сообщение уже отмечено'], 200);
|
||
}
|
||
}
|
||
else{
|
||
return response(['message' => 'Такого сообщения нету'], 200);
|
||
}
|
||
|
||
} else {
|
||
return response(['message' => 'Ошибка, такого пациента нету'], 400);
|
||
}
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка 404'], 404);
|
||
}
|
||
}
|
||
|
||
//Создание основы для собственного курса от врача
|
||
function AddCoursesName(Request $request){
|
||
$User = Auth::user();
|
||
if ($User != null) {
|
||
$error = Validator::make($request->all(), [
|
||
'name' => 'required|string|max:150|min:4',
|
||
'description' => 'required|string|max:1000|min:4',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$SportCourses = SportCourses::create([
|
||
'name'=>$request->name,
|
||
'description'=>$request->description,
|
||
'visibility'=>1,
|
||
'user_id'=>$User->id,
|
||
]);
|
||
SetsOfSportsActivities::create([
|
||
'name'=>uniqid(),
|
||
'day'=>1,
|
||
'description'=>"Общий курс",
|
||
'id_sports_courses'=>$SportCourses->id,
|
||
]);
|
||
return response(['message' => 'Шаблон для курса создан'], 200);
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка 404'], 404);
|
||
}
|
||
}
|
||
|
||
//Добавление упражнения в курс
|
||
function AddCoursesCreatingDoctor(Request $request){
|
||
$User = Auth::user();
|
||
if ($User != null) {
|
||
$error = Validator::make($request->all(), [
|
||
'id_sports_tasks' => 'required|numeric|max:10000|min:1',
|
||
'id_sets_of_sports_activities' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$SportTasks = SportTasks::where('id',$request->id_sports_tasks)->first();
|
||
if($SportTasks!=null){
|
||
$SetOfSportsExercises = SetOfSportsExercises::where('id_sets_of_sports_activities',$request->id_sets_of_sports_activities)->where('id_sports_tasks',$request->id_sports_tasks)->orderBy('id','DESC')->first();
|
||
|
||
if($SetOfSportsExercises ==null){
|
||
$SetOfSportsExercisesSport = SetOfSportsExercises::where('id_sets_of_sports_activities',$request->id_sets_of_sports_activities)->where('id_sports_tasks','!=',$request->id_sports_tasks)->orderBy('id','DESC')->first();
|
||
if($SetOfSportsExercisesSport==null){
|
||
SetOfSportsExercises::create([
|
||
'number'=>1,
|
||
'day'=>1,
|
||
'id_sports_tasks'=>$request->id_sports_tasks,
|
||
'id_sets_of_sports_activities'=>$request->id_sets_of_sports_activities,
|
||
]);
|
||
|
||
return response(['message' => 'Первое упражнение добавлено'], 200);
|
||
}
|
||
else{
|
||
SetOfSportsExercises::create([
|
||
'number'=>$SetOfSportsExercisesSport->number+1,
|
||
'day'=>1,
|
||
'id_sports_tasks'=>$request->id_sports_tasks,
|
||
'id_sets_of_sports_activities'=>$request->id_sets_of_sports_activities,
|
||
]);
|
||
return response(['message' => 'Упражнение добавлено'], 200);
|
||
}
|
||
|
||
|
||
}
|
||
else{
|
||
return response(['message' => 'Такое упражнение уже есть'], 200);
|
||
}
|
||
}
|
||
else{
|
||
return response(['message' => 'Такого упражнения нету'], 200);
|
||
}
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка 404'], 404);
|
||
}
|
||
}
|
||
|
||
|
||
//Удаление упражнения из курса
|
||
function ClearCoursesCreatingDoctor(Request $request){
|
||
$User = Auth::user();
|
||
if ($User != null) {
|
||
$error = Validator::make($request->all(), [
|
||
'id_sets_of_sports_exercises' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$SetOfSportsExercises = SetOfSportsExercises::where('id',$request->id_sets_of_sports_exercises)->first();
|
||
if($SetOfSportsExercises!=null){
|
||
SetOfSportsExercises::where('id',$request->id_sets_of_sports_exercises)->delete();
|
||
return response(['message' => 'Упражнение удалено'], 200);
|
||
}
|
||
else{
|
||
return response(['message' => 'Такого упражнения нету'], 200);
|
||
}
|
||
}
|
||
} else {
|
||
return response(['message' => 'Ошибка 404'], 404);
|
||
}
|
||
}
|
||
|
||
//Вывод курсов созданных врачем
|
||
function GetCoursesDoctor(){
|
||
$User = Auth::user();
|
||
|
||
$SportCoursesDoctor = SportCourses::where('user_id',$User->id)->get();
|
||
$SetsOfSportsActivities = SetsOfSportsActivities::orderBy('id', 'ASC')
|
||
->leftJoin('sports_courses', 'sports_courses.id', '=', 'sets_of_sports_activities.id_sports_courses')
|
||
->select('sports_courses.id', 'sports_courses.name', 'sports_courses.description', 'sports_courses.visibility', 'sports_courses.visibility','sports_courses.user_id','sets_of_sports_activities.id as id_activity','sports_courses.created_at','sports_courses.updated_at')
|
||
->distinct()
|
||
->where("sports_courses.user_id", $User->id)
|
||
->get();
|
||
$result = [];
|
||
$number=0;
|
||
for ($i = 0; $i != Count($SetsOfSportsActivities); $i++) {
|
||
$number = $number+1;
|
||
$search_check = [
|
||
'number' => $number,
|
||
'id' => $SetsOfSportsActivities[$i]->id,
|
||
'name' => $SetsOfSportsActivities[$i]->name,
|
||
'description' => $SetsOfSportsActivities[$i]->description,
|
||
'visibility' => $SetsOfSportsActivities[$i]->visibility,
|
||
'user_id'=>$SetsOfSportsActivities[$i]->user_id,
|
||
'id_activity'=>$SetsOfSportsActivities[$i]->id_activity,
|
||
'created_at'=>$SetsOfSportsActivities[$i]->created_at,
|
||
'updated_at'=>$SetsOfSportsActivities[$i]->updated_at,
|
||
];
|
||
array_push($result, $search_check);
|
||
}
|
||
|
||
return response(['sport_courses_doctor' => $result], 200);
|
||
|
||
}
|
||
|
||
//Вывод всех упражнений
|
||
function GetEditCourseDoctorAll(Request $request){
|
||
//$Doctor = Auth::user()->makeHidden(['id']);
|
||
$error = Validator::make($request->all(), [
|
||
'id_doctor_courses' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$SportCourses = SportCourses::orderBy('id', 'ASC')->where('id', $request->id_doctor_courses)->first();
|
||
if ($SportCourses != null) {
|
||
|
||
//$SportCoursesAdd = SportCourses::orderBy('id', 'ASC')->where('id_doctor_courses', $request->id_doctor_courses)->get();
|
||
// $SportTasks = $Set::get();
|
||
$SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
|
||
->join('sets_of_sports_activities', 'set_of_sports_exercises.id_sets_of_sports_activities', '=', 'sets_of_sports_activities.id')
|
||
->join('sports_tasks', 'set_of_sports_exercises.id_sports_tasks', '=', 'sports_tasks.id')
|
||
// ->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
|
||
->join('sports_courses', 'sets_of_sports_activities.id_sports_courses', '=', 'sports_courses.id')
|
||
->join('image', 'sports_tasks.article_image', '=', 'image.article')
|
||
->select('sports_tasks.id','set_of_sports_exercises.id as id_exercises', 'sports_tasks.name', 'sports_tasks.description', 'image.url_image')
|
||
->distinct('id')
|
||
->where('sports_courses.id', '!=',$request->id_doctor_courses)
|
||
->get();
|
||
|
||
$CoursesSportEdit = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
|
||
->join('sets_of_sports_activities', 'set_of_sports_exercises.id_sets_of_sports_activities', '=', 'sets_of_sports_activities.id')
|
||
->join('sports_tasks', 'set_of_sports_exercises.id_sports_tasks', '=', 'sports_tasks.id')
|
||
// ->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
|
||
->join('sports_courses', 'sets_of_sports_activities.id_sports_courses', '=', 'sports_courses.id')
|
||
->join('image', 'sports_tasks.article_image', '=', 'image.article')
|
||
->select('sports_tasks.id','set_of_sports_exercises.id as id_exercises', 'sports_tasks.name', 'sports_tasks.description', 'image.url_image')
|
||
->distinct('id')
|
||
->where('sports_courses.id',$request->id_doctor_courses)
|
||
->get();
|
||
$result = [];
|
||
|
||
$number = 0;
|
||
|
||
if ($CoursesSportEdit != null) {
|
||
for ($i = 0; $i != Count($SetOfSportsExercises); $i++) {
|
||
$res = 0;
|
||
for ($j = 0; $j != Count($CoursesSportEdit); $j++) {
|
||
if ($SetOfSportsExercises[$i]->id != $CoursesSportEdit[$j]->id) {
|
||
$res++;
|
||
}
|
||
}
|
||
if ($res == Count($CoursesSportEdit)) {
|
||
$number++;
|
||
$search_sport = [
|
||
'number' => $number,
|
||
'id' => $SetOfSportsExercises[$i]->id,
|
||
'id_exercises' => $SetOfSportsExercises[$i]->id_exercises,
|
||
'name' => $SetOfSportsExercises[$i]->name,
|
||
'description' => $SetOfSportsExercises[$i]->description,
|
||
'url_image' => $SetOfSportsExercises[$i]->url_image,
|
||
];
|
||
array_push($result, $search_sport);
|
||
}
|
||
}
|
||
} else {
|
||
for ($i = 0; $i != Count($SetOfSportsExercises); $i++) {
|
||
$search_sport = [
|
||
'number' => $number,
|
||
'id' => $SetOfSportsExercises[$i]->id,
|
||
'id_exercises' => $SetOfSportsExercises[$i]->id_exercises,
|
||
'name' => $SetOfSportsExercises[$i]->name,
|
||
'description' => $SetOfSportsExercises[$i]->description,
|
||
'url_image' => $SetOfSportsExercises[$i]->url_image,
|
||
];
|
||
array_push($result, $search_sport);
|
||
}
|
||
}
|
||
|
||
return response(['set_of_sports_exercises_all' => $result], 200);
|
||
|
||
|
||
} else {
|
||
return response(['message' => 'Ошибка, такого курса нету'], 400);
|
||
}
|
||
}
|
||
}
|
||
|
||
//Вывод добавленных упражнений в курс
|
||
function GetEditCourseDoctorYour(Request $request){
|
||
//$Doctor = Auth::user()->makeHidden(['id']);
|
||
$error = Validator::make($request->all(), [
|
||
'id_doctor_courses' => 'required|numeric|max:10000|min:1',
|
||
]);//1024
|
||
if ($error->fails()) {
|
||
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
|
||
} else {
|
||
$SportCourses = SportCourses::orderBy('id', 'ASC')->where('id', $request->id_doctor_courses)->first();
|
||
if ($SportCourses != null) {
|
||
|
||
|
||
|
||
$CoursesSportEdit = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
|
||
->join('sets_of_sports_activities', 'set_of_sports_exercises.id_sets_of_sports_activities', '=', 'sets_of_sports_activities.id')
|
||
->join('sports_tasks', 'set_of_sports_exercises.id_sports_tasks', '=', 'sports_tasks.id')
|
||
// ->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
|
||
->join('sports_courses', 'sets_of_sports_activities.id_sports_courses', '=', 'sports_courses.id')
|
||
->join('image', 'sports_tasks.article_image', '=', 'image.article')
|
||
->select('sports_tasks.id', 'sports_tasks.name', 'sports_tasks.description', 'image.url_image','set_of_sports_exercises.id as id_exercises')
|
||
->distinct('id')
|
||
->where('sports_courses.id',$request->id_doctor_courses, )
|
||
->get();
|
||
|
||
$result = [];
|
||
$number = 0;
|
||
|
||
for ($i = 0; $i != Count($CoursesSportEdit); $i++) {
|
||
$number++;
|
||
$search_sport = [
|
||
'number' => $number,
|
||
'id' => $CoursesSportEdit[$i]->id,
|
||
'id_exercises' => $CoursesSportEdit[$i]->id_exercises,
|
||
'name' => $CoursesSportEdit[$i]->name,
|
||
'description' => $CoursesSportEdit[$i]->description,
|
||
'url_image' => $CoursesSportEdit[$i]->url_image,
|
||
];
|
||
array_push($result, $search_sport);
|
||
}
|
||
|
||
|
||
return response(['set_of_sports_exercises_your' => $result], 200);
|
||
|
||
|
||
} else {
|
||
return response(['message' => 'Ошибка, такого курса нету'], 400);
|
||
}
|
||
}
|
||
}
|
||
|
||
//Получение данных для первой страницы врача
|
||
function CountPatientAndAppeals()
|
||
{
|
||
$User = Auth::user();
|
||
$Patient = Patient::where('id_doctor',$User->id)->get();
|
||
$AppealsCheck = AppealsDoctor::where('check',0)->where('id_doctor',$User->id)->get();
|
||
$AppealsAll = AppealsDoctor::where('id_doctor',$User->id)->get();
|
||
|
||
return response(['patient' => Count($Patient),'appeals_check' => Count($AppealsCheck),'appeals_all' => Count($AppealsAll)], 200);
|
||
}
|
||
|
||
|
||
|
||
}
|