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

rehabapp_2026-09-22_16-08-56

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Tue, 22 Sep 2026 13:08:58 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-22T13:08:58.902493Z","request_id":"e162a588-4ced-4b07-bee2-498469bcf0df","version":"v1"},"data":{"rehabilitation_name":"Проверка упражнений","rehabilitation_start_date":"2026-09-21","rehabilitation_end_date":"2026-10-18","rehabilitation_weeks_count":4,"quality":{"average_score":null,"phases":[{"phase_sequence_number":1,"phase_name":"Проверка упражнений","weeks":[{"phase_week_number":1,"score":null,"rehabilitation_week_number":1,"is_control_week":false},{"phase_week_number":2,"score":null,"rehabilitation_week_number":2,"is_control_week":false},{"phase_week_number":3,"score":null,"rehabilitation_week_number":3,"is_control_week":false},{"phase_week_number":4,"score":null,"rehabilitation_week_number":4,"is_control_week":true}]}]},"activity":{"average_score":null,"phases":[{"phase_sequence_number":1,"phase_name":"Проверка упражнений","weeks":[{"phase_week_number":1,"score":null,"rehabilitation_week_number":1,"is_control_week":false},{"phase_week_number":2,"score":null,"rehabilitation_week_number":2,"is_control_week":false},{"phase_week_number":3,"score":null,"rehabilitation_week_number":3,"is_control_week":false},{"phase_week_number":4,"score":null,"rehabilitation_week_number":4,"is_control_week":true}]}]}}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T13:08:58.902493Z, request_id: e162a588-4ced-4b07-bee2-498469bcf0df, version: v1}, data: {rehabilitation_name: Проверка упражнений, rehabilitation_start_date: 2026-09-21, rehabilitation_end_date: 2026-10-18, rehabilitation_weeks_count: 4, quality: {average_score: null, phases: [{phase_sequence_number: 1, phase_name: Проверка упражнений, weeks: [{phase_week_number: 1, score: null, rehabilitation_week_number: 1, is_control_week: false}, {phase_week_number: 2, score: null, rehabilitation_week_number: 2, is_control_week: false}, {phase_week_number: 3, score: null, rehabilitation_week_number: 3, is_control_week: false}, {phase_week_number: 4, score: null, rehabilitation_week_number: 4, is_control_week: true}]}]}, activity: {average_score: null, phases: [{phase_sequence_number: 1, phase_name: Проверка упражнений, weeks: [{phase_week_number: 1, score: null, rehabilitation_week_number: 1, is_control_week: false}, {phase_week_number: 2
INFO [console] , score: null, rehabilitation_week_number: 2, is_control_week: false}, {phase_week_number: 3, score: null, rehabilitation_week_number: 3, is_control_week: false}, {phase_week_number: 4, score: null, rehabilitation_week_number: 4, is_control_week: true}]}]}}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/user/save-client-push-token/
INFO [console] [DIO] method: POST
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] Authorization: Bearer 768|0VqB9oq4rJLHonOPuJFUBc4D6YaW5mqDHk9mLj7Cb772150c
INFO [console] [DIO] data:
INFO [console] [DIO] {service_type: fcm, token: dAHLzwwpRI2wxDFxqxUch_:APA91bFzcg9TxO2EODK5upRBhGZVutbMjrLBIXwa_nqTCDYbworcagpEQUM3PHGlRJXg7xyyDw7ggERTSMTJitksIbOgKECc-qc999wzMRYW1Z1Pe8Tw8KQ}
INFO [console] [DIO]
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/range-of-motion
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 768|0VqB9oq4rJLHonOPuJFUBc4D6YaW5mqDHk9mLj7Cb772150c
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/user/save-client-push-token/
INFO [console] [DIO] method: POST
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] Authorization: Bearer 768|0VqB9oq4rJLHonOPuJFUBc4D6YaW5mqDHk9mLj7Cb772150c
INFO [console] [DIO] data:
INFO [console] [DIO] {service_type: fcm, token: dAHLzwwpRI2wxDFxqxUch_:APA91bFzcg9TxO2EODK5upRBhGZVutbMjrLBIXwa_nqTCDYbworcagpEQUM3PHGlRJXg7xyyDw7ggERTSMTJitksIbOgKECc-qc999wzMRYW1Z1Pe8Tw8KQ}
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: Tue, 22 Sep 2026 13:08:59 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-22T13:08:59.360545Z","request_id":"dabdcf9c-4ca4-43df-b01f-244bcfccee94","version":"v1"},"data":{"start_rehab":"2026-09-21 00:00:00","end_rehab":"2026-10-18 00:00:00","days":[{"date":"2026-09-21","status":["start"],"training":[{"mode":"correction_unit","status":"not_done","progress":null},{"mode":"diagnostics","status":"not_done","progress":null}]},{"date":"2026-09-22","status":["none"],"training":[{"mode":"correction_unit","status":"completed","progress":null}]},{"date":"2026-09-23","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-09-24","status":["none"],"training":[{"mode":"correction_unit","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":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null},{"mode":"diagnostics","status":"not_done","progress":null}]},{"date":"2026-09-29","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}]},{"date":"2026-10-01","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]},{"date":"2026-10-02","status":["none"],"training":[{"mode":"correction_unit","status":"not_done","progress":null}]}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T13:08:59.360545Z, request_id: dabdcf9c-4ca4-43df-b01f-244bcfccee94, version: v1}, data: {start_rehab: 2026-09-21 00:00:00, end_rehab: 2026-10-18 00:00:00, days: [{date: 2026-09-21, status: [start], training: [{mode: correction_unit, status: not_done, progress: null}, {mode: diagnostics, status: not_done, progress: null}]}, {date: 2026-09-22, status: [none], training: [{mode: correction_unit, status: completed, progress: null}]}, {date: 2026-09-23, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-09-24, status: [none], training: [{mode: correction_unit, 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: [none], training: [{mode: correction_unit, status: not_done, progress: null}, {mode: diagnostics, status: not_done, progress: null}]}, {date: 2026-09-29, stat
INFO [console] us: [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}]}, {date: 2026-10-01, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}, {date: 2026-10-02, status: [none], training: [{mode: correction_unit, status: not_done, progress: null}]}]}}
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/user/save-client-push-token/
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, 22 Sep 2026 13:08:59 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-22T13:08:59.382213Z","request_id":"eef96d98-3a23-4612-85d5-2e58336dd119","version":"v1"},"data":{"message":"User push token successfully saved or existed for current user"}}
INFO [console] [DIO]
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/day?date=2026-09-22
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 768|0VqB9oq4rJLHonOPuJFUBc4D6YaW5mqDHk9mLj7Cb772150c
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T13:08:59.382213Z, request_id: eef96d98-3a23-4612-85d5-2e58336dd119, version: v1}, data: {message: User push token successfully saved or existed for current user}}
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/user/save-client-push-token/
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, 22 Sep 2026 13:08:59 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-22T13:08:59.635063Z","request_id":"493a05b9-91ba-4117-9065-e33b79cee9ba","version":"v1"},"data":{"message":"User push token successfully saved or existed for current user"}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T13:08:59.635063Z, request_id: 493a05b9-91ba-4117-9065-e33b79cee9ba, version: v1}, data: {message: User push token successfully saved or existed for current user}}
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/range-of-motion
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, 22 Sep 2026 13:08:59 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-22T13:08:59.648045Z","request_id":"2c35ed21-d3de-433c-83e6-6b2f7f97c2a3","version":"v1"},"data":{"average_score":null,"average_interpretation":null,"phases":[{"phase_sequence_number":1,"phase_name":"Проверка упражнений","weeks":[{"phase_week_number":1,"week_number":1,"rehabilitation_week_number":1,"score":null,"interpretation":null,"is_control_week":false},{"phase_week_number":2,"week_number":2,"rehabilitation_week_number":2,"score":null,"interpretation":null,"is_control_week":false},{"phase_week_number":3,"week_number":3,"rehabilitation_week_number":3,"score":null,"interpretation":null,"is_control_week":false},{"phase_week_number":4,"week_number":4,"rehabilitation_week_number":4,"score":null,"interpretation":null,"is_control_week":true}]}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T13:08:59.648045Z, request_id: 2c35ed21-d3de-433c-83e6-6b2f7f97c2a3, version: v1}, data: {average_score: null, average_interpretation: null, phases: [{phase_sequence_number: 1, phase_name: Проверка упражнений, weeks: [{phase_week_number: 1, week_number: 1, rehabilitation_week_number: 1, score: null, interpretation: null, is_control_week: false}, {phase_week_number: 2, week_number: 2, rehabilitation_week_number: 2, score: null, interpretation: null, is_control_week: false}, {phase_week_number: 3, week_number: 3, rehabilitation_week_number: 3, score: null, interpretation: null, is_control_week: false}, {phase_week_number: 4, week_number: 4, rehabilitation_week_number: 4, score: null, interpretation: null, is_control_week: true}]}]}}
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/day?date=2026-09-22
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] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T13:08:59.883742Z, request_id: ae8963f1-38c9-492e-ab1c-7ef1a98e8b57, version: v1}, data: []}
INFO [console] shrinkOffset: 0.30769230769226397, progress: 0.0015478164731893877
INFO [console] shrinkOffset: 0.0, progress: 0.0
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-09-22T13:08:59.883742Z","request_id":"ae8963f1-38c9-492e-ab1c-7ef1a98e8b57","version":"v1"},"data":[]}
INFO [console] [DIO]
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] cache-control: no-cache, private
INFO [console] [DIO] date: Tue, 22 Sep 2026 13:08:59 GMT
INFO [console] [DIO] transfer-encoding: chunked
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] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/exercises/list
INFO [console] [DIO] Authorization: Bearer 768|0VqB9oq4rJLHonOPuJFUBc4D6YaW5mqDHk9mLj7Cb772150c
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
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]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T13:08:59.801273Z, request_id: a85c65c6-1f58-4fba-aeb0-88b869487143, version: v1}, data: {average_score: null, phases: [{phase_sequence_number: 1, phase_name: Проверка упражнений, weeks: [{week_number: 1, rehabilitation_week_number: 1, score: null, change_from_previous: null, change_direction: null, is_control_week: false}, {week_number: 2, rehabilitation_week_number: 2, score: null, change_from_previous: null, change_direction: null, is_control_week: false}, {week_number: 3, rehabilitation_week_number: 3, score: null, change_from_previous: null, change_direction: null, is_control_week: false}, {week_number: 4, rehabilitation_week_number: 4, score: null, change_from_previous: null, change_direction: null, is_control_week: true}]}]}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-09-22T13:08:59.801273Z","request_id":"a85c65c6-1f58-4fba-aeb0-88b869487143","version":"v1"},"data":{"average_score":null,"phases":[{"phase_sequence_number":1,"phase_name":"Проверка упражнений","weeks":[{"week_number":1,"rehabilitation_week_number":1,"score":null,"change_from_previous":null,"change_direction":null,"is_control_week":false},{"week_number":2,"rehabilitation_week_number":2,"score":null,"change_from_previous":null,"change_direction":null,"is_control_week":false},{"week_number":3,"rehabilitation_week_number":3,"score":null,"change_from_previous":null,"change_direction":null,"is_control_week":false},{"week_number":4,"rehabilitation_week_number":4,"score":null,"change_from_previous":null,"change_direction":null,"is_control_week":true}]}]}}
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] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Tue, 22 Sep 2026 13:08:59 GMT
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/pain
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 768|0VqB9oq4rJLHonOPuJFUBc4D6YaW5mqDHk9mLj7Cb772150c
INFO [console] [DIO] data:
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/pain
INFO [console] [DIO] method: GET
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T13:08:59.657130Z, request_id: 28e83247-1f2e-4e96-b25a-997a038aacfb, version: v1}, data: {rehabilitation_day_id: 3118, phase_id: 363, diagnosis_rehab: Проверка упражнений, start_rehab: 2026-09-21 00:00:00, end_rehab: 2026-10-18 00:00:00, name_rehab_phase: Проверка упражнений, status: [none], recommendations_count: 1, date: 2026-09-22, training: [{mode: correction_unit, status: completed, progress: null, unit_id: 1089, time: 10 - 20 мин, count_questions: 2, status_questions: false, workout_id: 139}]}}
ERROR [widgets library] Null check operator used on a null value
Null check operator used on a null value
#0      _TrainingDayItemState.build (package:testapp/features/calendar_page/presentation/widgets/day_details/training_day_item.dart:56:43)
#1      StatefulElement.build (package:flutter/src/widgets/framework.dart:5931:27)
#2      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5817:15)
#3      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5982:11)
#4      Element.rebuild (package:flutter/src/widgets/framework.dart:5529:7)
#5      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799:5)
#6      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5973:11)
#7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793:5)
#8      Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587:20)
#9      Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
#10     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115:14)
#11     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587:20)
#12     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
#13     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7115:14)
#14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587:20)
#15     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
#16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841:16)
#17     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5982:11)
#18     Element.rebuild (package:flutter/src/widgets/framework.dart:5529:7)
#19     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799:5)
#20     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5973:11)
#21     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793:5)
#22     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587:20)
#23     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
#24     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841:16)
#25     Element.rebuild (package:flutter/src/widgets/framework.dart:5529:7)
#26     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799:5)
#27     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793:5)
#28     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587:20)
#29     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
#30     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841:16)
#31     Element.rebuild (package:flutter/src/widgets/framework.dart:5529:7)
#32     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799:5)
#33     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793:5)
#34     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587:20)
#35     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
#36     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841:16)
#37     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5982:11)
#38     Element.rebuild (package:flutter/src/widgets/framework.dart:5529:7)
#39     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799:5)
#40     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5973:11)
#41     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793:5)
#42     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587:20)
#43     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
#44     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5841:16)
#45     Element.rebuild (package:flutter/src/widgets/framework.dart:5529:7)
#46     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5799:5)
#47     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5793:5)
#48     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4587:20)
#49     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
#50     SliverMultiBoxAdaptorElement.updateChild (package:flutter/src/widgets/sliver.dart:1086:37)
#51     SliverMultiBoxAdaptorElement.createChild.<anonymous closure> (package:flutter/src/widgets/sliver.dart:1071:20)
#52     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3101:19)
#53     SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:1061:12)
#54     RenderSliverMultiBoxAdaptor._createOrObtainChild.<anonymous closure> (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:368:23)
#55     RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:3026:17)
#56     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1223:15)
#57     RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:3025:14)
#58     RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:357:5)
#59     RenderSliverMultiBoxAdaptor.insertAndLayoutChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:517:5)
#60     RenderSliverList.performLayout.advance (package:flutter/src/rendering/sliver_list.dart:238:19)
#61     RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:278:12)
#62     RenderObject.layout (package:flutter/src/rendering/object.dart:2907:7)
#63     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:821:13)
#64     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1831:12)
#65     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1724:20)
#66     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2755:7)
#67     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1174:18)
#68     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1187:15)
#69     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:643:23)
#70     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1573:13)
#71     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:509:5)
#72     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1430:15)
#73     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1345:9)
#74     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1198:5)
#75     _rootRun (dart:async/zone_root.dart:35:13)
#76     _CustomZone.run (dart:async/zone.dart:726:19)
#77     _CustomZone.runGuarded (dart:async/zone.dart:625:7)
#78     _invoke (dart:ui/hooks.dart:425:10)
#79     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:447:5)
#80     _drawFrame (dart:ui/hooks.dart:395:31)
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-09-22T13:08:59.657130Z","request_id":"28e83247-1f2e-4e96-b25a-997a038aacfb","version":"v1"},"data":{"rehabilitation_day_id":3118,"phase_id":363,"diagnosis_rehab":"Проверка упражнений","start_rehab":"2026-09-21 00:00:00","end_rehab":"2026-10-18 00:00:00","name_rehab_phase":"Проверка упражнений","status":["none"],"recommendations_count":1,"date":"2026-09-22","training":[{"mode":"correction_unit","status":"completed","progress":null,"unit_id":1089,"time":"10 - 20 мин","count_questions":2,"status_questions":false,"workout_id":139}]}}
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] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Tue, 22 Sep 2026 13:08:59 GMT
INFO [console] shrinkOffset: 3.692307692307736, progress: 0.01857379767827551
INFO [console] shrinkOffset: 0.6153846153847553, progress: 0.003095632946379919
$
250 строкUTF-8LIVE