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

rehabapp_2026-08-27_18-39-10

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
INFO [console] [DIO] extra: {}
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 690|IvMAyPHC2p9yEjrZTSKoSzRfuY88QxeVITcrwz4Nae9efa62
INFO [console] [DIO] data:
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] shrinkOffset: 435.5338557637911, progress: 0.9277205107152607
INFO [console] shrinkOffset: 435.5338557637911, progress: 0.9277205107152607
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/day?date=2026-08-27
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 690|IvMAyPHC2p9yEjrZTSKoSzRfuY88QxeVITcrwz4Nae9efa62
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-08-27
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: Thu, 27 Aug 2026 15:47:26 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-08-27T15:47:26.391183Z","request_id":"9b61d6e4-ed03-47b8-8019-5e00213587aa","version":"v1"},"data":{"rehabilitation_day_id":2770,"phase_id":331,"diagnosis_rehab":"Пластика передней крестообразной связки (ПКС)","start_rehab":"2026-08-21 00:00:00","end_rehab":"2026-09-10 00:00:00","name_rehab_phase":"Защита и восстановление","status":["none"],"recommendations_count":3,"date":"2026-08-27","training":[{"mode":"correction_unit","status":"not_done","progress":null,"unit_id":1000,"time":"5 - 10 мин","count_questions":null,"status_questions":false,"workout_id":130}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-08-27T15:47:26.391183Z, request_id: 9b61d6e4-ed03-47b8-8019-5e00213587aa, version: v1}, data: {rehabilitation_day_id: 2770, phase_id: 331, diagnosis_rehab: Пластика передней крестообразной связки (ПКС), start_rehab: 2026-08-21 00:00:00, end_rehab: 2026-09-10 00:00:00, name_rehab_phase: Защита и восстановление, status: [none], recommendations_count: 3, date: 2026-08-27, training: [{mode: correction_unit, status: not_done, progress: null, unit_id: 1000, time: 5 - 10 мин, count_questions: null, status_questions: false, workout_id: 130}]}}
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/rehabilitation/calendar/day?date=2026-08-27
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: Thu, 27 Aug 2026 15:47:27 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-08-27T15:47:27.060823Z","request_id":"da568720-f157-4aaa-a1b7-14735220eb3a","version":"v1"},"data":{"rehabilitation_day_id":2770,"phase_id":331,"diagnosis_rehab":"Пластика передней крестообразной связки (ПКС)","start_rehab":"2026-08-21 00:00:00","end_rehab":"2026-09-10 00:00:00","name_rehab_phase":"Защита и восстановление","status":["none"],"recommendations_count":3,"date":"2026-08-27","training":[{"mode":"correction_unit","status":"not_done","progress":null,"unit_id":1000,"time":"5 - 10 мин","count_questions":null,"status_questions":false,"workout_id":130}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-08-27T15:47:27.060823Z, request_id: da568720-f157-4aaa-a1b7-14735220eb3a, version: v1}, data: {rehabilitation_day_id: 2770, phase_id: 331, diagnosis_rehab: Пластика передней крестообразной связки (ПКС), start_rehab: 2026-08-21 00:00:00, end_rehab: 2026-09-10 00:00:00, name_rehab_phase: Защита и восстановление, status: [none], recommendations_count: 3, date: 2026-08-27, training: [{mode: correction_unit, status: not_done, progress: null, unit_id: 1000, time: 5 - 10 мин, count_questions: null, status_questions: false, workout_id: 130}]}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/exercises?unit_id=1000&rehabilitation_day_id=2770&workout_id=130
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 690|IvMAyPHC2p9yEjrZTSKoSzRfuY88QxeVITcrwz4Nae9efa62
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=1000&rehabilitation_day_id=2770&workout_id=130
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: Thu, 27 Aug 2026 15:47:27 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-08-27T15:47:27.540517Z","request_id":"c891af4d-84cb-4089-bc59-c8827f71d5f5","version":"v1"},"data":{"unit_id":1000,"workout_duration_start":5,"workout_duration_end":10,"body_side":"left","exercises":[{"id":85,"sequence_number":1,"name":"Тренировка икроножных мышц стоя","image":"https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png","by_body_side":"not_by_side","execution_order_type":null,"approaches_count":2,"execution_count":7,"execution_time":null,"instruction":{"exercise_name":"Тренировка икроножных мышц стоя","video":"https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov","inventory":"Опора (стул, подоконник, стена)","warning":"Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами\nСледите, чтобы спина была прямая\nНе уводите таз вперед/назад\nКолени держите выпрямленными","general_description":"В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени.","steps":[{"exercise_id":85,"sequence_number":1,"step_text":"Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере"},{"exercise_id":85,"sequence_number":2,"step_text":"Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу"},{"exercise_id":85,"sequence_number":3,"step_text":"Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела"},{"exercise_id":85,"sequence_number":4,"step_text":"Спина прямая, живот слегка подтянут, взгляд направлен вперёд"},{"exercise_id":85,"sequence_number":5,"step_text":"Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп"},{"exercise_id":85,"sequence_number":6,"step_text":"Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке"},{"exercise_id":85,"sequence_number":7,"step_text":"Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение"},{"exercise_id":85,"sequence_number":8,"step_text":"Выполните поднятие на носки необходимое количество раз"}]}},{"id":47,"sequence_number":2,"name":"Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQCHWY0J06QHXQ4P2BH5VD3A.png","by_body_side":"by_side","execution_order_type":"isolated","approaches_count":2,"execution_count":null,"execution_time":20,"instruction":{"exercise_name":"Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov","inventory":"Возвышенность (стул и т.п.)","warning":"Не допускайте разворота/заваливания поднятой ноги","general_description":"Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; \nстопа и колено поднятой ноги не должны \"заваливаться\" наружу (отсутствие ротации); \nнаклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; \nдыхание свободное, без задержек; \nощущение растяжения должно быть комфортным, без острой боли.","steps":[{"exercise_id":47,"sequence_number":1,"step_text":"Встаньте боком растягиваемой ноги к камере"},{"exercise_id":47,"sequence_number":2,"step_text":"Поставьте рабочую ногу на возвышенность, другая нога опорная"},{"exercise_id":47,"sequence_number":3,"step_text":"Держите спину прямой"},{"exercise_id":47,"sequence_number":4,"step_text":"Стопа поднятой ноги смотрит на себя"},{"exercise_id":47,"sequence_number":5,"step_text":"Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прямой спиной"},{"exercise_id":47,"sequence_number":6,"step_text":"В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время"}]}}]}}
INFO [console] [DIO]
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-08-27T15:47:27.540517Z, request_id: c891af4d-84cb-4089-bc59-c8827f71d5f5, version: v1}, data: {unit_id: 1000, workout_duration_start: 5, workout_duration_end: 10, body_side: left, exercises: [{id: 85, sequence_number: 1, name: Тренировка икроножных мышц стоя, image: https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png, by_body_side: not_by_side, execution_order_type: null, approaches_count: 2, execution_count: 7, execution_time: null, instruction: {exercise_name: Тренировка икроножных мышц стоя, video: https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov, inventory: Опора (стул, подоконник, стена), warning: Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами Следи
INFO [console] те, чтобы спина была прямая Не уводите таз вперед/назад Колени держите выпрямленными, general_description: В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени., steps: [{exercise_id: 85, sequence_number: 1, step_text: Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере}, {exercise_id: 85, sequence_number: 2, step_text: Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу}, {exercise_id: 85, sequence_number: 3, step_text: Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела}, {exercise_id: 85, sequence_number: 4, step_text: Спина прямая, живот слегка подтянут, взгляд направлен вперёд}, {exercise_id: 85, sequence_number:
INFO [console] 5, step_text: Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп}, {exercise_id: 85, sequence_number: 6, step_text: Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке}, {exercise_id: 85, sequence_number: 7, step_text: Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение}, {exercise_id: 85, sequence_number: 8, step_text: Выполните поднятие на носки необходимое количество раз}]}}, {id: 47, sequence_number: 2, name: Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, image: https://rehabilitation.most.team/storage/exercise/photos/01KQCHWY0J06QHXQ4P2BH5VD3A.png, by_body_side: by_side, execution_order_type: isolated, approaches_count: 2, execution_count: null, execution_time: 20, instruction: {exercise_name: Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, video: https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2
INFO [console] W892Q.mov, inventory: Возвышенность (стул и т.п.), warning: Не допускайте разворота/заваливания поднятой ноги, general_description: Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; стопа и колено поднятой ноги не должны "заваливаться" наружу (отсутствие ротации); наклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; дыхание свободное, без задержек; ощущение растяжения должно быть комфортным, без острой боли., steps: [{exercise_id: 47, sequence_number: 1, step_text: Встаньте боком растягиваемой ноги к камере}, {exercise_id: 47, sequence_number: 2, step_text: Поставьте рабочую ногу на возвышенность, другая нога опорная}, {exercise_id: 47, sequence_number: 3, step_text: Держите спину прямой}, {exercise_id: 47, sequence_num
INFO [console] ber: 4, step_text: Стопа поднятой ноги смотрит на себя}, {exercise_id: 47, sequence_number: 5, step_text: Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прямой спиной}, {exercise_id: 47, sequence_number: 6, step_text: В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время}]}}]}}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/detailed-exercises?unit_id=1000&rehabilitation_day_id=2770&workout_id=130
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 690|IvMAyPHC2p9yEjrZTSKoSzRfuY88QxeVITcrwz4Nae9efa62
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/detailed-exercises?unit_id=1000&rehabilitation_day_id=2770&workout_id=130
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: Thu, 27 Aug 2026 15:47:28 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-08-27T15:47:28.960881Z","request_id":"868fb749-07fc-441c-b5ba-d74c9d44f07e","version":"v1"},"data":{"unit_id":1000,"workout_duration_start":5,"workout_duration_end":10,"body_side":"left","exercises":[{"id":85,"sequence_number":1,"is_monitored":true,"name":"Тренировка икроножных мышц стоя","image":"https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png","by_body_side":"not_by_side","execution_order_type":null,"approaches_count":2,"execution_count":7,"execution_time":null,"instruction":{"exercise_name":"Тренировка икроножных мышц стоя","video":"https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov","inventory":"Опора (стул, подоконник, стена)","warning":"Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами\nСледите, чтобы спина была прямая\nНе уводите таз вперед/назад\nКолени держите выпрямленными","general_description":"В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени.","steps":[{"exercise_id":85,"sequence_number":1,"step_text":"Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере"},{"exercise_id":85,"sequence_number":2,"step_text":"Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу"},{"exercise_id":85,"sequence_number":3,"step_text":"Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела"},{"exercise_id":85,"sequence_number":4,"step_text":"Спина прямая, живот слегка подтянут, взгляд направлен вперёд"},{"exercise_id":85,"sequence_number":5,"step_text":"Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп"},{"exercise_id":85,"sequence_number":6,"step_text":"Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке"},{"exercise_id":85,"sequence_number":7,"step_text":"Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение"},{"exercise_id":85,"sequence_number":8,"step_text":"Выполните поднятие на носки необходимое количество раз"}]},"camera_orientation":"vertical","neural_network_type":"mediapipe","base_main_command":"Поднимайтесь и опускайтесь на носках","left_main_command":null,"calibration_parameters":[{"id":107,"name":" Калибровка угла в колене","sequence_number":1,"calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_critical":10,"deviation_uncritical":null,"check_on_next_calibrations":true,"has_division_by_side":true,"is_monitored":false,"components":[{"id":147,"component_side":"right","segment_type":null,"parts":[{"id":394,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":395,"sequence_number":2,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":396,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":148,"component_side":"left","segment_type":null,"parts":[{"id":397,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":398,"sequence_number":2,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":399,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":158,"command_side":"right","position_number":1,"position_message":"Примите исходную позицию. Встаньте боком оперированной ноги к камере, держите ноги выпрямленными","fixation_message":"Фиксируем угол в колене, оставайтесь в нужном положении","error_message":"Держите рабочее колено выпрямленным"},{"id":159,"command_side":"left","position_number":1,"position_message":"Примите исходную позицию. Встаньте боком оперированной ноги к камере, держите ноги выпрямленными","fixation_message":"Фиксируем угол в колене, оставайтесь в нужном положении","error_message":"Держите рабочее колено выпрямленным"}]},{"id":108,"name":"Калибровка угла в тазе","sequence_number":2,"calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_critical":10,"deviation_uncritical":null,"check_on_next_calibrations":true,"has_division_by_side":true,"is_monitored":false,"components":[{"id":149,"component_side":"right","segment_type":null,"parts":[{"id":400,"sequence_number":1,"body_point":{"id":13,"mediapipe_index":12,"movenet_index":6},"line_type":null,"part_type":"point"},{"id":401,"sequence_number":2,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":402,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":150,"component_side":"left","segment_type":null,"parts":[{"id":403,"sequence_number":1,"body_point":{"id":12,"mediapipe_index":11,"movenet_index":5},"line_type":null,"part_type":"point"},{"id":404,"sequence_number":2,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":405,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":160,"command_side":"right","position_number":1,"position_message":"Теперь выпрямите спину, она должна быть продолжением ног. Не заваливайте ее в стороны","fixation_message":"Фиксируем угол в тазу, оставайтесь в нужном положении","error_message":"Держите спину прямой"},{"id":161,"command_side":"left","position_number":1,"position_message":"Теперь выпрямите спину, она должна быть продолжением ног. Не заваливайте ее в стороны","fixation_message":"Фиксируем угол в тазу, оставайтесь в нужном положении","error_message":"Держите спину прямой"}]},{"id":109,"name":"Калибровка амплитуды рабочего угла","sequence_number":3,"calibration_parameter_type":"angle_amplitude","fixation_type":"alternate","fixation_order":"min_at_first","deviation_critical":20,"deviation_uncritical":10,"check_on_next_calibrations":false,"has_division_by_side":true,"is_monitored":true,"components":[{"id":151,"component_side":"right","segment_type":null,"parts":[{"id":406,"sequence_number":1,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":407,"sequence_number":2,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"},{"id":408,"sequence_number":3,"body_point":{"id":33,"mediapipe_index":32,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":152,"component_side":"left","segment_type":null,"parts":[{"id":409,"sequence_number":1,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":410,"sequence_number":2,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"},{"id":411,"sequence_number":3,"body_point":{"id":32,"mediapipe_index":31,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":162,"command_side":"right","position_number":1,"position_message":"Стойте боком оперированной ноги к камере, стопы на полу","fixation_message":"Фиксируем значение, оставайтесь в нужном положении","error_message":"Поднимайтесь на необходимую высоту"},{"id":163,"command_side":"left","position_number":1,"position_message":"Стойте боком оперированной ноги к камере, стопы на полу","fixation_message":"Фиксируем значение, оставайтесь в нужном положении","error_message":"Поднимайтесь на необходимую высоту"},{"id":164,"command_side":"right","position_number":2,"position_message":"Теперь поднимитесь на носки до максимальной комфортной вам высоты","fixation_message":"Фиксируем значение, не опускайтесь","error_message":"Поднимайтесь на необходимую высоту"},{"id":165,"command_side":"left","position_number":2,"position_message":"Теперь поднимитесь на носки до максимальной комфортной вам высоты","fixation_message":"Фиксируем значение, не опускайтесь","error_message":"Поднимайтесь на необходимую высоту"}]}]},{"id":47,"sequence_number":2,"is_monitored":true,"name":"Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQCHWY0J06QHXQ4P2BH5VD3A.png","by_body_side":"by_side","execution_order_type":"isolated","approaches_count":2,"execution_count":null,"execution_time":20,"instruction":{"exercise_name":"Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov","inventory":"Возвышенность (стул и т.п.)","warning":"Не допускайте разворота/заваливания поднятой ноги","general_description":"Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; \nстопа и колено поднятой ноги не должны \"заваливаться\" наружу (отсутствие ротации); \nнаклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; \nдыхание свободное, без задержек; \nощущение растяжения должно быть комфортным, без острой боли.","steps":[{"exercise_id":47,"sequence_number":1,"step_text":"Встаньте боком растягиваемой ноги к камере"},{"exercise_id":47,"sequence_number":2,"step_text":"Поставьте рабочую ногу на возвышенность, другая нога опорная"},{"exercise_id":47,"sequence_number":3,"step_text":"Держите спину прямой"},{"exercise_id":47,"sequence_number":4,"step_text":"Стопа поднятой ноги смотрит на себя"},{"exercise_id":47,"sequence_number":5,"step_text":"Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прямой спиной"},{"exercise_id":47,"sequence_number":6,"step_text":"В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время"}]},"camera_orientation":"vertical","neural_network_type":"mediapipe","base_main_command":"Наклонитесь к правой ноге","left_main_command":null,"calibration_parameters":[{"id":64,"name":"Калибровка угла в колене","sequence_number":1,"calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_critical":10,"deviation_uncritical":null,"check_on_next_calibrations":true,"has_division_by_side":true,"is_monitored":false,"components":[{"id":99,"component_side":"right","segment_type":null,"parts":[{"id":256,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":257,"sequence_number":2,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":258,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":100,"component_side":"left","segment_type":null,"parts":[{"id":259,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":260,"sequence_number":2,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":261,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":120,"command_side":"right","position_number":1,"position_message":"Встаньте правым боком к камере и положите правую ногу на возвышенность, колено прямое","fixation_message":"Фиксируем угол в колене, оставайтесь в нужном положении","error_message":"Держите колено выпрямленным"},{"id":121,"command_side":"left","position_number":1,"position_message":"Встаньте левым боком к камере и положите левую ногу на возвышенность, колено прямое","fixation_message":"Фиксируем угол в колене, оставайтесь в нужном положении","error_message":"Держите колено выпрямленным"}]},{"id":106,"name":"Калибровка рабочего угла","sequence_number":2,"calibration_parameter_type":"angle","fixation_type":"min_value","fixation_order":null,"deviation_critical":20,"deviation_uncritical":10,"check_on_next_calibrations":false,"has_division_by_side":true,"is_monitored":true,"components":[{"id":145,"component_side":"right","segment_type":null,"parts":[{"id":388,"sequence_number":1,"body_point":{"id":13,"mediapipe_index":12,"movenet_index":6},"line_type":null,"part_type":"point"},{"id":389,"sequence_number":2,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":390,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":146,"component_side":"left","segment_type":null,"parts":[{"id":391,"sequence_number":1,"body_point":{"id":12,"mediapipe_index":11,"movenet_index":5},"line_type":null,"part_type":"point"},{"id":392,"sequence_number":2,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":393,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":156,"command_side":"right","position_number":1,"position_message":"Наклонитесь к правой ноге до ощущения комфортного растяжения","fixation_message":"Фиксируем угол наклона, оставайтесь в нужном положении","error_message":"Опускайте корпус ниже"},{"id":157,"command_side":"left","position_number":1,"position_message":"Наклонитесь к левой ноге до ощущения комфортного растяжения","fixation_message":"Фиксируем угол наклона, оставайтесь в нужном положении","error_message":"Опускайте корпус ниже"}]}]}]}}
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-08-27T15:47:28.960881Z, request_id: 868fb749-07fc-441c-b5ba-d74c9d44f07e, version: v1}, data: {unit_id: 1000, workout_duration_start: 5, workout_duration_end: 10, body_side: left, exercises: [{id: 85, sequence_number: 1, is_monitored: true, name: Тренировка икроножных мышц стоя, image: https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png, by_body_side: not_by_side, execution_order_type: null, approaches_count: 2, execution_count: 7, execution_time: null, instruction: {exercise_name: Тренировка икроножных мышц стоя, video: https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov, inventory: Опора (стул, подоконник, стена), warning: Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги
INFO [console] между стопами Следите, чтобы спина была прямая Не уводите таз вперед/назад Колени держите выпрямленными, general_description: В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени., steps: [{exercise_id: 85, sequence_number: 1, step_text: Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере}, {exercise_id: 85, sequence_number: 2, step_text: Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу}, {exercise_id: 85, sequence_number: 3, step_text: Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела}, {exercise_id: 85, sequence_number: 4, step_text: Спина прямая, живот слегка подтянут, взгляд направлен вперёд}, {exercise_id: 8
INFO [console] 5, sequence_number: 5, step_text: Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп}, {exercise_id: 85, sequence_number: 6, step_text: Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке}, {exercise_id: 85, sequence_number: 7, step_text: Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение}, {exercise_id: 85, sequence_number: 8, step_text: Выполните поднятие на носки необходимое количество раз}]}, camera_orientation: vertical, neural_network_type: mediapipe, base_main_command: Поднимайтесь и опускайтесь на носках, left_main_command: null, calibration_parameters: [{id: 107, name: Калибровка угла в колене, sequence_number: 1, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 147, componen
INFO [console] t_side: right, segment_type: null, parts: [{id: 394, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 395, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 396, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 148, component_side: left, segment_type: null, parts: [{id: 397, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 398, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 399, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 158, command_side: right, position_number: 1, position_message: Примите исходную позицию. Встаньте боком опе
INFO [console] рированной ноги к камере, держите ноги выпрямленными, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите рабочее колено выпрямленным}, {id: 159, command_side: left, position_number: 1, position_message: Примите исходную позицию. Встаньте боком оперированной ноги к камере, держите ноги выпрямленными, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите рабочее колено выпрямленным}]}, {id: 108, name: Калибровка угла в тазе, sequence_number: 2, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 149, component_side: right, segment_type: null, parts: [{id: 400, sequence_number: 1, body_point: {id: 13, mediapipe_index: 12, movenet_index: 6}, line_type: null, part_type: point}, {id: 401, sequence_number: 2, body_point: {
INFO [console] id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 402, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 150, component_side: left, segment_type: null, parts: [{id: 403, sequence_number: 1, body_point: {id: 12, mediapipe_index: 11, movenet_index: 5}, line_type: null, part_type: point}, {id: 404, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 405, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 160, command_side: right, position_number: 1, position_message: Теперь выпрямите спину, она должна быть продолжением ног. Не заваливайте ее в стороны, fixation_message: Фиксируем угол в тазу, оставайтесь в нужном положении, error_message: Держите спину прямой}, {id: 161, command_side: left, position_number: 1, position_me
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=31(29.6fps) processed=11(10.5fps) replaced=20(19.1fps) buildMs=0.69 estimatorMs=95.19 (pre=7.8 infer=76.6 det=0.0) totalMs=95.38 lagMs=112.5 predLatMs=88.5 actualFps=10.5
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=31(29.8fps) processed=12(11.5fps) replaced=19(18.3fps) buildMs=1.22 estimatorMs=86.54 (pre=54.0 infer=57.1 det=0.0) totalMs=86.78 lagMs=102.6 predLatMs=82.7 actualFps=11.5
INFO [console] POSE_METRICS: received=31(30.6fps) processed=8(7.9fps) replaced=23(22.7fps) buildMs=1.56 estimatorMs=126.36 (pre=137.0 infer=64.8 det=0.0) totalMs=126.51 lagMs=157.8 predLatMs=84.9 actualFps=7.9
INFO [console] POSE_MAP: [0 norm=(0.378,0.153)] [11 norm=(0.243,0.378)] [12 norm=(0.512,0.277)] [23 norm=(0.394,0.948)] [24 norm=(0.534,0.890)]
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=35(33.9fps) processed=11(10.6fps) replaced=22(21.3fps) buildMs=1.37 estimatorMs=97.73 (pre=6.5 infer=64.0 det=0.0) totalMs=97.89 lagMs=111.6 predLatMs=80.0 actualFps=10.6
INFO [console] PASSPORT_STATE: phase=waitingReady hint=fullBodyNotVisible
INFO [console] BODY_POINT_ENGINE: first geometry event — points=33 isCalibrated=false
INFO [console] POSE_LM: [0 frame=(448,115)] [11 frame=(545,196)] [12 frame=(351,160)] [23 frame=(436,401)] [24 frame=(335,380)] frameSize=720 x 480 screenSize=769x384
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.landscapeLeft rotDeg=0 imgSize=720 x 480 -> upright=720x480 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=769x384
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.landscapeLeft rotDeg=0 imgSize=720 x 480 -> upright=720x480 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=769x384
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] PoseEstimator: worker isolate up (gpu=true, fallback=none, model=pose_landmarks_detector_heavy.tflite (27055 KB), cores=cores=[6, 7]@2200MHz ok, on cpu6)
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.landscapeLeft rotDeg=0 imgSize=720 x 480 -> upright=720x480 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=769x384
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.landscapeLeft rotDeg=0 imgSize=720 x 480 -> upright=720x480 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=769x384
INFO [console] м}, {id: 121, command_side: left, position_number: 1, position_message: Встаньте левым боком к камере и положите левую ногу на возвышенность, колено прямое, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колено выпрямленным}]}, {id: 106, name: Калибровка рабочего угла, sequence_number: 2, calibration_parameter_type: angle, fixation_type: min_value, fixation_order: null, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 145, component_side: right, segment_type: null, parts: [{id: 388, sequence_number: 1, body_point: {id: 13, mediapipe_index: 12, movenet_index: 6}, line_type: null, part_type: point}, {id: 389, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 390, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_
INFO [console] type: point}]}, {id: 146, component_side: left, segment_type: null, parts: [{id: 391, sequence_number: 1, body_point: {id: 12, mediapipe_index: 11, movenet_index: 5}, line_type: null, part_type: point}, {id: 392, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 393, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 156, command_side: right, position_number: 1, position_message: Наклонитесь к правой ноге до ощущения комфортного растяжения, fixation_message: Фиксируем угол наклона, оставайтесь в нужном положении, error_message: Опускайте корпус ниже}, {id: 157, command_side: left, position_number: 1, position_message: Наклонитесь к левой ноге до ощущения комфортного растяжения, fixation_message: Фиксируем угол наклона, оставайтесь в нужном положении, error_message: Опускайте корпус ниже}]}]}]}}
INFO [console] [DIO]
INFO [console] допускайте разворота/заваливания поднятой ноги, general_description: Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; стопа и колено поднятой ноги не должны "заваливаться" наружу (отсутствие ротации); наклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; дыхание свободное, без задержек; ощущение растяжения должно быть комфортным, без острой боли., steps: [{exercise_id: 47, sequence_number: 1, step_text: Встаньте боком растягиваемой ноги к камере}, {exercise_id: 47, sequence_number: 2, step_text: Поставьте рабочую ногу на возвышенность, другая нога опорная}, {exercise_id: 47, sequence_number: 3, step_text: Держите спину прямой}, {exercise_id: 47, sequence_number: 4, step_text: Стопа поднятой ноги смотрит на себя}, {exerc
INFO [console] ise_id: 47, sequence_number: 5, step_text: Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прямой спиной}, {exercise_id: 47, sequence_number: 6, step_text: В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время}]}, camera_orientation: vertical, neural_network_type: mediapipe, base_main_command: Наклонитесь к правой ноге, left_main_command: null, calibration_parameters: [{id: 64, name: Калибровка угла в колене, sequence_number: 1, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 99, component_side: right, segment_type: null, parts: [{id: 256, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_ty
INFO [console] pe: point}, {id: 257, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 258, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 100, component_side: left, segment_type: null, parts: [{id: 259, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 260, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 261, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 120, command_side: right, position_number: 1, position_message: Встаньте правым боком к камере и положите правую ногу на возвышенность, колено прямое, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колено выпрямленны
INFO [console] ssage: Теперь выпрямите спину, она должна быть продолжением ног. Не заваливайте ее в стороны, fixation_message: Фиксируем угол в тазу, оставайтесь в нужном положении, error_message: Держите спину прямой}]}, {id: 109, name: Калибровка амплитуды рабочего угла, sequence_number: 3, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 151, component_side: right, segment_type: null, parts: [{id: 406, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 407, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 408, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 152, component_side:
INFO [console] left, segment_type: null, parts: [{id: 409, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 410, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}, {id: 411, sequence_number: 3, body_point: {id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 162, command_side: right, position_number: 1, position_message: Стойте боком оперированной ноги к камере, стопы на полу, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайтесь на необходимую высоту}, {id: 163, command_side: left, position_number: 1, position_message: Стойте боком оперированной ноги к камере, стопы на полу, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайтесь на необходимую высоту}, {id: 164, command_side: right, position_number: 2, position_message: Т
INFO [console] еперь поднимитесь на носки до максимальной комфортной вам высоты, fixation_message: Фиксируем значение, не опускайтесь, error_message: Поднимайтесь на необходимую высоту}, {id: 165, command_side: left, position_number: 2, position_message: Теперь поднимитесь на носки до максимальной комфортной вам высоты, fixation_message: Фиксируем значение, не опускайтесь, error_message: Поднимайтесь на необходимую высоту}]}]}, {id: 47, sequence_number: 2, is_monitored: true, name: Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, image: https://rehabilitation.most.team/storage/exercise/photos/01KQCHWY0J06QHXQ4P2BH5VD3A.png, by_body_side: by_side, execution_order_type: isolated, approaches_count: 2, execution_count: null, execution_time: 20, instruction: {exercise_name: Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, video: https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov, inventory: Возвышенность (стул и т.п.), warning: Не
INFO [console] BODY_POINT_PHASE: timeout — no geometry data in 30s
INFO [console] 🎯 БОДИПОИНТ: Скрытый 30-секундный таймер-убийца успешно обезврежен!
INFO [console] BODY_POINT_ENGINE: isCalibrated → true (event #243)
INFO [console] AML_EXE: 70.43381217147102
INFO [console] AML_EXE: 72.68381217147102
INFO [console] AML_EXE: 74.93381217147102
INFO [console] AML_EXE: 77.18381217147102
INFO [console] AML_EXE: 79.43381217147102
INFO [console] AML_EXE: 81.68381217147102
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: 79.43381217147102
INFO [console] AML_EXE: 77.18381217147102
INFO [console] AML_EXE: 77.54902215569331
INFO [console] AML_EXE: 75.29902215569331
INFO [console] AML_EXE: 73.04902215569331
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
$
250 строкUTF-8LIVE