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

rehabapp_2026-10-09_09-28-52

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
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 908|Lte1GAim2agsOdC18cRxIg49hJ8qRTeTsClRbZaX5fdaf941
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/statistics/days/4261
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: Fri, 09 Oct 2026 06:30:22 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-10-09T06:30:22.904304Z","request_id":"435b1a53-149d-4430-9fe2-6ce2ee80ab14","version":"v1"},"data":{"rehabilitation_day_id":4261,"day_sequence_number":8,"date":"2026-09-27","score":null,"interpretation":"excellent","is_control_day":false,"questionnaire":{"questionnaire_result_id":null,"count_questions":1},"workout":{"unit_id":1600,"workout_id":222,"status":"completed","score":null,"interpretation":"excellent","workout_duration_start":10,"workout_duration_end":20,"exercises_count":3,"exercises":[{"id":35,"exercise_result_id":544,"sequence_number":1,"name":"[OLD]Сгибание и разгибание в голеностопных суставах","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png","completion_status":"completed","score":88,"interpretation":"excellent","is_monitored":true,"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}},{"id":40,"exercise_result_id":545,"sequence_number":2,"name":"[OLD]Круговые движения ногой - в и.п. лежа на спине","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png","completion_status":"completed","score":95,"interpretation":"excellent","is_monitored":true,"instruction":{"exercise_name":"[OLD]Круговые движения ногой - в и.п. лежа на спине","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":"Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения"}],"measurement":null}},{"id":47,"exercise_result_id":546,"sequence_number":3,"name":"[OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQCHWY0J06QHXQ4P2BH5VD3A.png","completion_status":"completed","score":90,"interpretation":"excellent","is_monitored":true,"instruction":{"exercise_name":"[OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","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":"В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время"}],"measurement":null}}]}}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-09T06:30:22.904304Z, request_id: 435b1a53-149d-4430-9fe2-6ce2ee80ab14, version: v1}, data: {rehabilitation_day_id: 4261, day_sequence_number: 8, date: 2026-09-27, score: null, interpretation: excellent, is_control_day: false, questionnaire: {questionnaire_result_id: null, count_questions: 1}, workout: {unit_id: 1600, workout_id: 222, status: completed, score: null, interpretation: excellent, workout_duration_start: 10, workout_duration_end: 20, exercises_count: 3, exercises: [{id: 35, exercise_result_id: 544, sequence_number: 1, name: [OLD]Сгибание и разгибание в голеностопных суставах, image: https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png, completion_status: completed, score: 88, interpretation: excellent, is_monitored: true, instruction: {exercise_name: [OLD]Сгибание и разгибание в голеностопных суставах, video: https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7H
INFO [console] F5YSZY9E.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: Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновреме
INFO [console] нное движение стопами}, {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}}, {id: 40, exercise_result_id: 545, sequence_number: 2, name: [OLD]Круговые движения ногой - в и.п. лежа на спине, image: https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png, completion_status: completed, score: 95, interpretation: excellent, is_monitored: true, instruction: {exercise_name: [OLD]Круговые движения ногой - в и.п. лежа на спине, video: https://rehabilitation.most.team/storage/exercise/vi
INFO [console] deos/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
INFO [console] : 6, step_text: Начните выполнять круговое движение рабочей выпрямленной ногой. Нога в верхней точке должна подниматься на уровень 30°-45° градусов от пола}, {exercise_id: 40, sequence_number: 7, step_text: Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения}], measurement: null}}, {id: 47, exercise_result_id: 546, sequence_number: 3, name: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, image: https://rehabilitation.most.team/storage/exercise/photos/01KQCHWY0J06QHXQ4P2BH5VD3A.png, completion_status: completed, score: 90, interpretation: excellent, is_monitored: true, instruction: {exercise_name: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, 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: Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не
INFO [console] обязательно обхватить стопу, а максимально растянуться с прямой спиной}, {exercise_id: 47, sequence_number: 6, step_text: В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время}], measurement: null}}]}}}
ERROR [widgets library] Null check operator used on a null value
Null check operator used on a null value
#0      TotalResultWorkout.build (package:testapp/features/training/presentation/widgets/total_result_workout.dart:25)
#1      StatelessElement.build (package:flutter/src/widgets/framework.dart:5902)
#2      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5830)
#3      Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#4      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#5      ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#6      Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#7      MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7277)
#8      MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7292)
#9      Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#10     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#11     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7128)
#12     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#13     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#14     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7128)
#15     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#16     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#17     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7128)
#18     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#19     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#20     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7128)
#21     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#22     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#23     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7128)
#24     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#25     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#26     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7128)
#27     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#28     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#29     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#30     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#31     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#32     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#33     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5986)
#34     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#35     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#36     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#37     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7128)
#38     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#39     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#40     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#41     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#42     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#43     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#44     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#45     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#46     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7128)
#47     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#48     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#49     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#50     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#51     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#52     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#53     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#54     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#55     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7128)
#56     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#57     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#58     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7128)
#59     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#60     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#61     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#62     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#63     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#64     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#65     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5986)
#66     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#67     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#68     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#69     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#70     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#71     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#72     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#73     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#74     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#75     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7128)
#76     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#77     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#78     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#79     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#80     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#81     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#82     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5986)
#83     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#84     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#85     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#86     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#87     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#88     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#89     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#90     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#91     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#92     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#93     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#94     Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#95     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#96     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5986)
#97     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#98     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#99     Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#100    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#101    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#102    Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#103    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#104    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5986)
#105    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#106    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#107    Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#108    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#109    Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#110    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#111    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#112    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#113    Element.updateChild (package:flutter/src/widgets/framework.dart:4072)
#114    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#115    Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#116    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5812)
#117    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5806)
#118    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4600)
#119    Element.updateChild (package:flutter/src/widgets/framework.dart:4066)
#120    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#121    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#122    Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#123    StatefulElement.update (package:flutter/src/widgets/framework.dart:6020)
#124    Element.updateChild (package:flutter/src/widgets/framework.dart:4050)
#125    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5854)
#126    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5995)
#127    Element.rebuild (package:flutter/src/widgets/framework.dart:5542)
#128    BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2763)
#129    BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2820)
#130    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3124)
#131    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1571)
#132    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:558)
#133    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1430)
#134    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1345)
#135    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1198)
#136    _rootRun (dart:async/zone_root.dart:35)
#137    _CustomZone.run (dart:async/zone.dart:810)
#138    _CustomZone.runGuarded (dart:async/zone.dart:702)
#139    _invoke (dart:ui/hooks.dart:443)
#140    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:450)
#141    _drawFrame (dart:ui/hooks.dart:413)
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/week/2
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 908|Lte1GAim2agsOdC18cRxIg49hJ8qRTeTsClRbZaX5fdaf941
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/statistics/week/2
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: Fri, 09 Oct 2026 06:30: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] {"success":true,"meta":{"timestamp":"2026-10-09T06:30:26.332623Z","request_id":"904a6c80-e96d-4087-b9a1-d260bb1425f0","version":"v1"},"data":{"rehabilitation_name":"Для статы","rehabilitation_week_number":2,"title":"2 неделя","is_control_week":false,"average_score":61.3,"average_interpretation":"satisfactory","days":[{"rehabilitation_day_id":4264,"day_sequence_number":13,"date":"2026-10-02","score":null,"interpretation":null,"is_control_day":false},{"rehabilitation_day_id":4263,"day_sequence_number":11,"date":"2026-09-30","score":null,"interpretation":null,"is_control_day":false},{"rehabilitation_day_id":4262,"day_sequence_number":9,"date":"2026-09-28","score":null,"interpretation":null,"is_control_day":false},{"rehabilitation_day_id":4261,"day_sequence_number":8,"date":"2026-09-27","score":null,"interpretation":null,"is_control_day":false}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-09T06:30:26.332623Z, request_id: 904a6c80-e96d-4087-b9a1-d260bb1425f0, version: v1}, data: {rehabilitation_name: Для статы, rehabilitation_week_number: 2, title: 2 неделя, is_control_week: false, average_score: 61.3, average_interpretation: satisfactory, days: [{rehabilitation_day_id: 4264, day_sequence_number: 13, date: 2026-10-02, score: null, interpretation: null, is_control_day: false}, {rehabilitation_day_id: 4263, day_sequence_number: 11, date: 2026-09-30, score: null, interpretation: null, is_control_day: false}, {rehabilitation_day_id: 4262, day_sequence_number: 9, date: 2026-09-28, score: null, interpretation: null, is_control_day: false}, {rehabilitation_day_id: 4261, day_sequence_number: 8, date: 2026-09-27, score: null, interpretation: null, is_control_day: false}]}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/week/1
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 908|Lte1GAim2agsOdC18cRxIg49hJ8qRTeTsClRbZaX5fdaf941
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/statistics/week/1
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: Fri, 09 Oct 2026 06:30:27 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-10-09T06:30:27.763969Z","request_id":"19ab6626-f3e0-4269-8111-13454c467c9b","version":"v1"},"data":{"rehabilitation_name":"Для статы","rehabilitation_week_number":1,"title":"1 неделя","is_control_week":false,"average_score":45.3,"average_interpretation":"satisfactory","days":[{"rehabilitation_day_id":4260,"day_sequence_number":6,"date":"2026-09-25","score":null,"interpretation":null,"is_control_day":false},{"rehabilitation_day_id":4259,"day_sequence_number":4,"date":"2026-09-23","score":null,"interpretation":null,"is_control_day":false},{"rehabilitation_day_id":4258,"day_sequence_number":2,"date":"2026-09-21","score":null,"interpretation":null,"is_control_day":false},{"rehabilitation_day_id":4257,"day_sequence_number":1,"date":"2026-09-20","score":null,"interpretation":null,"is_control_day":false}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-09T06:30:27.763969Z, request_id: 19ab6626-f3e0-4269-8111-13454c467c9b, version: v1}, data: {rehabilitation_name: Для статы, rehabilitation_week_number: 1, title: 1 неделя, is_control_week: false, average_score: 45.3, average_interpretation: satisfactory, days: [{rehabilitation_day_id: 4260, day_sequence_number: 6, date: 2026-09-25, score: null, interpretation: null, is_control_day: false}, {rehabilitation_day_id: 4259, day_sequence_number: 4, date: 2026-09-23, score: null, interpretation: null, is_control_day: false}, {rehabilitation_day_id: 4258, day_sequence_number: 2, date: 2026-09-21, score: null, interpretation: null, is_control_day: false}, {rehabilitation_day_id: 4257, day_sequence_number: 1, date: 2026-09-20, score: null, interpretation: null, is_control_day: false}]}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/week/3
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 908|Lte1GAim2agsOdC18cRxIg49hJ8qRTeTsClRbZaX5fdaf941
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/statistics/week/3
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: Fri, 09 Oct 2026 06:30:29 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-10-09T06:30:29.678244Z","request_id":"4a21306a-1025-4b8b-8f6c-d63562580a03","version":"v1"},"data":{"rehabilitation_name":"Для статы","rehabilitation_week_number":3,"title":"3 неделя - Контрольная неделя","is_control_week":true,"average_score":null,"average_interpretation":null,"days":[{"rehabilitation_day_id":4269,"day_sequence_number":21,"date":"2026-10-10","score":null,"interpretation":null,"is_control_day":false},{"rehabilitation_day_id":4268,"day_sequence_number":20,"date":"2026-10-09","score":null,"interpretation":null,"is_control_day":true},{"rehabilitation_day_id":4267,"day_sequence_number":18,"date":"2026-10-07","score":null,"interpretation":null,"is_control_day":false},{"rehabilitation_day_id":4266,"day_sequence_number":16,"date":"2026-10-05","score":null,"interpretation":null,"is_control_day":false},{"rehabilitation_day_id":4265,"day_sequence_number":15,"date":"2026-10-04","score":null,"interpretation":null,"is_control_day":false}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-09T06:30:29.678244Z, request_id: 4a21306a-1025-4b8b-8f6c-d63562580a03, version: v1}, data: {rehabilitation_name: Для статы, rehabilitation_week_number: 3, title: 3 неделя - Контрольная неделя, is_control_week: true, average_score: null, average_interpretation: null, days: [{rehabilitation_day_id: 4269, day_sequence_number: 21, date: 2026-10-10, score: null, interpretation: null, is_control_day: false}, {rehabilitation_day_id: 4268, day_sequence_number: 20, date: 2026-10-09, score: null, interpretation: null, is_control_day: true}, {rehabilitation_day_id: 4267, day_sequence_number: 18, date: 2026-10-07, score: null, interpretation: null, is_control_day: false}, {rehabilitation_day_id: 4266, day_sequence_number: 16, date: 2026-10-05, score: null, interpretation: null, is_control_day: false}, {rehabilitation_day_id: 4265, day_sequence_number: 15, date: 2026-10-04, score: null, interpretation: null, is_control_day: false}]}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/exercises/list
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 908|Lte1GAim2agsOdC18cRxIg49hJ8qRTeTsClRbZaX5fdaf941
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/statistics/exercises/list
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: Fri, 09 Oct 2026 06:30:31 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-10-09T06:30:31.710910Z","request_id":"88d87029-ef84-41a9-b15a-0c285996b19f","version":"v1"},"data":[{"id":35,"name":"[OLD]Сгибание и разгибание в голеностопных суставах"},{"id":40,"name":"[OLD]Круговые движения ногой - в и.п. лежа на спине"},{"id":47,"name":"[OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге"}]}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-09T06:30:31.710910Z, request_id: 88d87029-ef84-41a9-b15a-0c285996b19f, version: v1}, data: [{id: 35, name: [OLD]Сгибание и разгибание в голеностопных суставах}, {id: 40, name: [OLD]Круговые движения ногой - в и.п. лежа на спине}, {id: 47, name: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге}]}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/exercises/47
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 908|Lte1GAim2agsOdC18cRxIg49hJ8qRTeTsClRbZaX5fdaf941
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/statistics/exercises/47
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: Fri, 09 Oct 2026 06:30:32 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-10-09T06:30:32.853292Z","request_id":"6c7faeb8-afbd-4f6a-b28c-4ebd0f4eb59b","version":"v1"},"data":{"exercise":{"id":47,"name":"[OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге"},"average_score":60.7,"phases":[{"phase_sequence_number":1,"phase_name":"Первая фаза","weeks":[{"phase_week_number":1,"rehabilitation_week_number":1,"score":59.7,"interpretation":"satisfactory","phase_score":59.7,"phase_score_interpretation":"satisfactory","is_control_week":false},{"phase_week_number":2,"rehabilitation_week_number":2,"score":67.3,"interpretation":"good","phase_score":67.3,"phase_score_interpretation":"good","is_control_week":false},{"phase_week_number":3,"rehabilitation_week_number":3,"score":55,"interpretation":"satisfactory","phase_score":55,"phase_score_interpretation":"satisfactory","is_control_week":true}]}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-09T06:30:32.853292Z, request_id: 6c7faeb8-afbd-4f6a-b28c-4ebd0f4eb59b, version: v1}, data: {exercise: {id: 47, name: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге}, average_score: 60.7, phases: [{phase_sequence_number: 1, phase_name: Первая фаза, weeks: [{phase_week_number: 1, rehabilitation_week_number: 1, score: 59.7, interpretation: satisfactory, phase_score: 59.7, phase_score_interpretation: satisfactory, is_control_week: false}, {phase_week_number: 2, rehabilitation_week_number: 2, score: 67.3, interpretation: good, phase_score: 67.3, phase_score_interpretation: good, is_control_week: false}, {phase_week_number: 3, rehabilitation_week_number: 3, score: 55, interpretation: satisfactory, phase_score: 55, phase_score_interpretation: satisfactory, is_control_week: true}]}]}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/exercises/47/weeks/3/videos
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 908|Lte1GAim2agsOdC18cRxIg49hJ8qRTeTsClRbZaX5fdaf941
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/statistics/exercises/47/weeks/3/videos
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: Fri, 09 Oct 2026 06:30:50 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-10-09T06:30:50.169969Z","request_id":"828bfa5e-77f0-474e-9093-1309e9e0ea95","version":"v1"},"data":{"exercise":{"id":47,"name":"[OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге"},"rehabilitation_week_number":3,"score":47.5,"interpretation":"satisfactory","videos":[]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-09T06:30:50.169969Z, request_id: 828bfa5e-77f0-474e-9093-1309e9e0ea95, version: v1}, data: {exercise: {id: 47, name: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге}, rehabilitation_week_number: 3, score: 47.5, interpretation: satisfactory, videos: []}}
$
250 строкUTF-8LIVE