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

rehabapp_2026-09-28_11-28-09

Подключение…
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 814|4DEbOOtwznlUR3oZX717GyUt23LD3u0cxaiTi8Nw991ea634
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-09-28&end_date=2026-11-01
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, 28 Sep 2026 08:29:44 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-09-28T08:29:44.649941Z","request_id":"d43b15f4-fd15-4894-a71f-2e9f745dfb3f","version":"v1"},"data":{"start_rehab":"2026-09-24 00:00:00","end_rehab":"2026-10-01 00:00:00","days":[{"date":"2026-09-28","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-09-28","status":["first_control"],"training":[{"mode":"screening_test","status":"not_done","progress":null}]},{"date":"2026-09-30","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null},{"mode":"diagnostics","status":"not_done","progress":null}]},{"date":"2026-10-01","status":["first_control","end"],"training":[{"mode":"screening_test","status":"not_done","progress":null}]},{"date":"2026-10-01","status":["end"],"training":[]}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-28T08:29:44.649941Z, request_id: d43b15f4-fd15-4894-a71f-2e9f745dfb3f, version: v1}, data: {start_rehab: 2026-09-24 00:00:00, end_rehab: 2026-10-01 00:00:00, days: [{date: 2026-09-28, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-09-28, status: [first_control], training: [{mode: screening_test, status: not_done, progress: null}]}, {date: 2026-09-30, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}, {mode: diagnostics, status: not_done, progress: null}]}, {date: 2026-10-01, status: [first_control, end], training: [{mode: screening_test, status: not_done, progress: null}]}, {date: 2026-10-01, 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-10-01
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 814|4DEbOOtwznlUR3oZX717GyUt23LD3u0cxaiTi8Nw991ea634
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-10-01
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, 28 Sep 2026 08:29:44 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-09-28T08:29:44.770343Z","request_id":"8414f160-50d4-455e-a2ee-9eecc135e3c4","version":"v1"},"data":{"rehabilitation_day_id":3455,"phase_id":438,"diagnosis_rehab":"Для проверки фаза","start_rehab":"2026-09-24 00:00:00","end_rehab":"2026-10-01 00:00:00","name_rehab_phase":"Проверочная фаза 2","status":["end"],"recommendations_count":2,"date":"2026-10-01","training":[]}}
INFO [console] [DIO]
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-08-31&end_date=2026-10-04
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 814|4DEbOOtwznlUR3oZX717GyUt23LD3u0cxaiTi8Nw991ea634
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-08-31&end_date=2026-10-04
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, 28 Sep 2026 08:29:48 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-09-28T08:29:48.410994Z","request_id":"876e9a2b-5437-4866-b111-b6192aa6e254","version":"v1"},"data":{"start_rehab":"2026-09-24 00:00:00","end_rehab":"2026-10-01 00:00:00","days":[{"date":"2026-09-24","status":["start"],"training":[{"mode":"correction_unit","status":"not_done","progress":null},{"mode":"diagnostics","status":"not_done","progress":null}]},{"date":"2026-09-25","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-09-28","status":["first_control"],"training":[{"mode":"screening_test","status":"not_done","progress":null}]},{"date":"2026-09-28","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-09-30","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null},{"mode":"diagnostics","status":"not_done","progress":null}]},{"date":"2026-10-01","status":["first_control","end"],"training":[{"mode":"screening_test","status":"not_done","progress":null}]},{"date":"2026-10-01","status":["end"],"training":[]}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-28T08:29:48.410994Z, request_id: 876e9a2b-5437-4866-b111-b6192aa6e254, version: v1}, data: {start_rehab: 2026-09-24 00:00:00, end_rehab: 2026-10-01 00:00:00, days: [{date: 2026-09-24, status: [start], training: [{mode: correction_unit, status: not_done, progress: null}, {mode: diagnostics, status: not_done, progress: null}]}, {date: 2026-09-25, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-09-28, status: [first_control], training: [{mode: screening_test, status: not_done, progress: null}]}, {date: 2026-09-28, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-09-30, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}, {mode: diagnostics, status: not_done, progress: null}]}, {date: 2026-10-01, status: [first_control, end], training: [{mode: screening_test, status: not_done, progress: null}]}, {da
INFO [console] te: 2026-10-01, 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-09-30
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 814|4DEbOOtwznlUR3oZX717GyUt23LD3u0cxaiTi8Nw991ea634
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-09-30
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, 28 Sep 2026 08:29:48 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-09-28T08:29:48.579538Z","request_id":"169e33b9-0cb6-4e0c-b7e9-fb1731847b2f","version":"v1"},"data":{"rehabilitation_day_id":3452,"phase_id":438,"diagnosis_rehab":"Для проверки фаза","start_rehab":"2026-09-24 00:00:00","end_rehab":"2026-10-01 00:00:00","name_rehab_phase":"Проверочная фаза 2","status":["none"],"recommendations_count":2,"date":"2026-09-30","training":[{"mode":"correction_unit","status":"not_done","progress":null,"unit_id":1279,"time":"10 - 20 мин","count_questions":2,"status_questions":false,"workout_id":null},{"mode":"diagnostics","status":"not_done","progress":null,"unit_id":1276,"time":"10 - 20 мин","count_questions":null,"status_questions":false,"workout_id":null}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-28T08:29:48.579538Z, request_id: 169e33b9-0cb6-4e0c-b7e9-fb1731847b2f, version: v1}, data: {rehabilitation_day_id: 3452, phase_id: 438, diagnosis_rehab: Для проверки фаза, start_rehab: 2026-09-24 00:00:00, end_rehab: 2026-10-01 00:00:00, name_rehab_phase: Проверочная фаза 2, status: [none], recommendations_count: 2, date: 2026-09-30, training: [{mode: correction_unit, status: not_done, progress: null, unit_id: 1279, time: 10 - 20 мин, count_questions: 2, status_questions: false, workout_id: null}, {mode: diagnostics, status: not_done, progress: null, unit_id: 1276, time: 10 - 20 мин, count_questions: null, status_questions: false, workout_id: null}]}}
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-09-28
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 814|4DEbOOtwznlUR3oZX717GyUt23LD3u0cxaiTi8Nw991ea634
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-09-28
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, 28 Sep 2026 08:29:51 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-09-28T08:29:51.265085Z","request_id":"e6cd8533-5bd5-4b23-8ea5-7cb51e264855","version":"v1"},"data":{"rehabilitation_day_id":3451,"phase_id":437,"diagnosis_rehab":"Для проверки фаза","start_rehab":"2026-09-24 00:00:00","end_rehab":"2026-10-01 00:00:00","name_rehab_phase":"Фаза для проверки фазы","status":["none"],"recommendations_count":2,"date":"2026-09-28","training":[{"mode":"correction_unit","status":"not_done","progress":null,"unit_id":1277,"time":"10 - 20 мин","count_questions":2,"status_questions":false,"workout_id":null}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-28T08:29:51.265085Z, request_id: e6cd8533-5bd5-4b23-8ea5-7cb51e264855, version: v1}, data: {rehabilitation_day_id: 3451, phase_id: 437, diagnosis_rehab: Для проверки фаза, start_rehab: 2026-09-24 00:00:00, end_rehab: 2026-10-01 00:00:00, name_rehab_phase: Фаза для проверки фазы, status: [none], recommendations_count: 2, date: 2026-09-28, training: [{mode: correction_unit, status: not_done, progress: null, unit_id: 1277, time: 10 - 20 мин, count_questions: 2, status_questions: false, workout_id: null}]}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/exercises?unit_id=1277&rehabilitation_day_id=3451&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 814|4DEbOOtwznlUR3oZX717GyUt23LD3u0cxaiTi8Nw991ea634
INFO [console] [DIO] data:
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/exercises?unit_id=1277&rehabilitation_day_id=3451&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, 28 Sep 2026 08:29:51 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-09-28T08:29:51.872708Z","request_id":"242e7411-4456-4cab-bfff-103782cacdb9","version":"v1"},"data":{"unit_id":1277,"workout_duration_start":10,"workout_duration_end":20,"body_side":"right","exercises":[{"id":41,"sequence_number":1,"name":"[OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png","by_body_side":"by_side","execution_order_type":"symmetric","approaches_count":1,"execution_count":1,"execution_time":null,"instruction":{"exercise_name":"[OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной","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":"Повторите движение ногой заданное количество раз"}],"measurement":null}},{"id":35,"sequence_number":2,"name":"[OLD]Сгибание и разгибание в голеностопных суставах","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png","by_body_side":"not_by_side","execution_order_type":null,"approaches_count":1,"execution_count":1,"execution_time":null,"instruction":{"exercise_name":"[OLD]Сгибание и разгибание в голеностопных суставах","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":"Движение должно быть ритмичным, без рывков, в спокойном темпе"}],"measurement":null}}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-28T08:29:51.872708Z, request_id: 242e7411-4456-4cab-bfff-103782cacdb9, version: v1}, data: {unit_id: 1277, workout_duration_start: 10, workout_duration_end: 20, body_side: right, exercises: [{id: 41, sequence_number: 1, name: [OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, image: https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 1, execution_count: 1, execution_time: null, instruction: {exercise_name: [OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, video: https://rehabilitation.most.team/storage/exercise/videos/01KQC6319HS0NS6B4PRV3WH9FT.mov, inventory: null, warning: Следить за тем, чтобы бедро не ротировалось (вращалось) наружу, носок стопы отведённой ноги должен “смотреть вверх”, general_description: Спина отно
INFO [console] сительно поверхности может находиться от 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: На выдохе отведите рабочую ногу в сторону (наружу) на максимально возможную амплитуду, которую позволяет ваша подвижнос
INFO [console] ть и физическое состояние. Движение должно происходить за счёт работы мышц бедра}, {exercise_id: 41, sequence_number: 5, step_text: На вдохе так же плавно верните ногу в исходное положение (перед собой), но не кладите её на пол до окончания подхода. Нога остаётся на весу}, {exercise_id: 41, sequence_number: 6, step_text: Повторите движение ногой заданное количество раз}], measurement: null}}, {id: 35, sequence_number: 2, name: [OLD]Сгибание и разгибание в голеностопных суставах, image: https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png, by_body_side: not_by_side, execution_order_type: null, approaches_count: 1, execution_count: 1, execution_time: null, instruction: {exercise_name: [OLD]Сгибание и разгибание в голеностопных суставах, video: https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov, inventory: null, warning: Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь
INFO [console] или наружу (большой палец направлен строго вверх), 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: На себя: Плавно потяните носки стоп максимально на себя (тыльное
INFO [console] сгибание), ощущая растяжение в задней поверхности голени и подколенной области}, {exercise_id: 35, sequence_number: 7, step_text: От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на "цыпочки", ощущая напряжение в икрах}, {exercise_id: 35, sequence_number: 8, step_text: Движение должно быть ритмичным, без рывков, в спокойном темпе}], measurement: null}}]}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/workout/reschedule/available-days?rehabilitation_day_id=3451
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 814|4DEbOOtwznlUR3oZX717GyUt23LD3u0cxaiTi8Nw991ea634
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/workout/reschedule/available-days?rehabilitation_day_id=3451
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, 28 Sep 2026 08:29:53 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-09-28T08:29:53.200220Z","request_id":"fe13b3c9-ce18-4d71-8eec-7c2d42150c98","version":"v1"},"data":{"selected_day_id":3451,"phase_id":437,"week_start_sequence_regarding_phase":1,"week_end_sequence_regarding_phase":7,"days":[{"id":3447,"date":"2026-09-24","phase_id":437,"day_sequence_number_regarding_rehab":1,"day_sequence_number_regarding_phase":1,"status":["start"],"training":[{"mode":"correction_unit","status":"not_done","progress":null},{"mode":"diagnostics","status":"not_done","progress":null}],"available":false},{"id":3448,"date":"2026-09-25","phase_id":437,"day_sequence_number_regarding_rehab":2,"day_sequence_number_regarding_phase":2,"status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}],"available":false},{"id":null,"date":"2026-09-26","phase_id":437,"day_sequence_number_regarding_rehab":3,"day_sequence_number_regarding_phase":3,"status":["none"],"training":[],"available":false},{"id":null,"date":"2026-09-27","phase_id":437,"day_sequence_number_regarding_rehab":4,"day_sequence_number_regarding_phase":4,"status":["none"],"training":[],"available":false},{"id":3456,"date":"2026-09-28","phase_id":437,"day_sequence_number_regarding_rehab":5,"day_sequence_number_regarding_phase":5,"status":["first_control"],"training":[{"mode":"screening_test","status":"not_done","progress":null}],"available":false}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-28T08:29:53.200220Z, request_id: fe13b3c9-ce18-4d71-8eec-7c2d42150c98, version: v1}, data: {selected_day_id: 3451, phase_id: 437, week_start_sequence_regarding_phase: 1, week_end_sequence_regarding_phase: 7, days: [{id: 3447, date: 2026-09-24, phase_id: 437, day_sequence_number_regarding_rehab: 1, day_sequence_number_regarding_phase: 1, status: [start], training: [{mode: correction_unit, status: not_done, progress: null}, {mode: diagnostics, status: not_done, progress: null}], available: false}, {id: 3448, date: 2026-09-25, phase_id: 437, day_sequence_number_regarding_rehab: 2, day_sequence_number_regarding_phase: 2, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}], available: false}, {id: null, date: 2026-09-26, phase_id: 437, day_sequence_number_regarding_rehab: 3, day_sequence_number_regarding_phase: 3, status: [none], training: [], available: false}, {id: null, date: 2026-09-27, phase_id:
INFO [console] 437, day_sequence_number_regarding_rehab: 4, day_sequence_number_regarding_phase: 4, status: [none], training: [], available: false}, {id: 3456, date: 2026-09-28, phase_id: 437, day_sequence_number_regarding_rehab: 5, day_sequence_number_regarding_phase: 5, status: [first_control], training: [{mode: screening_test, status: not_done, progress: null}], available: false}]}}
ERROR [widgets library] RangeError (length): Invalid value: Not in inclusive range 0..4: 5
RangeError (length): Invalid value: Not in inclusive range 0..4: 5
#0      _RescheduleTrainingBottomSheetState.build.<anonymous closure>.<anonymous closure> (package:testapp/features/training/presentation/pages/reschedule_training_bottom_sheet.dart)
#1      new _GrowableList.generate (dart:core-patch/growable_array.dart:140)
#2      _RescheduleTrainingBottomSheetState.build.<anonymous closure> (package:testapp/features/training/presentation/pages/reschedule_training_bottom_sheet.dart:66)
#3      BlocBuilder.build (package:flutter_bloc/src/bloc_builder.dart:91)
#4      _BlocBuilderBaseState.build (package:flutter_bloc/src/bloc_builder.dart:188)
#5      StatefulElement.build (package:flutter/src/widgets/framework.dart:5944)
#6      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5830)
#7      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#8      Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#9      StatefulElement.update (package:flutter/src/widgets/framework.dart:6020)
#10     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#11     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#12     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#13     ProxyElement.update (package:flutter/src/widgets/framework.dart:6162)
#14     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#15     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7135)
#16     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#17     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#18     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#19     StatelessElement.update (package:flutter/src/widgets/framework.dart:5908)
#20     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#21     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#22     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#23     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#24     StatefulElement.update (package:flutter/src/widgets/framework.dart:6020)
#25     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#26     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#27     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#28     ProxyElement.update (package:flutter/src/widgets/framework.dart:6162)
#29     _InheritedProviderScopeElement.update (package:provider/src/inherited_provider.dart:536)
#30     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#31     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#32     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#33     StatelessElement.update (package:flutter/src/widgets/framework.dart:5908)
#34     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#35     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#36     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#37     StatelessElement.update (package:flutter/src/widgets/framework.dart:5908)
#38     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#39     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7135)
#40     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#41     Element.updateChildren (package:flutter/src/widgets/framework.dart:4204)
#42     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7308)
#43     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#44     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#45     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#46     ProxyElement.update (package:flutter/src/widgets/framework.dart:6162)
#47     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#48     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#49     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#50     ProxyElement.update (package:flutter/src/widgets/framework.dart:6162)
#51     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#52     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#53     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#54     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#55     StatefulElement.update (package:flutter/src/widgets/framework.dart:6020)
#56     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#57     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7135)
#58     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#59     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#60     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#61     ProxyElement.update (package:flutter/src/widgets/framework.dart:6162)
#62     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#63     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7135)
#64     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#65     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#66     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#67     StatelessElement.update (package:flutter/src/widgets/framework.dart:5908)
#68     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#69     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7135)
#70     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#71     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#72     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#73     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#74     StatefulElement.update (package:flutter/src/widgets/framework.dart:6020)
#75     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#76     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#77     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#78     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#79     StatefulElement.update (package:flutter/src/widgets/framework.dart:6020)
#80     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#81     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7135)
#82     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#83     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7135)
#84     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#85     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7135)
#86     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#87     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#88     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#89     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#90     StatefulElement.update (package:flutter/src/widgets/framework.dart:6020)
#91     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#92     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#93     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#94     StatelessElement.update (package:flutter/src/widgets/framework.dart:5908)
#95     Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#96     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#97     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#98     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#99     BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2763)
#100    BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2820)
#101    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3124)
#102    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1571)
#103    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:558)
#104    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1430)
#105    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1345)
#106    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1198)
#107    _rootRun (dart:async/zone_root.dart:35)
#108    _CustomZone.run (dart:async/zone.dart:810)
#109    _CustomZone.runGuarded (dart:async/zone.dart:702)
#110    _invoke (dart:ui/hooks.dart:443)
#111    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:450)
#112    _drawFrame (dart:ui/hooks.dart:413)
$
250 строкUTF-8LIVE