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

rehabapp_2026-09-22_15-41-55

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-09-22T12:41:57.843492Z","request_id":"213e5608-9f3b-4f58-9d9e-ed3f153ac2db","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] [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] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Tue, 22 Sep 2026 12:41:57 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-22T12:41:57.865729Z","request_id":"7fdd3217-c30e-40f3-bd71-9312bb8a4952","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]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T12:41:57.767859Z, request_id: 2e5d4967-e67c-4ef8-9526-1b058a365e71, version: v1}, data: {message: User push token successfully saved or existed for current user}}
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T12:41:57.768862Z, request_id: d4dd185d-de8f-45f1-9aec-436b5b898564, version: v1}, data: {message: User push token successfully saved or existed for current user}}
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T12:41:57.843492Z, request_id: 213e5608-9f3b-4f58-9d9e-ed3f153ac2db, 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] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T12:41:57.865729Z, request_id: 7fdd3217-c30e-40f3-bd71-9312bb8a4952, 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] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/statistics/pain
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] *** Response ***
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] 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 12:41: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-22T12:41:58.183464Z","request_id":"b5e0468f-415c-40ae-bd45-63d4a64ef529","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]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T12:41:58.183464Z, request_id: b5e0468f-415c-40ae-bd45-63d4a64ef529, 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] uri: https://rehabilitation.most.team/api/v1/statistics/exercises/list
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T12:41:58.302972Z, request_id: 6cc7cbaf-6068-4107-9ac8-98c59e2eb731, version: v1}, data: []}
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] *** 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: Tue, 22 Sep 2026 12:41: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-22T12:41:58.302972Z","request_id":"6cc7cbaf-6068-4107-9ac8-98c59e2eb731","version":"v1"},"data":[]}
INFO [console] [DIO]
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/current
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] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/current
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 12:46:57 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-22T12:46:57.653395Z","request_id":"4672a7be-e04b-4d6f-b94d-814f50f65900","version":"v1"},"data":{"title":"Проверка упражнений","rehabilitation_status":"current","body_side":"right","musculoskeletal_part":"Коленный сустав","weeks_count":4,"passed_weeks_count":0,"current_phase_title":"Проверка упражнений","is_doctor_confirmed":true}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T12:46:57.653395Z, request_id: 4672a7be-e04b-4d6f-b94d-814f50f65900, version: v1}, data: {title: Проверка упражнений, rehabilitation_status: current, body_side: right, musculoskeletal_part: Коленный сустав, weeks_count: 4, passed_weeks_count: 0, current_phase_title: Проверка упражнений, is_doctor_confirmed: true}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/doctor/get-my-doctor
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] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/doctor/get-my-doctor
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 12:47:02 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-22T12:47:02.023687Z","request_id":"1853169a-2b13-4cc4-9e83-3365b05a6c36","version":"v1"},"data":{"image_url":"https://rehabilitation.most.team/storage/doctor-avatars/01KH8PFWK0WHRC3HKNC9DXXQ53.jpg","experience":15,"specialization":"Главный врач","qualification":"highest_category","info":"Кардиология, аритмология, электрокардиография, УЗИ органов брюшной полости и забрюшинного пространства, УЗИ поверхностно расположенных органов, УЗИ сосудистой системы, эхокардиография с допплеровским анализом","treatments_specialization":"Для меня важными качествами специалиста в медицинской сфере являются: знание достижений медицинской науки своего времени, медицинского оборудования и его диагностических возможностей, стремление к непрерывному пополнению своих знаний, любовь к человеку, деликатность и такт в общении с Клиентами.","surname":"Попов","name":"Валерий","patronymic":"Сергеевич","birthday":"1985-01-10"}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T12:47:02.023687Z, request_id: 1853169a-2b13-4cc4-9e83-3365b05a6c36, version: v1}, data: {image_url: https://rehabilitation.most.team/storage/doctor-avatars/01KH8PFWK0WHRC3HKNC9DXXQ53.jpg, experience: 15, specialization: Главный врач, qualification: highest_category, info: Кардиология, аритмология, электрокардиография, УЗИ органов брюшной полости и забрюшинного пространства, УЗИ поверхностно расположенных органов, УЗИ сосудистой системы, эхокардиография с допплеровским анализом, treatments_specialization: Для меня важными качествами специалиста в медицинской сфере являются: знание достижений медицинской науки своего времени, медицинского оборудования и его диагностических возможностей, стремление к непрерывному пополнению своих знаний, любовь к человеку, деликатность и такт в общении с Клиентами., surname: Попов, name: Валерий, patronymic: Сергеевич, birthday: 1985-01-10}}
INFO [console] Request query: {start_date: 2026-08-31, end_date: 2026-10-04}
INFO [console] shrinkOffset: 0.0, progress: 0.0
INFO [console] shrinkOffset: 0.0, progress: 0.0
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/period?start_date=2026-08-31&end_date=2026-10-04
INFO [console] [DIO] method: GET
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 768|0VqB9oq4rJLHonOPuJFUBc4D6YaW5mqDHk9mLj7Cb772150c
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/period?start_date=2026-08-31&end_date=2026-10-04
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Tue, 22 Sep 2026 12:47:14 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-22T12:47:14.490098Z","request_id":"e4900866-5f1e-4069-822b-edbfb7450181","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-22T12:47:14.490098Z, request_id: e4900866-5f1e-4069-822b-edbfb7450181, 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] *** 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] [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] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Tue, 22 Sep 2026 12:47:14 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-22T12:47:14.738297Z","request_id":"e12c662b-3d9a-4428-b7f0-1474be90b8fb","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]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-22T12:47:14.738297Z, request_id: e12c662b-3d9a-4428-b7f0-1474be90b8fb, 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] shrinkOffset: 0.9230769230769056, progress: 0.004643449419568735
INFO [console] shrinkOffset: 24.307692307692264, progress: 0.12227750138197878
INFO [console] shrinkOffset: 48.923076923076906, progress: 0.24610281923714752
INFO [console] shrinkOffset: 71.69230769230762, progress: 0.36064123825317823
INFO [console] shrinkOffset: 101.53846153846143, progress: 0.5107794361525699
INFO [console] shrinkOffset: 114.15384615384608, progress: 0.574239911553344
INFO [console] shrinkOffset: 119.99999999999989, progress: 0.6036484245439464
INFO [console] shrinkOffset: 205.23076923076917, progress: 1.0
INFO [console] shrinkOffset: 257.05494505494505, progress: 1.0
$
250 строкUTF-8LIVE