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

rehabapp_2026-10-06_14-40-17

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
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-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: Tue, 06 Oct 2026 12:16:46 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-06T12:16:46.289536Z","request_id":"2d3759d2-d20b-48df-abd9-82b040df5f66","version":"v1"},"data":{"rehabilitation_day_id":3803,"phase_id":484,"diagnosis_rehab":"Тест скрининг","start_rehab":"2026-10-01 00:00:00","end_rehab":"2026-10-07 00:00:00","name_rehab_phase":"Проверка скрининга","status":["first_control"],"recommendations_count":1,"date":"2026-10-06","training":[{"mode":"screening_test","status":"not_done","progress":null,"unit_id":1413,"time":"10 - 20 мин","count_questions":1,"status_questions":false,"workout_id":null}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-06T12:16:46.289536Z, request_id: 2d3759d2-d20b-48df-abd9-82b040df5f66, version: v1}, data: {rehabilitation_day_id: 3803, phase_id: 484, diagnosis_rehab: Тест скрининг, start_rehab: 2026-10-01 00:00:00, end_rehab: 2026-10-07 00:00:00, name_rehab_phase: Проверка скрининга, status: [first_control], recommendations_count: 1, date: 2026-10-06, training: [{mode: screening_test, status: not_done, progress: null, unit_id: 1413, time: 10 - 20 мин, count_questions: 1, status_questions: false, workout_id: null}]}}
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/exercises?unit_id=1413&rehabilitation_day_id=3803&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 875|t6nCr6dVVno1lwvRW9Btbpon5OfRYFdhlT4fIEDmcdf02a67
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/workout/exercises?unit_id=1413&rehabilitation_day_id=3803&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: Tue, 06 Oct 2026 12:16:47 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-06T12:16:47.209191Z","request_id":"b6efdcec-953b-4f23-ab0d-ea8bb477a929","version":"v1"},"data":{"unit_id":1413,"workout_duration_start":10,"workout_duration_end":20,"body_side":"right","exercises":[{"id":101,"sequence_number":1,"name":"Тест скрининг","image":"https://rehabilitation.most.team/storage/exercise/photos/01M31YCJW3RQPCZCECRBEYH726.png","by_body_side":"by_side","execution_order_type":"symmetric","approaches_count":1,"execution_count":null,"execution_time":15,"instruction":{"exercise_name":"Тест скрининг","video":"https://rehabilitation.most.team/storage/exercise/videos/01M31YCJW5APG6WCD26WF9N82P.mov","inventory":"Сантиметровая лента","warning":"Вы можете чувствовать легкий дискомфорт или терпимую боль в колене, если боль стала умеренной, то прекратите выполнение упражнение или уменьшите угол сгибания. ","general_description":"В исходном положении лежа на спине максимально согните рабочую ногу, подводя пятку к ягодице ","steps":[{"exercise_id":101,"sequence_number":1,"step_text":"Лягте на твердую и ровную поверхность. Вы должны быть повернутым боком рабочей ноги к камере (рабочая нога - та, которую вы будете сгибать)."},{"exercise_id":101,"sequence_number":2,"step_text":"Руки разместите в удобном положении, которое обеспечивает устойчивость. "},{"exercise_id":101,"sequence_number":3,"step_text":"Если рабочая нога является оперированной/поврежденной, то вы можете согнуть здоровую ногу для большей устойчивости в пояснице. "},{"exercise_id":101,"sequence_number":4,"step_text":"Сгибайте колено рабочей ноги до тех пор, пока не почувствуете лёгкое натяжение или терпимый дискомфорт в передней или внутренней части колена. Острой боли быть не должно."},{"exercise_id":101,"sequence_number":5,"step_text":"Удерживайте максимальное согнутое положение в колене, пятка на полу и близится к ягодице. При этом не задерживайте дыхание."}],"measurement":{"id":2,"instruction":"В данном упражнении вам необходимо будет произвести замер расстояния от пятки до ягодицы по каждой ноге. Сначала вы выполните подход на здоровую ногу. Вы можете измерить расстояние непосредственно во время удержания максимально согнутого положения (когда пятка на полу) или сразу после подхода, не меняя позы. Измерьте сантиметровой лентой расстояние от пятки до ягодичной складки и запишите полученное значение в сантиметрах. Затем выполните подход на повреждённую ногу и точно так же измерьте и запишите расстояние для неё. Если вы не можете измерить самостоятельно, попросите помощника.","hint":"Введите расстояние от пятки до ягодицы для той ноги, на которой вы только что выполнили подход. Значение укажите в сантиметрах.","images":[{"sequence_number":1,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG29W6PN3HA3XKXP6V61.jpg"},{"sequence_number":2,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG2T3Z9E6QSEG4K7C9DX.jpg"},{"sequence_number":3,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG394DPZWHGQVT00T6KF.jpg"},{"sequence_number":4,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG42104B574E44151R1F.jpg"},{"sequence_number":5,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG4KEYPS478655JYJVRW.jpg"},{"sequence_number":6,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG5BENSWPRJQDN1422VB.jpg"},{"sequence_number":7,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG5TYZSFNG1AJ75VF33Y.jpg"},{"sequence_number":8,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG6AETX91V9S07091WCX.jpg"},{"sequence_number":9,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG6R4M0Y1NYEM94W363H.jpg"},{"sequence_number":10,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG7GCARJZQ7YEMAX1Y12.jpg"}]}}}],"screening_inventory":[{"id":45,"name":"штанга"},{"id":46,"name":"штанга"},{"id":47,"name":"гантель"},{"id":48,"name":"мяч"},{"id":49,"name":"коврик"},{"id":50,"name":"ракетка"},{"id":51,"name":"фитнес резина"},{"id":52,"name":"кроссовки"},{"id":53,"name":"пиво"},{"id":54,"name":"телефон"}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-06T12:16:47.209191Z, request_id: b6efdcec-953b-4f23-ab0d-ea8bb477a929, version: v1}, data: {unit_id: 1413, workout_duration_start: 10, workout_duration_end: 20, body_side: right, exercises: [{id: 101, sequence_number: 1, name: Тест скрининг, image: https://rehabilitation.most.team/storage/exercise/photos/01M31YCJW3RQPCZCECRBEYH726.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 1, execution_count: null, execution_time: 15, instruction: {exercise_name: Тест скрининг, video: https://rehabilitation.most.team/storage/exercise/videos/01M31YCJW5APG6WCD26WF9N82P.mov, inventory: Сантиметровая лента, warning: Вы можете чувствовать легкий дискомфорт или терпимую боль в колене, если боль стала умеренной, то прекратите выполнение упражнение или уменьшите угол сгибания. , general_description: В исходном положении лежа на спине максимально согните рабочую ногу, подводя пятку к ягодице , steps: [{exercise_id: 101
INFO [console] , sequence_number: 1, step_text: Лягте на твердую и ровную поверхность. Вы должны быть повернутым боком рабочей ноги к камере (рабочая нога - та, которую вы будете сгибать).}, {exercise_id: 101, sequence_number: 2, step_text: Руки разместите в удобном положении, которое обеспечивает устойчивость. }, {exercise_id: 101, sequence_number: 3, step_text: Если рабочая нога является оперированной/поврежденной, то вы можете согнуть здоровую ногу для большей устойчивости в пояснице. }, {exercise_id: 101, sequence_number: 4, step_text: Сгибайте колено рабочей ноги до тех пор, пока не почувствуете лёгкое натяжение или терпимый дискомфорт в передней или внутренней части колена. Острой боли быть не должно.}, {exercise_id: 101, sequence_number: 5, step_text: Удерживайте максимальное согнутое положение в колене, пятка на полу и близится к ягодице. При этом не задерживайте дыхание.}], measurement: {id: 2, instruction: В данном упражнении вам необходимо будет произвести замер расстояния от пятки до ягод
INFO [console] ицы по каждой ноге. Сначала вы выполните подход на здоровую ногу. Вы можете измерить расстояние непосредственно во время удержания максимально согнутого положения (когда пятка на полу) или сразу после подхода, не меняя позы. Измерьте сантиметровой лентой расстояние от пятки до ягодичной складки и запишите полученное значение в сантиметрах. Затем выполните подход на повреждённую ногу и точно так же измерьте и запишите расстояние для неё. Если вы не можете измерить самостоятельно, попросите помощника., hint: Введите расстояние от пятки до ягодицы для той ноги, на которой вы только что выполнили подход. Значение укажите в сантиметрах., images: [{sequence_number: 1, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG29W6PN3HA3XKXP6V61.jpg}, {sequence_number: 2, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG2T3Z9E6QSEG4K7C9DX.jpg}, {sequence_number: 3, image_url: https://rehabilitation.most.team/storage/exercise/
INFO [console] measurement-photos/01M48HWG394DPZWHGQVT00T6KF.jpg}, {sequence_number: 4, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG42104B574E44151R1F.jpg}, {sequence_number: 5, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG4KEYPS478655JYJVRW.jpg}, {sequence_number: 6, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG5BENSWPRJQDN1422VB.jpg}, {sequence_number: 7, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG5TYZSFNG1AJ75VF33Y.jpg}, {sequence_number: 8, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG6AETX91V9S07091WCX.jpg}, {sequence_number: 9, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG6R4M0Y1NYEM94W363H.jpg}, {sequence_number: 10, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG7GCARJZQ7YEMAX1Y12.jpg}]}}}], scre
INFO [console] ening_inventory: [{id: 45, name: штанга}, {id: 46, name: штанга}, {id: 47, name: гантель}, {id: 48, name: мяч}, {id: 49, name: коврик}, {id: 50, name: ракетка}, {id: 51, name: фитнес резина}, {id: 52, name: кроссовки}, {id: 53, name: пиво}, {id: 54, name: телефон}]}}
FATAL [zone] Unhandled asynchronous error
Invalid argument(s): A value must be provided. Supported values: left, right, not_specified
#0      $enumDecode (package:json_annotation/src/enum_helpers.dart:70)
#1      _$WorkoutExerciseMeasurementImageDtoFromJson (package:testapp/features/training/models/dto/workout/workout_exercise_measurement_image_dto.g.dart:12)
#2      new WorkoutExerciseMeasurementImageDto.fromJson (package:testapp/features/training/models/dto/workout/workout_exercise_measurement_image_dto.dart:18)
#3      _$WorkoutExerciseMeasurementDtoFromJson.<anonymous closure> (package:testapp/features/training/models/dto/workout/workout_exercise_measurement_dto.g.dart:17)
#4      MappedIterable.elementAt (dart:_internal/iterable.dart:403)
#5      ListIterator.moveNext (dart:_internal/iterable.dart:372)
#6      new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:194)
#7      new _GrowableList.of (dart:core-patch/growable_array.dart:154)
#8      new List.of (dart:core-patch/array_patch.dart:39)
#9      SetBase.toList (dart:collection/set.dart:119)
#10     _$WorkoutExerciseMeasurementDtoFromJson (package:testapp/features/training/models/dto/workout/workout_exercise_measurement_dto.g.dart:21)
#11     new WorkoutExerciseMeasurementDto.fromJson (package:testapp/features/training/models/dto/workout/workout_exercise_measurement_dto.dart:22)
#12     _$InstructionDtoFromJson (package:testapp/features/training/models/dto/workout/instruction_dto.g.dart:21)
#13     new InstructionDto.fromJson (package:testapp/features/training/models/dto/workout/instruction_dto.dart:28)
#14     _$InfoExerciseDtoFromJson (package:testapp/features/training/models/dto/workout/info_exercise_dto.g.dart:23)
#15     new InfoExerciseDto.fromJson (package:testapp/features/training/models/dto/workout/info_exercise_dto.dart:35)
#16     _$WorkoutDtoFromJson.<anonymous closure> (package:testapp/features/training/models/dto/workout/workout_dto.g.dart:15)
#17     MappedIterable.elementAt (dart:_internal/iterable.dart:403)
#18     ListIterator.moveNext (dart:_internal/iterable.dart:372)
#19     new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:194)
#20     new _GrowableList.of (dart:core-patch/growable_array.dart:154)
#21     new List.of (dart:core-patch/array_patch.dart:39)
#22     SetBase.toList (dart:collection/set.dart:119)
#23     _$WorkoutDtoFromJson (package:testapp/features/training/models/dto/workout/workout_dto.g.dart:16)
#24     new WorkoutDto.fromJson (package:testapp/features/training/models/dto/workout/workout_dto.dart:24)
#25     WorkoutRepositoryImpl.getWorkoutDay.<anonymous closure> (package:testapp/features/training/data/repository/workout_repository_impl.dart:48)
#26     _$nullableGenericFromJson (package:testapp/core/data/models/response/response_api.g.dart:38)
#27     _$ResponseApiFromJson (package:testapp/core/data/models/response/response_api.g.dart:14)
#28     new ResponseApi.fromJson (package:testapp/core/data/models/response/response_api.dart:27)
#29     BaseRepository.apiCall (package:testapp/core/data/repository/base_repository.dart:29)
<asynchronous suspension>
#30     WorkoutRepositoryImpl.getWorkoutDay (package:testapp/features/training/data/repository/workout_repository_impl.dart:40)
<asynchronous suspension>
#31     WorkoutDayCubit.loadWorkoutDay (package:testapp/features/training/presentation/bloc/workout_day/workout_day_cubit.dart:29)
<asynchronous suspension>
INFO [console] Request query: {start_date: 2026-09-28, end_date: 2026-11-01}
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-09-28&end_date=2026-11-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 875|t6nCr6dVVno1lwvRW9Btbpon5OfRYFdhlT4fIEDmcdf02a67
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: Tue, 06 Oct 2026 12:16:49 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-06T12:16:49.177228Z","request_id":"b9418a34-cb96-4190-b700-c91ef02452c9","version":"v1"},"data":{"start_rehab":"2026-10-01 00:00:00","end_rehab":"2026-10-07 00:00:00","days":[{"date":"2026-10-01","status":["start"],"training":[{"mode":"correction_unit","status":"not_done","progress":null},{"mode":"diagnostics","status":"not_done","progress":null}]},{"date":"2026-10-02","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-10-05","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-10-06","status":["first_control"],"training":[{"mode":"screening_test","status":"not_done","progress":null}]},{"date":"2026-10-07","status":["end"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-06T12:16:49.177228Z, request_id: b9418a34-cb96-4190-b700-c91ef02452c9, version: v1}, data: {start_rehab: 2026-10-01 00:00:00, end_rehab: 2026-10-07 00:00:00, days: [{date: 2026-10-01, status: [start], training: [{mode: correction_unit, status: not_done, progress: null}, {mode: diagnostics, status: not_done, progress: null}]}, {date: 2026-10-02, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-10-05, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-10-06, status: [first_control], training: [{mode: screening_test, status: not_done, progress: null}]}, {date: 2026-10-07, status: [end], training: [{mode: correction_unit, status: not_done, progress: null}]}]}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/day?date=2026-10-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 875|t6nCr6dVVno1lwvRW9Btbpon5OfRYFdhlT4fIEDmcdf02a67
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] shrinkOffset: 0.0, progress: 0.0
INFO [console] shrinkOffset: 0.0, progress: 0.0
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/day?date=2026-10-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: Tue, 06 Oct 2026 12:16:49 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-06T12:16:49.281626Z","request_id":"821208ee-9ce7-4b1a-8a40-0b42e47f29c6","version":"v1"},"data":{"rehabilitation_day_id":3803,"phase_id":484,"diagnosis_rehab":"Тест скрининг","start_rehab":"2026-10-01 00:00:00","end_rehab":"2026-10-07 00:00:00","name_rehab_phase":"Проверка скрининга","status":["first_control"],"recommendations_count":1,"date":"2026-10-06","training":[{"mode":"screening_test","status":"not_done","progress":null,"unit_id":1413,"time":"10 - 20 мин","count_questions":1,"status_questions":false,"workout_id":null}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-06T12:16:49.281626Z, request_id: 821208ee-9ce7-4b1a-8a40-0b42e47f29c6, version: v1}, data: {rehabilitation_day_id: 3803, phase_id: 484, diagnosis_rehab: Тест скрининг, start_rehab: 2026-10-01 00:00:00, end_rehab: 2026-10-07 00:00:00, name_rehab_phase: Проверка скрининга, status: [first_control], recommendations_count: 1, date: 2026-10-06, training: [{mode: screening_test, status: not_done, progress: null, unit_id: 1413, time: 10 - 20 мин, count_questions: 1, status_questions: false, workout_id: null}]}}
INFO [console] shrinkOffset: 65.63352272727269, progress: 0.3309614440078583
INFO [console] shrinkOffset: 96.32315340909082, progress: 0.48571596676489803
INFO [console] shrinkOffset: 135.04900568181807, progress: 0.6809936763261291
INFO [console] shrinkOffset: 256.4155844155844, progress: 1.0
INFO [console] shrinkOffset: 256.4155844155844, progress: 1.0
INFO [console] [DIO] *** Request ***
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] 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 875|t6nCr6dVVno1lwvRW9Btbpon5OfRYFdhlT4fIEDmcdf02a67
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: Tue, 06 Oct 2026 12:27:08 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-06T12:27:08.817756Z","request_id":"9ee94ab7-8a29-461a-a582-d19a975575cb","version":"v1"},"data":{"start_rehab":"2026-10-01 00:00:00","end_rehab":"2026-10-07 00:00:00","days":[{"date":"2026-10-01","status":["start"],"training":[{"mode":"correction_unit","status":"not_done","progress":null},{"mode":"diagnostics","status":"not_done","progress":null}]},{"date":"2026-10-02","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-10-05","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-10-06","status":["first_control"],"training":[{"mode":"screening_test","status":"not_done","progress":null}]},{"date":"2026-10-07","status":["end"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-06T12:27:08.817756Z, request_id: 9ee94ab7-8a29-461a-a582-d19a975575cb, version: v1}, data: {start_rehab: 2026-10-01 00:00:00, end_rehab: 2026-10-07 00:00:00, days: [{date: 2026-10-01, status: [start], training: [{mode: correction_unit, status: not_done, progress: null}, {mode: diagnostics, status: not_done, progress: null}]}, {date: 2026-10-02, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-10-05, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-10-06, status: [first_control], training: [{mode: screening_test, status: not_done, progress: null}]}, {date: 2026-10-07, status: [end], training: [{mode: correction_unit, status: not_done, progress: null}]}]}}
INFO [console] shrinkOffset: 256.4155844155844, progress: 1.0
INFO [console] shrinkOffset: 256.4155844155844, progress: 1.0
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/day?date=2026-10-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 875|t6nCr6dVVno1lwvRW9Btbpon5OfRYFdhlT4fIEDmcdf02a67
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-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: Tue, 06 Oct 2026 12:27:08 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-06T12:27:08.939652Z","request_id":"a9098aab-f7ef-496a-9289-d8dde2d78bcb","version":"v1"},"data":{"rehabilitation_day_id":3803,"phase_id":484,"diagnosis_rehab":"Тест скрининг","start_rehab":"2026-10-01 00:00:00","end_rehab":"2026-10-07 00:00:00","name_rehab_phase":"Проверка скрининга","status":["first_control"],"recommendations_count":1,"date":"2026-10-06","training":[{"mode":"screening_test","status":"not_done","progress":null,"unit_id":1413,"time":"10 - 20 мин","count_questions":1,"status_questions":false,"workout_id":null}]}}
INFO [console] [DIO]
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/exercises?unit_id=1413&rehabilitation_day_id=3803&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 875|t6nCr6dVVno1lwvRW9Btbpon5OfRYFdhlT4fIEDmcdf02a67
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/workout/exercises?unit_id=1413&rehabilitation_day_id=3803&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: Tue, 06 Oct 2026 12:27:34 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-06T12:27:34.674622Z","request_id":"2513c1c4-62ee-4c85-93a8-998a50aa29d7","version":"v1"},"data":{"unit_id":1413,"workout_duration_start":10,"workout_duration_end":20,"body_side":"right","exercises":[{"id":101,"sequence_number":1,"name":"Тест скрининг","image":"https://rehabilitation.most.team/storage/exercise/photos/01M31YCJW3RQPCZCECRBEYH726.png","by_body_side":"by_side","execution_order_type":"symmetric","approaches_count":1,"execution_count":null,"execution_time":15,"instruction":{"exercise_name":"Тест скрининг","video":"https://rehabilitation.most.team/storage/exercise/videos/01M31YCJW5APG6WCD26WF9N82P.mov","inventory":"Сантиметровая лента","warning":"Вы можете чувствовать легкий дискомфорт или терпимую боль в колене, если боль стала умеренной, то прекратите выполнение упражнение или уменьшите угол сгибания. ","general_description":"В исходном положении лежа на спине максимально согните рабочую ногу, подводя пятку к ягодице ","steps":[{"exercise_id":101,"sequence_number":1,"step_text":"Лягте на твердую и ровную поверхность. Вы должны быть повернутым боком рабочей ноги к камере (рабочая нога - та, которую вы будете сгибать)."},{"exercise_id":101,"sequence_number":2,"step_text":"Руки разместите в удобном положении, которое обеспечивает устойчивость. "},{"exercise_id":101,"sequence_number":3,"step_text":"Если рабочая нога является оперированной/поврежденной, то вы можете согнуть здоровую ногу для большей устойчивости в пояснице. "},{"exercise_id":101,"sequence_number":4,"step_text":"Сгибайте колено рабочей ноги до тех пор, пока не почувствуете лёгкое натяжение или терпимый дискомфорт в передней или внутренней части колена. Острой боли быть не должно."},{"exercise_id":101,"sequence_number":5,"step_text":"Удерживайте максимальное согнутое положение в колене, пятка на полу и близится к ягодице. При этом не задерживайте дыхание."}],"measurement":{"id":2,"instruction":"В данном упражнении вам необходимо будет произвести замер расстояния от пятки до ягодицы по каждой ноге. Сначала вы выполните подход на здоровую ногу. Вы можете измерить расстояние непосредственно во время удержания максимально согнутого положения (когда пятка на полу) или сразу после подхода, не меняя позы. Измерьте сантиметровой лентой расстояние от пятки до ягодичной складки и запишите полученное значение в сантиметрах. Затем выполните подход на повреждённую ногу и точно так же измерьте и запишите расстояние для неё. Если вы не можете измерить самостоятельно, попросите помощника.","hint":"Введите расстояние от пятки до ягодицы для той ноги, на которой вы только что выполнили подход. Значение укажите в сантиметрах.","images":[{"sequence_number":1,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG29W6PN3HA3XKXP6V61.jpg"},{"sequence_number":2,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG2T3Z9E6QSEG4K7C9DX.jpg"},{"sequence_number":3,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG394DPZWHGQVT00T6KF.jpg"},{"sequence_number":4,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG42104B574E44151R1F.jpg"},{"sequence_number":5,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG4KEYPS478655JYJVRW.jpg"},{"sequence_number":6,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG5BENSWPRJQDN1422VB.jpg"},{"sequence_number":7,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG5TYZSFNG1AJ75VF33Y.jpg"},{"sequence_number":8,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG6AETX91V9S07091WCX.jpg"},{"sequence_number":9,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG6R4M0Y1NYEM94W363H.jpg"},{"sequence_number":10,"image_url":"https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG7GCARJZQ7YEMAX1Y12.jpg"}]}}}],"screening_inventory":[{"id":45,"name":"штанга"},{"id":46,"name":"штанга"},{"id":47,"name":"гантель"},{"id":48,"name":"мяч"},{"id":49,"name":"коврик"},{"id":50,"name":"ракетка"},{"id":51,"name":"фитнес резина"},{"id":52,"name":"кроссовки"},{"id":53,"name":"пиво"},{"id":54,"name":"телефон"}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-10-06T12:27:34.674622Z, request_id: 2513c1c4-62ee-4c85-93a8-998a50aa29d7, version: v1}, data: {unit_id: 1413, workout_duration_start: 10, workout_duration_end: 20, body_side: right, exercises: [{id: 101, sequence_number: 1, name: Тест скрининг, image: https://rehabilitation.most.team/storage/exercise/photos/01M31YCJW3RQPCZCECRBEYH726.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 1, execution_count: null, execution_time: 15, instruction: {exercise_name: Тест скрининг, video: https://rehabilitation.most.team/storage/exercise/videos/01M31YCJW5APG6WCD26WF9N82P.mov, inventory: Сантиметровая лента, warning: Вы можете чувствовать легкий дискомфорт или терпимую боль в колене, если боль стала умеренной, то прекратите выполнение упражнение или уменьшите угол сгибания. , general_description: В исходном положении лежа на спине максимально согните рабочую ногу, подводя пятку к ягодице , steps: [{exercise_id: 101
INFO [console] , sequence_number: 1, step_text: Лягте на твердую и ровную поверхность. Вы должны быть повернутым боком рабочей ноги к камере (рабочая нога - та, которую вы будете сгибать).}, {exercise_id: 101, sequence_number: 2, step_text: Руки разместите в удобном положении, которое обеспечивает устойчивость. }, {exercise_id: 101, sequence_number: 3, step_text: Если рабочая нога является оперированной/поврежденной, то вы можете согнуть здоровую ногу для большей устойчивости в пояснице. }, {exercise_id: 101, sequence_number: 4, step_text: Сгибайте колено рабочей ноги до тех пор, пока не почувствуете лёгкое натяжение или терпимый дискомфорт в передней или внутренней части колена. Острой боли быть не должно.}, {exercise_id: 101, sequence_number: 5, step_text: Удерживайте максимальное согнутое положение в колене, пятка на полу и близится к ягодице. При этом не задерживайте дыхание.}], measurement: {id: 2, instruction: В данном упражнении вам необходимо будет произвести замер расстояния от пятки до ягод
INFO [console] ицы по каждой ноге. Сначала вы выполните подход на здоровую ногу. Вы можете измерить расстояние непосредственно во время удержания максимально согнутого положения (когда пятка на полу) или сразу после подхода, не меняя позы. Измерьте сантиметровой лентой расстояние от пятки до ягодичной складки и запишите полученное значение в сантиметрах. Затем выполните подход на повреждённую ногу и точно так же измерьте и запишите расстояние для неё. Если вы не можете измерить самостоятельно, попросите помощника., hint: Введите расстояние от пятки до ягодицы для той ноги, на которой вы только что выполнили подход. Значение укажите в сантиметрах., images: [{sequence_number: 1, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG29W6PN3HA3XKXP6V61.jpg}, {sequence_number: 2, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG2T3Z9E6QSEG4K7C9DX.jpg}, {sequence_number: 3, image_url: https://rehabilitation.most.team/storage/exercise/
INFO [console] measurement-photos/01M48HWG394DPZWHGQVT00T6KF.jpg}, {sequence_number: 4, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG42104B574E44151R1F.jpg}, {sequence_number: 5, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG4KEYPS478655JYJVRW.jpg}, {sequence_number: 6, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG5BENSWPRJQDN1422VB.jpg}, {sequence_number: 7, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG5TYZSFNG1AJ75VF33Y.jpg}, {sequence_number: 8, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG6AETX91V9S07091WCX.jpg}, {sequence_number: 9, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG6R4M0Y1NYEM94W363H.jpg}, {sequence_number: 10, image_url: https://rehabilitation.most.team/storage/exercise/measurement-photos/01M48HWG7GCARJZQ7YEMAX1Y12.jpg}]}}}], scre
INFO [console] ening_inventory: [{id: 45, name: штанга}, {id: 46, name: штанга}, {id: 47, name: гантель}, {id: 48, name: мяч}, {id: 49, name: коврик}, {id: 50, name: ракетка}, {id: 51, name: фитнес резина}, {id: 52, name: кроссовки}, {id: 53, name: пиво}, {id: 54, name: телефон}]}}
FATAL [zone] Unhandled asynchronous error
Invalid argument(s): A value must be provided. Supported values: left, right, not_specified
#0      $enumDecode (package:json_annotation/src/enum_helpers.dart:70)
#1      _$WorkoutExerciseMeasurementImageDtoFromJson (package:testapp/features/training/models/dto/workout/workout_exercise_measurement_image_dto.g.dart:12)
#2      new WorkoutExerciseMeasurementImageDto.fromJson (package:testapp/features/training/models/dto/workout/workout_exercise_measurement_image_dto.dart:18)
#3      _$WorkoutExerciseMeasurementDtoFromJson.<anonymous closure> (package:testapp/features/training/models/dto/workout/workout_exercise_measurement_dto.g.dart:17)
#4      MappedIterable.elementAt (dart:_internal/iterable.dart:403)
#5      ListIterator.moveNext (dart:_internal/iterable.dart:372)
#6      new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:194)
#7      new _GrowableList.of (dart:core-patch/growable_array.dart:154)
#8      new List.of (dart:core-patch/array_patch.dart:39)
#9      SetBase.toList (dart:collection/set.dart:119)
#10     _$WorkoutExerciseMeasurementDtoFromJson (package:testapp/features/training/models/dto/workout/workout_exercise_measurement_dto.g.dart:21)
#11     new WorkoutExerciseMeasurementDto.fromJson (package:testapp/features/training/models/dto/workout/workout_exercise_measurement_dto.dart:22)
#12     _$InstructionDtoFromJson (package:testapp/features/training/models/dto/workout/instruction_dto.g.dart:21)
#13     new InstructionDto.fromJson (package:testapp/features/training/models/dto/workout/instruction_dto.dart:28)
#14     _$InfoExerciseDtoFromJson (package:testapp/features/training/models/dto/workout/info_exercise_dto.g.dart:23)
#15     new InfoExerciseDto.fromJson (package:testapp/features/training/models/dto/workout/info_exercise_dto.dart:35)
#16     _$WorkoutDtoFromJson.<anonymous closure> (package:testapp/features/training/models/dto/workout/workout_dto.g.dart:15)
#17     MappedIterable.elementAt (dart:_internal/iterable.dart:403)
#18     ListIterator.moveNext (dart:_internal/iterable.dart:372)
#19     new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:194)
#20     new _GrowableList.of (dart:core-patch/growable_array.dart:154)
#21     new List.of (dart:core-patch/array_patch.dart:39)
#22     SetBase.toList (dart:collection/set.dart:119)
#23     _$WorkoutDtoFromJson (package:testapp/features/training/models/dto/workout/workout_dto.g.dart:16)
#24     new WorkoutDto.fromJson (package:testapp/features/training/models/dto/workout/workout_dto.dart:24)
#25     WorkoutRepositoryImpl.getWorkoutDay.<anonymous closure> (package:testapp/features/training/data/repository/workout_repository_impl.dart:48)
#26     _$nullableGenericFromJson (package:testapp/core/data/models/response/response_api.g.dart:38)
#27     _$ResponseApiFromJson (package:testapp/core/data/models/response/response_api.g.dart:14)
#28     new ResponseApi.fromJson (package:testapp/core/data/models/response/response_api.dart:27)
#29     BaseRepository.apiCall (package:testapp/core/data/repository/base_repository.dart:29)
<asynchronous suspension>
#30     WorkoutRepositoryImpl.getWorkoutDay (package:testapp/features/training/data/repository/workout_repository_impl.dart:40)
<asynchronous suspension>
#31     WorkoutDayCubit.loadWorkoutDay (package:testapp/features/training/presentation/bloc/workout_day/workout_day_cubit.dart:29)
<asynchronous suspension>
$
250 строкUTF-8LIVE