>_ rehablogger
Система работает
← Все сессии
СЕССИЯ УСТРОЙСТВА

rehabapp_2026-08-17_16-28-02

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 649|1o24X8q8LnZFmkfKMznFk2HMvONTOtgwCXPB2Vsb1bd19550
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/chat
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 17 Aug 2026 13:48:19 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-08-17T13:48:19.227377Z","request_id":"ba838801-8dd8-41ae-9f49-c31363e8c06a","version":"v1"},"data":{"has_doctor":false,"chat_id":null,"empty_state_message":"У вас пока нет лечащего врача","messages":[],"unread_count":0}}
INFO [console] [DIO]
INFO [console] [Repo] RAW JSON: {success: true, meta: {timestamp: 2026-08-17T13:48:19.227377Z, request_id: ba838801-8dd8-41ae-9f49-c31363e8c06a, version: v1}, data: {has_doctor: false, chat_id: null, empty_state_message: У вас пока нет лечащего врача, messages: [], unread_count: 0}}
INFO [console] [Chat] API response: hasDoctor=false, chatId=null, messages=0, unread=0
INFO [console] [Chat] No doctor or no chatId → showing empty state
INFO [console] shrinkOffset: 0.0, progress: 0.0
INFO [console] shrinkOffset: 0.0, progress: 0.0
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/period?start_date=2026-07-27&end_date=2026-09-06
INFO [console] [DIO] method: GET
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 649|1o24X8q8LnZFmkfKMznFk2HMvONTOtgwCXPB2Vsb1bd19550
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/period?start_date=2026-07-27&end_date=2026-09-06
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 17 Aug 2026 13:48:23 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-08-17T13:48:23.324965Z","request_id":"ad37c642-15b2-445b-9fea-fadc318715f9","version":"v1"},"data":{"start_rehab":"2026-08-17 00:00:00","end_rehab":"2026-08-24 00:00:00","days":[{"date":"2026-08-17","status":["start"],"training":[{"mode":"correction_unit","status":"not_done","progress":null},{"mode":"diagnostics","status":"not_done","progress":null}]},{"date":"2026-08-18","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-08-19","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-08-20","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-08-21","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-08-23","status":["first_control"],"training":[{"mode":"screening_test","status":"not_done","progress":null}]},{"date":"2026-08-24","status":["end"],"training":[]}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-08-17T13:48:23.324965Z, request_id: ad37c642-15b2-445b-9fea-fadc318715f9, version: v1}, data: {start_rehab: 2026-08-17 00:00:00, end_rehab: 2026-08-24 00:00:00, days: [{date: 2026-08-17, status: [start], training: [{mode: correction_unit, status: not_done, progress: null}, {mode: diagnostics, status: not_done, progress: null}]}, {date: 2026-08-18, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-08-19, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-08-20, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-08-21, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-08-23, status: [first_control], training: [{mode: screening_test, status: not_done, progress: null}]}, {date: 2026-08-24, status: [end], training: []}]}}
INFO [console] shrinkOffset: 0.0, progress: 0.0
INFO [console] shrinkOffset: 0.0, progress: 0.0
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/day?date=2026-08-17
INFO [console] [DIO] method: GET
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 649|1o24X8q8LnZFmkfKMznFk2HMvONTOtgwCXPB2Vsb1bd19550
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/day?date=2026-08-17
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 17 Aug 2026 13:48:23 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-08-17T13:48:23.438107Z","request_id":"18d5b833-5030-4207-9e7e-d7186086f388","version":"v1"},"data":{"rehabilitation_day_id":2620,"phase_id":312,"diagnosis_rehab":"Проверка упражнений","start_rehab":"2026-08-17 00:00:00","end_rehab":"2026-08-24 00:00:00","name_rehab_phase":"Проверка упражнений","status":["start"],"recommendations_count":1,"date":"2026-08-17","training":[{"mode":"correction_unit","status":"not_done","progress":null,"unit_id":943,"time":"10 - 20 мин","count_questions":2,"status_questions":false,"workout_id":null},{"mode":"diagnostics","status":"not_done","progress":null,"unit_id":942,"time":"10 - 20 мин","count_questions":null,"status_questions":false,"workout_id":null}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-08-17T13:48:23.438107Z, request_id: 18d5b833-5030-4207-9e7e-d7186086f388, version: v1}, data: {rehabilitation_day_id: 2620, phase_id: 312, diagnosis_rehab: Проверка упражнений, start_rehab: 2026-08-17 00:00:00, end_rehab: 2026-08-24 00:00:00, name_rehab_phase: Проверка упражнений, status: [start], recommendations_count: 1, date: 2026-08-17, training: [{mode: correction_unit, status: not_done, progress: null, unit_id: 943, time: 10 - 20 мин, count_questions: 2, status_questions: false, workout_id: null}, {mode: diagnostics, status: not_done, progress: null, unit_id: 942, time: 10 - 20 мин, count_questions: null, status_questions: false, workout_id: null}]}}
INFO [console] [ChatWebSocket] websocket connect started: url=wss://rehabilitation.most.team/app/local-reverb-key?protocol=7&client=flutter&version=1.0.0&flash=false
INFO [console] [ChatWebSocket] websocket connect finished: readyState=1
INFO [console] [ChatWebSocket] websocket listener attached
INFO [console] [ChatWebSocket] init completed: connected=false, socketId=null, pendingChannels={private-chat.83, private-user.306}
INFO [console] [ChatWebSocket] incoming raw: type=String, data={"event":"pusher:connection_established","data":"{\"socket_id\":\"715177405.108276039\",\"activity_timeout\":30}"}
INFO [console] [ChatWebSocket] incoming envelope: event=pusher:connection_established, channel=null, data={"socket_id":"715177405.108276039","activity_timeout":30}
INFO [console] [ChatWebSocket] connected: socketId=715177405.108276039, activityTimeout=30
INFO [console] [ChatWebSocket] auth request: socketId=715177405.108276039, channel=private-chat.83
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/broadcasting/auth
INFO [console] [DIO] method: POST
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] accept: application/json
INFO [console] [DIO] content-type: application/x-www-form-urlencoded
INFO [console] [DIO] Authorization: Bearer 649|1o24X8q8LnZFmkfKMznFk2HMvONTOtgwCXPB2Vsb1bd19550
INFO [console] [DIO] data:
INFO [console] [DIO] {socket_id: 715177405.108276039, channel_name: private-chat.83}
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/broadcasting/auth
INFO [console] [DIO] statusCode: 403
INFO [console] [DIO] statusMessage: Forbidden
INFO [console] [DIO] headers:
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 17 Aug 2026 13:48:26 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"message":"","exception":"Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException","file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php","line":123,"trace":[{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php","line":84,"function":"verifyUserCanAccessChannel","class":"Illuminate\\Broadcasting\\Broadcasters\\Broadcaster","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php","line":553,"function":"auth","class":"Illuminate\\Broadcasting\\Broadcasters\\PusherBroadcaster","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php","line":363,"function":"__call","class":"Illuminate\\Broadcasting\\BroadcastManager","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php","line":24,"function":"__callStatic","class":"Illuminate\\Support\\Facades\\Facade","type":"::"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Controller.php","line":54,"function":"authenticate","class":"Illuminate\\Broadcasting\\BroadcastController","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php","line":43,"function":"callAction","class":"Illuminate\\Routing\\Controller","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php","line":265,"function":"dispatch","class":"Illuminate\\Routing\\ControllerDispatcher","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php","line":211,"function":"runController","class":"Illuminate\\Routing\\Route","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":822,"function":"run","class":"Illuminate\\Routing\\Route","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":180,"function":"{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php","line":63,"function":"{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Auth\\Middleware\\Authenticate","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":137,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":821,"function":"then","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":800,"function":"runRouteWithinStack","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":764,"function":"runRoute","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":753,"function":"dispatchToRoute","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":200,"function":"dispatch","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":180,"function":"{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php","line":19,"function":"{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Livewire\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php","line":21,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php","line":31,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php","line":21,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php","line":51,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TrimStrings","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php","line":27,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\ValidatePostSize","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php","line":109,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php","line":61,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\HandleCors","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php","line":58,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\TrustProxies","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php","line":22,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php","line":26,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\ValidatePathEncoding","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":137,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":175,"function":"then","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":144,"function":"sendRequestThroughRouter","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php","line":1220,"function":"handle","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/public/index.php","line":20,"function":"handleRequest","class":"Illuminate\\Foundation\\Application","type":"->"}]}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/broadcasting/auth
INFO [console] [DIO] method: POST
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] accept: application/json
INFO [console] [DIO] content-type: application/x-www-form-urlencoded
INFO [console] [DIO] Authorization: Bearer 649|1o24X8q8LnZFmkfKMznFk2HMvONTOtgwCXPB2Vsb1bd19550
INFO [console] [DIO] data:
INFO [console] [DIO] {socket_id: 715177405.108276039, channel_name: private-user.306}
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/broadcasting/auth
INFO [console] [DIO] statusCode: 403
INFO [console] [DIO] statusMessage: Forbidden
INFO [console] [DIO] headers:
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 17 Aug 2026 13:48:26 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"message":"","exception":"Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException","file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php","line":123,"trace":[{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php","line":84,"function":"verifyUserCanAccessChannel","class":"Illuminate\\Broadcasting\\Broadcasters\\Broadcaster","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php","line":553,"function":"auth","class":"Illuminate\\Broadcasting\\Broadcasters\\PusherBroadcaster","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php","line":363,"function":"__call","class":"Illuminate\\Broadcasting\\BroadcastManager","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php","line":24,"function":"__callStatic","class":"Illuminate\\Support\\Facades\\Facade","type":"::"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Controller.php","line":54,"function":"authenticate","class":"Illuminate\\Broadcasting\\BroadcastController","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php","line":43,"function":"callAction","class":"Illuminate\\Routing\\Controller","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php","line":265,"function":"dispatch","class":"Illuminate\\Routing\\ControllerDispatcher","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php","line":211,"function":"runController","class":"Illuminate\\Routing\\Route","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":822,"function":"run","class":"Illuminate\\Routing\\Route","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":180,"function":"{closure:Illuminate\\Routing\\Router::runRouteWithinStack():821}","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php","line":63,"function":"{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Auth\\Middleware\\Authenticate","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":137,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":821,"function":"then","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":800,"function":"runRouteWithinStack","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":764,"function":"runRoute","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php","line":753,"function":"dispatchToRoute","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":200,"function":"dispatch","class":"Illuminate\\Routing\\Router","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":180,"function":"{closure:Illuminate\\Foundation\\Http\\Kernel::dispatchToRouter():197}","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php","line":19,"function":"{closure:Illuminate\\Pipeline\\Pipeline::prepareDestination():178}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Livewire\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php","line":21,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php","line":31,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php","line":21,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php","line":51,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\TrimStrings","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php","line":27,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\ValidatePostSize","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php","line":109,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php","line":61,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\HandleCors","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php","line":58,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\TrustProxies","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php","line":22,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php","line":26,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":219,"function":"handle","class":"Illuminate\\Http\\Middleware\\ValidatePathEncoding","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php","line":137,"function":"{closure:{closure:Illuminate\\Pipeline\\Pipeline::carry():194}:195}","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":175,"function":"then","class":"Illuminate\\Pipeline\\Pipeline","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php","line":144,"function":"sendRequestThroughRouter","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php","line":1220,"function":"handle","class":"Illuminate\\Foundation\\Http\\Kernel","type":"->"},{"file":"/var/www/rehabilitation-backend/public/index.php","line":20,"function":"handleRequest","class":"Illuminate\\Foundation\\Application","type":"->"}]}
INFO [console] [DIO]
INFO [console] [ChatWebSocket] auth response: status=403, data={message: , exception: Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException, file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php, line: 123, trace: [{file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php, line: 84, function: verifyUserCanAccessChannel, class: Illuminate\Broadcasting\Broadcasters\Broadcaster, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php, line: 553, function: auth, class: Illuminate\Broadcasting\Broadcasters\PusherBroadcaster, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php, line: 363, function: __call, class: Illuminate\Broadcasting\BroadcastManager, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php, line: 24, function: __callStatic, class: Illuminate\Support\Facades\Facade, type: ::}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Controller.php, line: 54, function: authenticate, class: Illuminate\Broadcasting\BroadcastController, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php, line: 43, function: callAction, class: Illuminate\Routing\Controller, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php, line: 265, function: dispatch, class: Illuminate\Routing\ControllerDispatcher, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php, line: 211, function: runController, class: Illuminate\Routing\Route, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 822, function: run, class: Illuminate\Routing\Route, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 180, function: {closure:Illuminate\Routing\Router::runRouteWithinStack():821}, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php, line: 63, function: {closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Auth\Middleware\Authenticate, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 137, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 821, function: then, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 800, function: runRouteWithinStack, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 764, function: runRoute, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php, line: 753, function: dispatchToRoute, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 200, function: dispatch, class: Illuminate\Routing\Router, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 180, function: {closure:Illuminate\Foundation\Http\Kernel::dispatchToRouter():197}, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php, line: 19, function: {closure:Illuminate\Pipeline\Pipeline::prepareDestination():178}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php, line: 21, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php, line: 31, function: handle, class: Illuminate\Foundation\Http\Middleware\TransformsRequest, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php, line: 21, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php, line: 51, function: handle, class: Illuminate\Foundation\Http\Middleware\TransformsRequest, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\TrimStrings, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php, line: 27, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\ValidatePostSize, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php, line: 109, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php, line: 61, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\HandleCors, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php, line: 58, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\TrustProxies, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php, line: 22, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Foundation\Http\Middleware\InvokeDeferredCallbacks, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php, line: 26, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 219, function: handle, class: Illuminate\Http\Middleware\ValidatePathEncoding, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php, line: 137, function: {closure:{closure:Illuminate\Pipeline\Pipeline::carry():194}:195}, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 175, function: then, class: Illuminate\Pipeline\Pipeline, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php, line: 144, function: sendRequestThroughRouter, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php, line: 1220, function: handle, class: Illuminate\Foundation\Http\Kernel, type: ->}, {file: /var/www/rehabilitation-backend/public/index.php, line: 20, function: handleRequest, class: Illuminate\Foundation\Application, type: ->}]}
INFO [console] shrinkOffset: 3.0769230769230944, progress: 0.012063765618268055
INFO [console] shrinkOffset: 9.846153846153982, progress: 0.03860404997845809
INFO [console] shrinkOffset: 14.153846153846246, progress: 0.0554933218440331
INFO [console] shrinkOffset: 19.07692307692315, progress: 0.0747953468332618
INFO [console] shrinkOffset: 34.153846153846246, progress: 0.13390779836277503
INFO [console] shrinkOffset: 51.38461538461553, progress: 0.20146488582507593
INFO [console] shrinkOffset: 69.23076923076934, progress: 0.2714347264110301
INFO [console] shrinkOffset: 85.53846153846172, progress: 0.3353726841878507
INFO [console] shrinkOffset: 92.92307692307708, progress: 0.3643257216716938
INFO [console] shrinkOffset: 99.38461538461553, progress: 0.38965962947005656
INFO [console] shrinkOffset: 101.36823878380056, progress: 0.3974368689929276
INFO [console] shrinkOffset: 103.21250602582369, progress: 0.404667731510123
INFO [console] shrinkOffset: 106.49632837999374, progress: 0.41754269205426237
INFO [console] shrinkOffset: 107.93942152340087, progress: 0.42320066172466514
INFO [console] shrinkOffset: 109.25450182836514, progress: 0.4283567284093592
INFO [console] shrinkOffset: 110.44508561065494, progress: 0.43302467861135713
INFO [console] shrinkOffset: 111.51436256346702, progress: 0.43721701823677284
INFO [console] shrinkOffset: 112.46575588351348, progress: 0.4409471686945164
INFO [console] shrinkOffset: 113.30322512994347, progress: 0.44423065432248404
INFO [console] shrinkOffset: 114.0306133555654, progress: 0.447082542669386
INFO [console] shrinkOffset: 114.65209075488934, progress: 0.4495191839161969
INFO [console] shrinkOffset: 115.17237381449532, progress: 0.45155907010422547
INFO [console] shrinkOffset: 115.59630757152345, progress: 0.4532211972860247
INFO [console] shrinkOffset: 115.92947490591301, progress: 0.45452745439198977
INFO [console] shrinkOffset: 116.17797223167923, progress: 0.45550174377780306
INFO [console] shrinkOffset: 116.34887211233139, progress: 0.4561717950117258
INFO [console] shrinkOffset: 116.45073010737829, progress: 0.45657115207976834
INFO [console] shrinkOffset: 116.4946077306031, progress: 0.4567431841225713
INFO [console] shrinkOffset: 116.50000993800377, progress: 0.4567643646858398
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/exercises?unit_id=943&rehabilitation_day_id=2620&workout_id
INFO [console] [DIO] method: GET
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 649|1o24X8q8LnZFmkfKMznFk2HMvONTOtgwCXPB2Vsb1bd19550
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/exercises?unit_id=943&rehabilitation_day_id=2620&workout_id
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Mon, 17 Aug 2026 13:48:30 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-08-17T13:48:30.463455Z","request_id":"574cb330-2bca-4233-ac48-cd4adbc3369d","version":"v1"},"data":{"unit_id":943,"workout_duration_start":10,"workout_duration_end":20,"body_side":"right","exercises":[{"id":47,"sequence_number":1,"name":"Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQCHWY0J06QHXQ4P2BH5VD3A.png","by_body_side":"by_side","execution_order_type":"isolated","approaches_count":2,"execution_count":null,"execution_time":15,"instruction":{"exercise_name":"Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov","inventory":"Возвышенность (стул и т.п.)","warning":"Не допускайте разворота/заваливания поднятой ноги","general_description":"Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; \nстопа и колено поднятой ноги не должны \"заваливаться\" наружу (отсутствие ротации); \nнаклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; \nдыхание свободное, без задержек; \nощущение растяжения должно быть комфортным, без острой боли.","steps":[{"exercise_id":47,"sequence_number":1,"step_text":"Встаньте боком растягиваемой ноги к камере"},{"exercise_id":47,"sequence_number":2,"step_text":"Поставьте рабочую ногу на возвышенность, другая нога опорная"},{"exercise_id":47,"sequence_number":3,"step_text":"Держите спину прямой"},{"exercise_id":47,"sequence_number":4,"step_text":"Стопа поднятой ноги смотрит на себя"},{"exercise_id":47,"sequence_number":5,"step_text":"Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прямой спиной"},{"exercise_id":47,"sequence_number":6,"step_text":"В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время"}]}},{"id":35,"sequence_number":2,"name":"Сгибание и разгибание в голеностопных суставах","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png","by_body_side":"not_by_side","execution_order_type":null,"approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"Сгибание и разгибание в голеностопных суставах","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov","inventory":null,"warning":"Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх)","general_description":"Исходное положение - лёжа на спине боком к камере, ноги выпрямлены в коленях. Выполнять движения стопами на себя и от себя в максимально доступной амплитуде.","steps":[{"exercise_id":35,"sequence_number":1,"step_text":"Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере"},{"exercise_id":35,"sequence_number":2,"step_text":"Выпрямите обе ноги в коленях"},{"exercise_id":35,"sequence_number":3,"step_text":"Стопы расположите параллельно друг другу на ширине таза"},{"exercise_id":35,"sequence_number":4,"step_text":"Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости"},{"exercise_id":35,"sequence_number":5,"step_text":"Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами"},{"exercise_id":35,"sequence_number":6,"step_text":"На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области"},{"exercise_id":35,"sequence_number":7,"step_text":"От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на \"цыпочки\", ощущая напряжение в икрах"},{"exercise_id":35,"sequence_number":8,"step_text":"Движение должно быть ритмичным, без рывков, в спокойном темпе"}]}},{"id":40,"sequence_number":3,"name":"Круговые движения ногой - в и.п. лежа на спине","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png","by_body_side":"by_side","execution_order_type":"symmetric","approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"Круговые движения ногой - в и.п. лежа на спине","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQA5HTA1S14HGRG0J5HK6SYP.mov","inventory":null,"warning":"Не допускайте сильного напряжения или переразгиба в пояснице","general_description":"В и.п. лежа на спине. Ноги максимально выпрямлены в коленных суставах, стопы \"на себя\", выполнить движения по часовой стрелке, далее против часовой стрелки. Цель - тренировка четырехглавых мышц, абдукторов/аддукторов","steps":[{"exercise_id":40,"sequence_number":1,"step_text":"Лягте на спину, расположитесь боком рабочей ноги к камере"},{"exercise_id":40,"sequence_number":2,"step_text":"Руки расположите вдоль туловища ладонями вниз или в стороны для устойчивости"},{"exercise_id":40,"sequence_number":3,"step_text":"Ноги полностью выпрямите в коленных суставах"},{"exercise_id":40,"sequence_number":4,"step_text":"Стопы потяните на себя (тыльное сгибание в голеностопном суставе)"},{"exercise_id":40,"sequence_number":5,"step_text":"Поясницу прижмите к полу, живот слегка подтяните, чтобы избежать излишнего прогиба в пояснице"},{"exercise_id":40,"sequence_number":6,"step_text":"Начните выполнять круговое движение рабочей выпрямленной ногой. Нога в верхней точке должна подниматься на уровень 30°-45° градусов от пола"},{"exercise_id":40,"sequence_number":7,"step_text":"Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения"}]}},{"id":41,"sequence_number":4,"name":"Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png","by_body_side":"by_side","execution_order_type":"symmetric","approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQC6319HS0NS6B4PRV3WH9FT.mov","inventory":null,"warning":"Следить за тем, чтобы бедро не ротировалось (вращалось) наружу, носок стопы отведённой ноги должен “смотреть вверх”","general_description":"Спина относительно поверхности может находиться от 90 до 45 градусов к полу (например, упираясь не прямыми руками, а предплечьями, отклонившись больше назад). Приподнять прямую рабочую ногу от поверхности и отвести её в сторону на сколько возможно, не опуская ногу, и вернуться в исходное положение. Можно выполнять без пауз между повторениями. Цель – тренировка мышц абдукторов бедра.","steps":[{"exercise_id":41,"sequence_number":1,"step_text":"Сядьте на пол лицом к камере. Ноги выпрямите перед собой"},{"exercise_id":41,"sequence_number":2,"step_text":"Корпус отклоните назад. Спина должна находиться под углом от 90 до 45 градусов относительно пола. Для удобства и стабильности можно опираться не на прямые руки, а на предплечья, согнув руки в локтях"},{"exercise_id":41,"sequence_number":3,"step_text":"Приподнимите рабочую ногу на 5-10 см "},{"exercise_id":41,"sequence_number":4,"step_text":"На выдохе отведите рабочую ногу в сторону (наружу) на максимально возможную амплитуду, которую позволяет ваша подвижность и физическое состояние. Движение должно происходить за счёт работы мышц бедра"},{"exercise_id":41,"sequence_number":5,"step_text":"На вдохе так же плавно верните ногу в исходное положение (перед собой), но не кладите её на пол до окончания подхода. Нога остаётся на весу"},{"exercise_id":41,"sequence_number":6,"step_text":"Повторите движение ногой заданное количество раз"}]}},{"id":42,"sequence_number":5,"name":"Подъём прямой ноги в сторону - В и.п. лёжа на боку","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQC78495HZ7HDF3FGQ104G16.png","by_body_side":"by_side","execution_order_type":"isolated","approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"Подъём прямой ноги в сторону - В и.п. лёжа на боку","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQC78499GQQ5WEFZWRN07YFK.mov","inventory":null,"warning":"Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу","general_description":"Лёжа на боку отвести верхнюю ногу в сторону (поднять). Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу. Представьте, что вы лежите на боку и прижимаетесь спиной к стене, а далее скользите пяткой верхней ноги по стене вверх. Цель – тренировка мышц абдукторов/аддукторов бедра.","steps":[{"exercise_id":42,"sequence_number":1,"step_text":"Лягте на бок так, чтобы рабочая нога была сверху"},{"exercise_id":42,"sequence_number":2,"step_text":"Убедитесь, что вы лежите ровно. Голова может лежать на руке или на подушке"},{"exercise_id":42,"sequence_number":3,"step_text":"Нижнюю ногу слегка согните в колене и тазобедренном суставе для устойчивости"},{"exercise_id":42,"sequence_number":4,"step_text":"Верхнюю ногу полностью выпрямите. Она должна находиться строго над нижней ногой, образуя одну линию с туловищем"},{"exercise_id":42,"sequence_number":5,"step_text":"Положите верхнюю руку на талию или на матрас перед собой для равновесия"},{"exercise_id":42,"sequence_number":6,"step_text":"На выдохе: Медленно поднимите (отведите) прямую ногу вверх. Движение должно происходить строго в плоскости тела, как будто вы отводите ногу в сторону. Нога не должна сгибаться в тазобедренном суставе и отклоняться вперёд по направлению к животу или назад по направлению к спине"},{"exercise_id":42,"sequence_number":7,"step_text":"В верхней точке задержитесь на 1-2 секунды, сохраняя ногу прямой и чувствуя напряжение в боковой поверхности бедра и ягодице"},{"exercise_id":42,"sequence_number":8,"step_text":"На вдохе: Плавно, без рывка, опустите ногу в исходное положение. Старайтесь не класть ногу полностью на нижнюю, а остановитесь чуть выше, чтобы сохранить напряжение в мышцах"},{"exercise_id":42,"sequence_number":9,"step_text":"Повторите необходимое количество раз "}]}}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-08-17T13:48:30.463455Z, request_id: 574cb330-2bca-4233-ac48-cd4adbc3369d, version: v1}, data: {unit_id: 943, workout_duration_start: 10, workout_duration_end: 20, body_side: right, exercises: [{id: 47, sequence_number: 1, name: Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, image: https://rehabilitation.most.team/storage/exercise/photos/01KQCHWY0J06QHXQ4P2BH5VD3A.png, by_body_side: by_side, execution_order_type: isolated, approaches_count: 2, execution_count: null, execution_time: 15, instruction: {exercise_name: Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, video: https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov, inventory: Возвышенность (стул и т.п.), warning: Не допускайте разворота/заваливания поднятой ноги, general_description: Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка, ступенька). Корпус н
INFO [console] аклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; стопа и колено поднятой ноги не должны "заваливаться" наружу (отсутствие ротации); наклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; дыхание свободное, без задержек; ощущение растяжения должно быть комфортным, без острой боли., steps: [{exercise_id: 47, sequence_number: 1, step_text: Встаньте боком растягиваемой ноги к камере}, {exercise_id: 47, sequence_number: 2, step_text: Поставьте рабочую ногу на возвышенность, другая нога опорная}, {exercise_id: 47, sequence_number: 3, step_text: Держите спину прямой}, {exercise_id: 47, sequence_number: 4, step_text: Стопа поднятой ноги смотрит на себя}, {exercise_id: 47, sequence_number: 5, step_text: Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прямой спиной}, {exercise
INFO [console] _id: 47, sequence_number: 6, step_text: В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время}]}}, {id: 35, sequence_number: 2, name: Сгибание и разгибание в голеностопных суставах, image: https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png, by_body_side: not_by_side, execution_order_type: null, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: Сгибание и разгибание в голеностопных суставах, video: https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov, inventory: null, warning: Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх), general_description: Исходное положение - лёжа на спине боком к камере, ноги выпрямлены в коленях. Выполнять движения стопами на себя и от себя в максимально доступной
INFO [console] амплитуде., steps: [{exercise_id: 35, sequence_number: 1, step_text: Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере}, {exercise_id: 35, sequence_number: 2, step_text: Выпрямите обе ноги в коленях}, {exercise_id: 35, sequence_number: 3, step_text: Стопы расположите параллельно друг другу на ширине таза}, {exercise_id: 35, sequence_number: 4, step_text: Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости}, {exercise_id: 35, sequence_number: 5, step_text: Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами}, {exercise_id: 35, sequence_number: 6, step_text: На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области}, {exercise_id: 35, sequence_number: 7, step_text: От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание
INFO [console] ), как будто хотите встать на "цыпочки", ощущая напряжение в икрах}, {exercise_id: 35, sequence_number: 8, step_text: Движение должно быть ритмичным, без рывков, в спокойном темпе}]}}, {id: 40, sequence_number: 3, name: Круговые движения ногой - в и.п. лежа на спине, image: https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: Круговые движения ногой - в и.п. лежа на спине, video: https://rehabilitation.most.team/storage/exercise/videos/01KQA5HTA1S14HGRG0J5HK6SYP.mov, inventory: null, warning: Не допускайте сильного напряжения или переразгиба в пояснице, general_description: В и.п. лежа на спине. Ноги максимально выпрямлены в коленных суставах, стопы "на себя", выполнить движения по часовой стрелке, далее против часовой стрелки. Цель - тренировка четырехглавых мышц, абдукторов/аддукторов, steps: [{exercise
INFO [console] _id: 40, sequence_number: 1, step_text: Лягте на спину, расположитесь боком рабочей ноги к камере}, {exercise_id: 40, sequence_number: 2, step_text: Руки расположите вдоль туловища ладонями вниз или в стороны для устойчивости}, {exercise_id: 40, sequence_number: 3, step_text: Ноги полностью выпрямите в коленных суставах}, {exercise_id: 40, sequence_number: 4, step_text: Стопы потяните на себя (тыльное сгибание в голеностопном суставе)}, {exercise_id: 40, sequence_number: 5, step_text: Поясницу прижмите к полу, живот слегка подтяните, чтобы избежать излишнего прогиба в пояснице}, {exercise_id: 40, sequence_number: 6, step_text: Начните выполнять круговое движение рабочей выпрямленной ногой. Нога в верхней точке должна подниматься на уровень 30°-45° градусов от пола}, {exercise_id: 40, sequence_number: 7, step_text: Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения}]}}, {id: 41, sequence_number: 4, name: Отведение прямой ноги в сторону - В и.
INFO [console] п. сидя с прямыми ногами с опорой руками назад за спиной, image: https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, video: https://rehabilitation.most.team/storage/exercise/videos/01KQC6319HS0NS6B4PRV3WH9FT.mov, inventory: null, warning: Следить за тем, чтобы бедро не ротировалось (вращалось) наружу, носок стопы отведённой ноги должен “смотреть вверх”, general_description: Спина относительно поверхности может находиться от 90 до 45 градусов к полу (например, упираясь не прямыми руками, а предплечьями, отклонившись больше назад). Приподнять прямую рабочую ногу от поверхности и отвести её в сторону на сколько возможно, не опуская ногу, и вернуться в исходное положение. Можно выполнять без пауз между повторениям
INFO [console] и. Цель – тренировка мышц абдукторов бедра., steps: [{exercise_id: 41, sequence_number: 1, step_text: Сядьте на пол лицом к камере. Ноги выпрямите перед собой}, {exercise_id: 41, sequence_number: 2, step_text: Корпус отклоните назад. Спина должна находиться под углом от 90 до 45 градусов относительно пола. Для удобства и стабильности можно опираться не на прямые руки, а на предплечья, согнув руки в локтях}, {exercise_id: 41, sequence_number: 3, step_text: Приподнимите рабочую ногу на 5-10 см }, {exercise_id: 41, sequence_number: 4, step_text: На выдохе отведите рабочую ногу в сторону (наружу) на максимально возможную амплитуду, которую позволяет ваша подвижность и физическое состояние. Движение должно происходить за счёт работы мышц бедра}, {exercise_id: 41, sequence_number: 5, step_text: На вдохе так же плавно верните ногу в исходное положение (перед собой), но не кладите её на пол до окончания подхода. Нога остаётся на весу}, {exercise_id: 41, sequence_number: 6, step_text: Повторите
INFO [console] движение ногой заданное количество раз}]}}, {id: 42, sequence_number: 5, name: Подъём прямой ноги в сторону - В и.п. лёжа на боку, image: https://rehabilitation.most.team/storage/exercise/photos/01KQC78495HZ7HDF3FGQ104G16.png, by_body_side: by_side, execution_order_type: isolated, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: Подъём прямой ноги в сторону - В и.п. лёжа на боку, video: https://rehabilitation.most.team/storage/exercise/videos/01KQC78499GQQ5WEFZWRN07YFK.mov, inventory: null, warning: Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу, general_description: Лёжа на боку отвести верхнюю ногу в сторону (поднять). Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу. Представьте, что вы лежите на боку и прижимаетесь спиной к стене, а далее скользите пяткой верхней ноги по стене вверх. Цель – тренировка мышц абдукторов/аддукторов бедра., steps: [{exercise_id: 42, sequence_n
INFO [console] umber: 1, step_text: Лягте на бок так, чтобы рабочая нога была сверху}, {exercise_id: 42, sequence_number: 2, step_text: Убедитесь, что вы лежите ровно. Голова может лежать на руке или на подушке}, {exercise_id: 42, sequence_number: 3, step_text: Нижнюю ногу слегка согните в колене и тазобедренном суставе для устойчивости}, {exercise_id: 42, sequence_number: 4, step_text: Верхнюю ногу полностью выпрямите. Она должна находиться строго над нижней ногой, образуя одну линию с туловищем}, {exercise_id: 42, sequence_number: 5, step_text: Положите верхнюю руку на талию или на матрас перед собой для равновесия}, {exercise_id: 42, sequence_number: 6, step_text: На выдохе: Медленно поднимите (отведите) прямую ногу вверх. Движение должно происходить строго в плоскости тела, как будто вы отводите ногу в сторону. Нога не должна сгибаться в тазобедренном суставе и отклоняться вперёд по направлению к животу или назад по направлению к спине}, {exercise_id: 42, sequence_number: 7, step_text: В верхней
INFO [console] точке задержитесь на 1-2 секунды, сохраняя ногу прямой и чувствуя напряжение в боковой поверхности бедра и ягодице}, {exercise_id: 42, sequence_number: 8, step_text: На вдохе: Плавно, без рывка, опустите ногу в исходное положение. Старайтесь не класть ногу полностью на нижнюю, а остановитесь чуть выше, чтобы сохранить напряжение в мышцах}, {exercise_id: 42, sequence_number: 9, step_text: Повторите необходимое количество раз }]}}]}}
$
250 строкUTF-8LIVE