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

rehabapp_2026-09-29_16-05-32

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
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 822|J5cbEpKtdmmUSoSVNrd60PKCeqU798Uiwbui0tcU2052a671
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=1292&rehabilitation_day_id=3479&workout_id=181
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, 29 Sep 2026 13:11:06 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-29T13:11:06.795163Z","request_id":"5a8d63d8-4f6a-43a4-acbf-1d2680695885","version":"v1"},"data":{"unit_id":1292,"workout_duration_start":10,"workout_duration_end":20,"body_side":"right","exercises":[{"id":47,"sequence_number":1,"is_monitored":true,"name":"[OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","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":15,"instruction":{"exercise_name":"[OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov","inventory":"Возвышенность (стул и т.п.)","warning":"Не допускайте разворота/заваливания поднятой ноги","general_description":"Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; \nстопа и колено поднятой ноги не должны \"заваливаться\" наружу (отсутствие ротации); \nнаклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; \nдыхание свободное, без задержек; \nощущение растяжения должно быть комфортным, без острой боли.","steps":[{"exercise_id":47,"sequence_number":1,"step_text":"Встаньте боком растягиваемой ноги к камере"},{"exercise_id":47,"sequence_number":2,"step_text":"Поставьте рабочую ногу на возвышенность, другая нога опорная"},{"exercise_id":47,"sequence_number":3,"step_text":"Держите спину прямой"},{"exercise_id":47,"sequence_number":4,"step_text":"Стопа поднятой ноги смотрит на себя"},{"exercise_id":47,"sequence_number":5,"step_text":"Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прямой спиной"},{"exercise_id":47,"sequence_number":6,"step_text":"В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время"}],"measurement":null},"camera_orientation":"vertical","neural_network_type":"mediapipe","base_main_command":"Наклонитесь к правой ноге","left_main_command":null,"calibration_parameters":[{"id":64,"name":"Калибровка угла в колене","calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_type":"upward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"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","error_message":"Держите колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07RZWGYBA7ARDC81R4E7.mp3"},{"id":121,"command_side":"left","error_message":"Держите колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S2QYS3KHV7GTP1RR69.mp3"}],"videos":[]},{"id":106,"name":"Калибровка рабочего угла","calibration_parameter_type":"angle","fixation_type":"min_value","fixation_order":null,"deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"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","error_message":"Опускайте корпус ниже","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S3EDRCHQ9E234AQAYF.mp3"},{"id":157,"command_side":"left","error_message":"Опускайте корпус ниже","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S4VM5J29MBFBCZW8X6.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07S53VNQ828P1AYA22FX.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07WARDRBB2TPYHK7SVV6.mp4","body_side":"left"}]}],"calibration_videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM080MH53RPSJYR4B42W96.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM082WPWEQTFRNMSZ8W7XW.mp4","body_side":"left"}]},{"id":35,"sequence_number":2,"is_monitored":true,"name":"[OLD]Сгибание и разгибание в голеностопных суставах","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png","by_body_side":"not_by_side","execution_order_type":null,"approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"[OLD]Сгибание и разгибание в голеностопных суставах","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov","inventory":null,"warning":"Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх)","general_description":"Исходное положение - лёжа на спине боком к камере, ноги выпрямлены в коленях. Выполнять движения стопами на себя и от себя в максимально доступной амплитуде.","steps":[{"exercise_id":35,"sequence_number":1,"step_text":"Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере"},{"exercise_id":35,"sequence_number":2,"step_text":"Выпрямите обе ноги в коленях"},{"exercise_id":35,"sequence_number":3,"step_text":"Стопы расположите параллельно друг другу на ширине таза"},{"exercise_id":35,"sequence_number":4,"step_text":"Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости"},{"exercise_id":35,"sequence_number":5,"step_text":"Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами"},{"exercise_id":35,"sequence_number":6,"step_text":"На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области"},{"exercise_id":35,"sequence_number":7,"step_text":"От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на \"цыпочки\", ощущая напряжение в икрах"},{"exercise_id":35,"sequence_number":8,"step_text":"Движение должно быть ритмичным, без рывков, в спокойном темпе"}],"measurement":null},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Сгибайте и разгибайте стопы","left_main_command":null,"calibration_parameters":[{"id":41,"name":"Калибровка угла в колене","calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_type":"upward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"has_division_by_side":true,"is_monitored":false,"components":[{"id":53,"component_side":"right","segment_type":null,"parts":[{"id":126,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":127,"sequence_number":2,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":128,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":54,"component_side":"left","segment_type":null,"parts":[{"id":129,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":130,"sequence_number":2,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":131,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":54,"command_side":"right","error_message":"Держите колени выпрямленными","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6G4N63ERBK7A3GMC7Q.mp3"},{"id":55,"command_side":"left","error_message":"Держите колени выпрямленными","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6J94Q8G92FW3EG2MHJ.mp3"}],"videos":[]},{"id":42,"name":"Калибровка амплитуды рабочего угла","calibration_parameter_type":"angle_amplitude","fixation_type":"alternate","fixation_order":"min_at_first","deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"has_division_by_side":true,"is_monitored":true,"components":[{"id":55,"component_side":"right","segment_type":null,"parts":[{"id":132,"sequence_number":1,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":133,"sequence_number":2,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"},{"id":134,"sequence_number":3,"body_point":{"id":33,"mediapipe_index":32,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":56,"component_side":"left","segment_type":null,"parts":[{"id":135,"sequence_number":1,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":136,"sequence_number":2,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"},{"id":137,"sequence_number":3,"body_point":{"id":32,"mediapipe_index":31,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":56,"command_side":"right","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6KTZ7EFDZ9B15DFXR2.mp3"},{"id":57,"command_side":"left","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6MXVWWB1BJ805RWCG1.mp3"},{"id":58,"command_side":"right","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6N21GHA8N2KRDT30NG.mp3"},{"id":59,"command_side":"left","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6PVE9W6N8T5JCD72XB.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K6QZ81F8KS9ZP7CSQ0R.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K8YXWA9DB5YA3V6VJHN.mp4","body_side":"left"}]}],"calibration_videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KB0ETSNMQ4PJJPMCG1Y.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KD1AGX9685GQWVAN6F2.mp4","body_side":"left"}]},{"id":40,"sequence_number":3,"is_monitored":true,"name":"[OLD]Круговые движения ногой - в и.п. лежа на спине","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png","by_body_side":"by_side","execution_order_type":"symmetric","approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"[OLD]Круговые движения ногой - в и.п. лежа на спине","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQA5HTA1S14HGRG0J5HK6SYP.mov","inventory":null,"warning":"Не допускайте сильного напряжения или переразгиба в пояснице","general_description":"В и.п. лежа на спине. Ноги максимально выпрямлены в коленных суставах, стопы \"на себя\", выполнить движения по часовой стрелке, далее против часовой стрелки. Цель - тренировка четырехглавых мышц, абдукторов/аддукторов","steps":[{"exercise_id":40,"sequence_number":1,"step_text":"Лягте на спину, расположитесь боком рабочей ноги к камере"},{"exercise_id":40,"sequence_number":2,"step_text":"Руки расположите вдоль туловища ладонями вниз или в стороны для устойчивости"},{"exercise_id":40,"sequence_number":3,"step_text":"Ноги полностью выпрямите в коленных суставах"},{"exercise_id":40,"sequence_number":4,"step_text":"Стопы потяните на себя (тыльное сгибание в голеностопном суставе)"},{"exercise_id":40,"sequence_number":5,"step_text":"Поясницу прижмите к полу, живот слегка подтяните, чтобы избежать излишнего прогиба в пояснице"},{"exercise_id":40,"sequence_number":6,"step_text":"Начните выполнять круговое движение рабочей выпрямленной ногой. Нога в верхней точке должна подниматься на уровень 30°-45° градусов от пола"},{"exercise_id":40,"sequence_number":7,"step_text":"Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения"}],"measurement":null},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Выполняйте круговые движения правой ногой","left_main_command":null,"calibration_parameters":[{"id":51,"name":"Калибровка угла в колене","calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_type":"upward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"has_division_by_side":true,"is_monitored":false,"components":[{"id":73,"component_side":"right","segment_type":null,"parts":[{"id":184,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":185,"sequence_number":2,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":186,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":74,"component_side":"left","segment_type":null,"parts":[{"id":187,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":188,"sequence_number":2,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":189,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":82,"command_side":"right","error_message":"Держите рабочее колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Q6941X7HGRFE3DB6N.mp3"},{"id":83,"command_side":"left","error_message":"Держите рабочее колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2S7EFGG1CMNXS3X0B9.mp3"}],"videos":[]},{"id":52,"name":"Калибровка угла в голеностопе","calibration_parameter_type":"angle","fixation_type":"min_value","fixation_order":null,"deviation_type":"downward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"has_division_by_side":true,"is_monitored":false,"components":[{"id":75,"component_side":"right","segment_type":null,"parts":[{"id":190,"sequence_number":1,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":191,"sequence_number":2,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"},{"id":192,"sequence_number":3,"body_point":{"id":33,"mediapipe_index":32,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":76,"component_side":"left","segment_type":null,"parts":[{"id":193,"sequence_number":1,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":194,"sequence_number":2,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"},{"id":195,"sequence_number":3,"body_point":{"id":32,"mediapipe_index":31,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":84,"command_side":"right","error_message":"Стопа должна быть повернута на себя","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2V633YE4A7508Q85ZG.mp3"},{"id":85,"command_side":"left","error_message":"Стопа должна быть повернута на себя","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2WQTAVDJYMYKHX4KAK.mp3"}],"videos":[]},{"id":53,"name":"Калибровка амплитуды рабочего угла","calibration_parameter_type":"angle_amplitude","fixation_type":"alternate","fixation_order":"max_at_first","deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"has_division_by_side":true,"is_monitored":true,"components":[{"id":77,"component_side":"right","segment_type":null,"parts":[{"id":196,"sequence_number":1,"body_point":{"id":13,"mediapipe_index":12,"movenet_index":6},"line_type":null,"part_type":"point"},{"id":197,"sequence_number":2,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":198,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":78,"component_side":"left","segment_type":null,"parts":[{"id":199,"sequence_number":1,"body_point":{"id":12,"mediapipe_index":11,"movenet_index":5},"line_type":null,"part_type":"point"},{"id":200,"sequence_number":2,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":201,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":86,"command_side":"right","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2X18JJG4TFPYN0ND5Y.mp3"},{"id":87,"command_side":"left","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2YX059J0RZP24T0HN9.mp3"},{"id":88,"command_side":"right","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Z05G53A6FN9NEG7NN.mp3"},{"id":89,"command_side":"left","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ30Y35EG06XG7XCH1R5.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ31FPW8S584F4QRXSNY.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ5D8FVE9P445AJRAKRG.mp4","body_side":"left"}]}],"calibration_videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ7M5BETAWEQX30NRGYQ.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ9TKMBAG19QX94G802M.mp4","body_side":"left"}]},{"id":41,"sequence_number":4,"is_monitored":true,"name":"[OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png","by_body_side":"by_side","execution_order_type":"symmetric","approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"[OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQC6319HS0NS6B4PRV3WH9FT.mov","inventory":null,"warning":"Следить за тем, чтобы бедро не ротировалось (вращалось) наружу, носок стопы отведённой ноги должен “смотреть вверх”","general_description":"Спина относительно поверхности может находиться от 90 до 45 градусов к полу (например, упираясь не прямыми руками, а предплечьями, отклонившись больше назад). Приподнять прямую рабочую ногу от поверхности и отвести её в сторону на сколько возможно, не опуская ногу, и вернуться в исходное положение. Можно выполнять без пауз между повторениями. Цель – тренировка мышц абдукторов бедра.","steps":[{"exercise_id":41,"sequence_number":1,"step_text":"Сядьте на пол лицом к камере. Ноги выпрямите перед собой"},{"exercise_id":41,"sequence_number":2,"step_text":"Корпус отклоните назад. Спина должна находиться под углом от 90 до 45 градусов относительно пола. Для удобства и стабильности можно опираться не на прямые руки, а на предплечья, согнув руки в локтях"},{"exercise_id":41,"sequence_number":3,"step_text":"Приподнимите рабочую ногу на 5-10 см "},{"exercise_id":41,"sequence_number":4,"step_text":"На выдохе отведите рабочую ногу в сторону (наружу) на максимально возможную амплитуду, которую позволяет ваша подвижность и физическое состояние. Движение должно происходить за счёт работы мышц бедра"},{"exercise_id":41,"sequence_number":5,"step_text":"На вдохе так же плавно верните ногу в исходное положение (перед собой), но не кладите её на пол до окончания подхода. Нога остаётся на весу"},{"exercise_id":41,"sequence_number":6,"step_text":"Повторите движение ногой заданное количество раз"}],"measurement":null},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Отводите правую ногу","left_main_command":null,"calibration_parameters":[{"id":54,"name":"Калибровка амплитуды сегмента","calibration_parameter_type":"segment_amplitude","fixation_type":"alternate","fixation_order":"min_at_first","deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"has_division_by_side":true,"is_monitored":true,"components":[{"id":79,"component_side":"right","segment_type":null,"parts":[{"id":202,"sequence_number":1,"body_point":{"id":30,"mediapipe_index":29,"movenet_index":null},"line_type":null,"part_type":"point"},{"id":203,"sequence_number":2,"body_point":{"id":31,"mediapipe_index":30,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":80,"component_side":"left","segment_type":null,"parts":[{"id":204,"sequence_number":1,"body_point":{"id":30,"mediapipe_index":29,"movenet_index":null},"line_type":null,"part_type":"point"},{"id":205,"sequence_number":2,"body_point":{"id":31,"mediapipe_index":30,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":90,"command_side":"right","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAW104K1WHDEAG0D97Q.mp3"},{"id":91,"command_side":"left","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAYKJTKDYTDD8RQ4Q3T.mp3"},{"id":92,"command_side":"right","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAZD3AJP2XBJS4X8XJJ.mp3"},{"id":93,"command_side":"left","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAZD3AJP2XBJS4X8XJK.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYB0SHFNRH14429RE2WC.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYEB88G09XRWVHD2RBPX.mp4","body_side":"left"}]}],"calibration_videos":[]}]}}
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-29T13:11:06.795163Z, request_id: 5a8d63d8-4f6a-43a4-acbf-1d2680695885, version: v1}, data: {unit_id: 1292, workout_duration_start: 10, workout_duration_end: 20, body_side: right, exercises: [{id: 47, sequence_number: 1, is_monitored: true, name: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, 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: 15, instruction: {exercise_name: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, video: https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov, inventory: Возвышенность (стул и т.п.), warning: Не допускайте разворота/заваливания поднятой ноги, general_description: Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул,
INFO [console] скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; стопа и колено поднятой ноги не должны "заваливаться" наружу (отсутствие ротации); наклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; дыхание свободное, без задержек; ощущение растяжения должно быть комфортным, без острой боли., steps: [{exercise_id: 47, sequence_number: 1, step_text: Встаньте боком растягиваемой ноги к камере}, {exercise_id: 47, sequence_number: 2, step_text: Поставьте рабочую ногу на возвышенность, другая нога опорная}, {exercise_id: 47, sequence_number: 3, step_text: Держите спину прямой}, {exercise_id: 47, sequence_number: 4, step_text: Стопа поднятой ноги смотрит на себя}, {exercise_id: 47, sequence_number: 5, step_text: Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянут
INFO [console] ься с прямой спиной}, {exercise_id: 47, sequence_number: 6, step_text: В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время}], measurement: null}, camera_orientation: vertical, neural_network_type: mediapipe, base_main_command: Наклонитесь к правой ноге, left_main_command: null, calibration_parameters: [{id: 64, name: Калибровка угла в колене, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_type: upward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, 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},
INFO [console] {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, error_message: Держите колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07RZWGYBA7ARDC81R4E7.mp3}, {id: 121, command_side: left, error_message: Держите колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S2QYS3KHV7GTP1RR69.mp3}], videos: []}, {id: 106, name: Калибровка
INFO [console] рабочего угла, calibration_parameter_type: angle, fixation_type: min_value, fixation_order: null, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, 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:
INFO [console] 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, error_message: Опускайте корпус ниже, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S3EDRCHQ9E234AQAYF.mp3}, {id: 157, command_side: left, error_message: Опускайте корпус ниже, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S4VM5J29MBFBCZW8X6.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07S53VNQ828P1AYA22FX.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07WARDRBB2TPYHK7SVV6.mp4, body_side: left}]}], calibration_videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM080MH53RPSJYR4B42W96.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/
INFO [console] storage/exercise/calibration-videos/01M2SM082WPWEQTFRNMSZ8W7XW.mp4, body_side: left}]}, {id: 35, sequence_number: 2, is_monitored: true, name: [OLD]Сгибание и разгибание в голеностопных суставах, image: https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png, by_body_side: not_by_side, execution_order_type: null, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: [OLD]Сгибание и разгибание в голеностопных суставах, video: https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov, inventory: null, warning: Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх), general_description: Исходное положение - лёжа на спине боком к камере, ноги выпрямлены в коленях. Выполнять движения стопами на себя и от себя в максимально доступной амплитуде., steps: [{exercise_id: 35, sequence_number: 1, step_text:
INFO [console] Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере}, {exercise_id: 35, sequence_number: 2, step_text: Выпрямите обе ноги в коленях}, {exercise_id: 35, sequence_number: 3, step_text: Стопы расположите параллельно друг другу на ширине таза}, {exercise_id: 35, sequence_number: 4, step_text: Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости}, {exercise_id: 35, sequence_number: 5, step_text: Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами}, {exercise_id: 35, sequence_number: 6, step_text: На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области}, {exercise_id: 35, sequence_number: 7, step_text: От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на "цыпочки", ощущая напряжение в икрах},
INFO [console] {exercise_id: 35, sequence_number: 8, step_text: Движение должно быть ритмичным, без рывков, в спокойном темпе}], measurement: null}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Сгибайте и разгибайте стопы, left_main_command: null, calibration_parameters: [{id: 41, name: Калибровка угла в колене, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_type: upward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, has_division_by_side: true, is_monitored: false, components: [{id: 53, component_side: right, segment_type: null, parts: [{id: 126, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 127, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 128, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, lin
INFO [console] e_type: null, part_type: point}]}, {id: 54, component_side: left, segment_type: null, parts: [{id: 129, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 130, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 131, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 54, command_side: right, error_message: Держите колени выпрямленными, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6G4N63ERBK7A3GMC7Q.mp3}, {id: 55, command_side: left, error_message: Держите колени выпрямленными, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6J94Q8G92FW3EG2MHJ.mp3}], videos: []}, {id: 42, name: Калибровка амплитуды рабочего угла, calibration_parameter_type: angle_amplitude, fixation_type: alternate, f
INFO [console] ixation_order: min_at_first, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, has_division_by_side: true, is_monitored: true, components: [{id: 55, component_side: right, segment_type: null, parts: [{id: 132, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 133, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 134, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 56, component_side: left, segment_type: null, parts: [{id: 135, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 136, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}, {id: 137, sequence_number: 3, body_point: {
INFO [console] id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 56, command_side: right, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6KTZ7EFDZ9B15DFXR2.mp3}, {id: 57, command_side: left, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6MXVWWB1BJ805RWCG1.mp3}, {id: 58, command_side: right, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6N21GHA8N2KRDT30NG.mp3}, {id: 59, command_side: left, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6PVE9W6N8T5JCD72XB.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K6QZ81F8KS9ZP7CSQ0R.mp4, body_side:
INFO [console] right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K8YXWA9DB5YA3V6VJHN.mp4, body_side: left}]}], calibration_videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KB0ETSNMQ4PJJPMCG1Y.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KD1AGX9685GQWVAN6F2.mp4, body_side: left}]}, {id: 40, sequence_number: 3, is_monitored: true, name: [OLD]Круговые движения ногой - в и.п. лежа на спине, image: https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: [OLD]Круговые движения ногой - в и.п. лежа на спине, video: https://rehabilitation.most.team/storage/exercise/videos/01KQA5HTA1S14HGRG0J5HK6SYP.mov, inventory: null, warning: Не допускайте сильного напряжения или перера
INFO [console] згиба в пояснице, general_description: В и.п. лежа на спине. Ноги максимально выпрямлены в коленных суставах, стопы "на себя", выполнить движения по часовой стрелке, далее против часовой стрелки. Цель - тренировка четырехглавых мышц, абдукторов/аддукторов, steps: [{exercise_id: 40, sequence_number: 1, step_text: Лягте на спину, расположитесь боком рабочей ноги к камере}, {exercise_id: 40, sequence_number: 2, step_text: Руки расположите вдоль туловища ладонями вниз или в стороны для устойчивости}, {exercise_id: 40, sequence_number: 3, step_text: Ноги полностью выпрямите в коленных суставах}, {exercise_id: 40, sequence_number: 4, step_text: Стопы потяните на себя (тыльное сгибание в голеностопном суставе)}, {exercise_id: 40, sequence_number: 5, step_text: Поясницу прижмите к полу, живот слегка подтяните, чтобы избежать излишнего прогиба в пояснице}, {exercise_id: 40, sequence_number: 6, step_text: Начните выполнять круговое движение рабочей выпрямленной ногой. Нога в верхней точке должна
INFO [console] подниматься на уровень 30°-45° градусов от пола}, {exercise_id: 40, sequence_number: 7, step_text: Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения}], measurement: null}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Выполняйте круговые движения правой ногой, left_main_command: null, calibration_parameters: [{id: 51, name: Калибровка угла в колене, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_type: upward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, has_division_by_side: true, is_monitored: false, components: [{id: 73, component_side: right, segment_type: null, parts: [{id: 184, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 185, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point
INFO [console] }, {id: 186, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 74, component_side: left, segment_type: null, parts: [{id: 187, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 188, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 189, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 82, command_side: right, error_message: Держите рабочее колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Q6941X7HGRFE3DB6N.mp3}, {id: 83, command_side: left, error_message: Держите рабочее колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2S7EFGG1CMNXS3X0B9.mp3}], videos: []}, {id: 52, na
INFO [console] me: Калибровка угла в голеностопе, calibration_parameter_type: angle, fixation_type: min_value, fixation_order: null, deviation_type: downward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, has_division_by_side: true, is_monitored: false, components: [{id: 75, component_side: right, segment_type: null, parts: [{id: 190, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 191, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 192, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 76, component_side: left, segment_type: null, parts: [{id: 193, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 194, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, moven
INFO [console] et_index: 15}, line_type: null, part_type: point}, {id: 195, sequence_number: 3, body_point: {id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 84, command_side: right, error_message: Стопа должна быть повернута на себя, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2V633YE4A7508Q85ZG.mp3}, {id: 85, command_side: left, error_message: Стопа должна быть повернута на себя, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2WQTAVDJYMYKHX4KAK.mp3}], videos: []}, {id: 53, name: Калибровка амплитуды рабочего угла, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: max_at_first, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, has_division_by_side: true, is_monitored: true, components: [{id: 77, component_side: right, segment_type: null, parts: [{id: 196, sequence_number: 1,
INFO [console] body_point: {id: 13, mediapipe_index: 12, movenet_index: 6}, line_type: null, part_type: point}, {id: 197, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 198, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 78, component_side: left, segment_type: null, parts: [{id: 199, sequence_number: 1, body_point: {id: 12, mediapipe_index: 11, movenet_index: 5}, line_type: null, part_type: point}, {id: 200, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 201, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 86, command_side: right, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2X18JJG4TFPYN0ND5
INFO [console] Y.mp3}, {id: 87, command_side: left, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2YX059J0RZP24T0HN9.mp3}, {id: 88, command_side: right, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Z05G53A6FN9NEG7NN.mp3}, {id: 89, command_side: left, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ30Y35EG06XG7XCH1R5.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ31FPW8S584F4QRXSNY.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ5D8FVE9P445AJRAKRG.mp4, body_side: left}]}], calibration_videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ7M5BETAWEQX30NRGYQ.m
INFO [console] p4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ9TKMBAG19QX94G802M.mp4, body_side: left}]}, {id: 41, sequence_number: 4, is_monitored: true, name: [OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, image: https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: [OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, video: https://rehabilitation.most.team/storage/exercise/videos/01KQC6319HS0NS6B4PRV3WH9FT.mov, inventory: null, warning: Следить за тем, чтобы бедро не ротировалось (вращалось) наружу, носок стопы отведённой ноги должен “смотреть вверх”, general_description: Спина относительно поверхности может находиться от 90 до 45 градусов к полу (наприм
INFO [console] ер, упираясь не прямыми руками, а предплечьями, отклонившись больше назад). Приподнять прямую рабочую ногу от поверхности и отвести её в сторону на сколько возможно, не опуская ногу, и вернуться в исходное положение. Можно выполнять без пауз между повторениями. Цель – тренировка мышц абдукторов бедра., steps: [{exercise_id: 41, sequence_number: 1, step_text: Сядьте на пол лицом к камере. Ноги выпрямите перед собой}, {exercise_id: 41, sequence_number: 2, step_text: Корпус отклоните назад. Спина должна находиться под углом от 90 до 45 градусов относительно пола. Для удобства и стабильности можно опираться не на прямые руки, а на предплечья, согнув руки в локтях}, {exercise_id: 41, sequence_number: 3, step_text: Приподнимите рабочую ногу на 5-10 см }, {exercise_id: 41, sequence_number: 4, step_text: На выдохе отведите рабочую ногу в сторону (наружу) на максимально возможную амплитуду, которую позволяет ваша подвижность и физическое состояние. Движение должно происходить за счёт работы мыш
INFO [console] ц бедра}, {exercise_id: 41, sequence_number: 5, step_text: На вдохе так же плавно верните ногу в исходное положение (перед собой), но не кладите её на пол до окончания подхода. Нога остаётся на весу}, {exercise_id: 41, sequence_number: 6, step_text: Повторите движение ногой заданное количество раз}], measurement: null}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Отводите правую ногу, left_main_command: null, calibration_parameters: [{id: 54, name: Калибровка амплитуды сегмента, calibration_parameter_type: segment_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, has_division_by_side: true, is_monitored: true, components: [{id: 79, component_side: right, segment_type: null, parts: [{id: 202, sequence_number: 1, body_point: {id: 30, mediapipe_index: 29, movenet_index: null}, line_type: null, part_type: point}, {id: 203, sequence_
INFO [console] number: 2, body_point: {id: 31, mediapipe_index: 30, movenet_index: null}, line_type: null, part_type: point}]}, {id: 80, component_side: left, segment_type: null, parts: [{id: 204, sequence_number: 1, body_point: {id: 30, mediapipe_index: 29, movenet_index: null}, line_type: null, part_type: point}, {id: 205, sequence_number: 2, body_point: {id: 31, mediapipe_index: 30, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 90, command_side: right, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAW104K1WHDEAG0D97Q.mp3}, {id: 91, command_side: left, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAYKJTKDYTDD8RQ4Q3T.mp3}, {id: 92, command_side: right, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYA
INFO [console] ZD3AJP2XBJS4X8XJJ.mp3}, {id: 93, command_side: left, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAZD3AJP2XBJS4X8XJK.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYB0SHFNRH14429RE2WC.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYEB88G09XRWVHD2RBPX.mp4, body_side: left}]}], calibration_videos: []}]}}
INFO [console] Инициализация аудио-сервиса успешно завершена. Кэшировано файлов: 22
INFO [console] [DIO]
INFO [console] _onNoCanCompleted: h:false i: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге
INFO [console] KNEE_DIAG: recording to /storage/emulated/0/Android/data/team.most.rehabilitation.app/files/knee_diag/knee_diag.log
INFO [console] PoseEstimator: worker isolate up (accelerator=gpu, precision=fp16, fallback=none, model=pose_landmarks_detector_heavy.tflite (27055 KB), crop=native, cores=cpuAffinity source=cpu_capacity ok; candidates=[0,1,2,3,4,5,6,7]; selected=[6,7]; original=0xff; requested=0xc0; effective=0xc0; currentCpu=6; pinnedBeforeModel=true; capacity=[0:439,1:439,2:439,3:439,4:439,5:439,6:1024,7:1024]; freq=[0:1804800,1:1804800,2:1804800,3:1804800,4:1804800,5:1804800,6:2208000,7:2208000])
INFO [console] PosePreparer: isolate up (affinity=attached [6,7] (inherited) ok (source=cpu_capacity, selected=[6,7], currentCpu=7), crop=native)
INFO [console] PoseEstimator: pipelined preprocessing enabled (gpu inference + CPU prepare isolate, crop=native)
INFO [console] ANGLE_RESEARCH: recording to /storage/emulated/0/Android/data/team.most.rehabilitation.app/files/angle_research/angles_E2_right_C00_R1_2026-09-29T16-11-10.csv
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 imgSize=720 x 480 -> upright=480x720 imgFormat=35 planes=3 pixelStride=1 rowStride=1024 screenSize=393x825
INFO [console] 🎵 VideoPlaybackService: Нативный плеер полностью уничтожен.
INFO [console] ANGLE_RESEARCH: recording closed, files in /storage/emulated/0/Android/data/team.most.rehabilitation.app/files/angle_research
INFO [console] VideoOutput.Resize
INFO [console] {rect: {top: 0, left: 0, width: 1, height: 1}, wid: 0, handle: -5476376675588663216, id: 0}
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/detailed-exercises?unit_id=1292&rehabilitation_day_id=3479&workout_id=181
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 822|J5cbEpKtdmmUSoSVNrd60PKCeqU798Uiwbui0tcU2052a671
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=1292&rehabilitation_day_id=3479&workout_id=181
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, 29 Sep 2026 13:11:13 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-29T13:11:13.364473Z","request_id":"82e9c3f9-d0fa-402a-b911-bcc20198995a","version":"v1"},"data":{"unit_id":1292,"workout_duration_start":10,"workout_duration_end":20,"body_side":"right","exercises":[{"id":47,"sequence_number":1,"is_monitored":true,"name":"[OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","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":15,"instruction":{"exercise_name":"[OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov","inventory":"Возвышенность (стул и т.п.)","warning":"Не допускайте разворота/заваливания поднятой ноги","general_description":"Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; \nстопа и колено поднятой ноги не должны \"заваливаться\" наружу (отсутствие ротации); \nнаклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; \nдыхание свободное, без задержек; \nощущение растяжения должно быть комфортным, без острой боли.","steps":[{"exercise_id":47,"sequence_number":1,"step_text":"Встаньте боком растягиваемой ноги к камере"},{"exercise_id":47,"sequence_number":2,"step_text":"Поставьте рабочую ногу на возвышенность, другая нога опорная"},{"exercise_id":47,"sequence_number":3,"step_text":"Держите спину прямой"},{"exercise_id":47,"sequence_number":4,"step_text":"Стопа поднятой ноги смотрит на себя"},{"exercise_id":47,"sequence_number":5,"step_text":"Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прямой спиной"},{"exercise_id":47,"sequence_number":6,"step_text":"В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время"}],"measurement":null},"camera_orientation":"vertical","neural_network_type":"mediapipe","base_main_command":"Наклонитесь к правой ноге","left_main_command":null,"calibration_parameters":[{"id":64,"name":"Калибровка угла в колене","calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_type":"upward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"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","error_message":"Держите колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07RZWGYBA7ARDC81R4E7.mp3"},{"id":121,"command_side":"left","error_message":"Держите колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S2QYS3KHV7GTP1RR69.mp3"}],"videos":[]},{"id":106,"name":"Калибровка рабочего угла","calibration_parameter_type":"angle","fixation_type":"min_value","fixation_order":null,"deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"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","error_message":"Опускайте корпус ниже","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S3EDRCHQ9E234AQAYF.mp3"},{"id":157,"command_side":"left","error_message":"Опускайте корпус ниже","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S4VM5J29MBFBCZW8X6.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07S53VNQ828P1AYA22FX.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07WARDRBB2TPYHK7SVV6.mp4","body_side":"left"}]}],"calibration_videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM080MH53RPSJYR4B42W96.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM082WPWEQTFRNMSZ8W7XW.mp4","body_side":"left"}]},{"id":35,"sequence_number":2,"is_monitored":true,"name":"[OLD]Сгибание и разгибание в голеностопных суставах","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png","by_body_side":"not_by_side","execution_order_type":null,"approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"[OLD]Сгибание и разгибание в голеностопных суставах","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov","inventory":null,"warning":"Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх)","general_description":"Исходное положение - лёжа на спине боком к камере, ноги выпрямлены в коленях. Выполнять движения стопами на себя и от себя в максимально доступной амплитуде.","steps":[{"exercise_id":35,"sequence_number":1,"step_text":"Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере"},{"exercise_id":35,"sequence_number":2,"step_text":"Выпрямите обе ноги в коленях"},{"exercise_id":35,"sequence_number":3,"step_text":"Стопы расположите параллельно друг другу на ширине таза"},{"exercise_id":35,"sequence_number":4,"step_text":"Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости"},{"exercise_id":35,"sequence_number":5,"step_text":"Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами"},{"exercise_id":35,"sequence_number":6,"step_text":"На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области"},{"exercise_id":35,"sequence_number":7,"step_text":"От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на \"цыпочки\", ощущая напряжение в икрах"},{"exercise_id":35,"sequence_number":8,"step_text":"Движение должно быть ритмичным, без рывков, в спокойном темпе"}],"measurement":null},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Сгибайте и разгибайте стопы","left_main_command":null,"calibration_parameters":[{"id":41,"name":"Калибровка угла в колене","calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_type":"upward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"has_division_by_side":true,"is_monitored":false,"components":[{"id":53,"component_side":"right","segment_type":null,"parts":[{"id":126,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":127,"sequence_number":2,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":128,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":54,"component_side":"left","segment_type":null,"parts":[{"id":129,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":130,"sequence_number":2,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":131,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":54,"command_side":"right","error_message":"Держите колени выпрямленными","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6G4N63ERBK7A3GMC7Q.mp3"},{"id":55,"command_side":"left","error_message":"Держите колени выпрямленными","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6J94Q8G92FW3EG2MHJ.mp3"}],"videos":[]},{"id":42,"name":"Калибровка амплитуды рабочего угла","calibration_parameter_type":"angle_amplitude","fixation_type":"alternate","fixation_order":"min_at_first","deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"has_division_by_side":true,"is_monitored":true,"components":[{"id":55,"component_side":"right","segment_type":null,"parts":[{"id":132,"sequence_number":1,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":133,"sequence_number":2,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"},{"id":134,"sequence_number":3,"body_point":{"id":33,"mediapipe_index":32,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":56,"component_side":"left","segment_type":null,"parts":[{"id":135,"sequence_number":1,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":136,"sequence_number":2,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"},{"id":137,"sequence_number":3,"body_point":{"id":32,"mediapipe_index":31,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":56,"command_side":"right","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6KTZ7EFDZ9B15DFXR2.mp3"},{"id":57,"command_side":"left","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6MXVWWB1BJ805RWCG1.mp3"},{"id":58,"command_side":"right","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6N21GHA8N2KRDT30NG.mp3"},{"id":59,"command_side":"left","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6PVE9W6N8T5JCD72XB.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K6QZ81F8KS9ZP7CSQ0R.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K8YXWA9DB5YA3V6VJHN.mp4","body_side":"left"}]}],"calibration_videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KB0ETSNMQ4PJJPMCG1Y.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KD1AGX9685GQWVAN6F2.mp4","body_side":"left"}]},{"id":40,"sequence_number":3,"is_monitored":true,"name":"[OLD]Круговые движения ногой - в и.п. лежа на спине","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png","by_body_side":"by_side","execution_order_type":"symmetric","approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"[OLD]Круговые движения ногой - в и.п. лежа на спине","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQA5HTA1S14HGRG0J5HK6SYP.mov","inventory":null,"warning":"Не допускайте сильного напряжения или переразгиба в пояснице","general_description":"В и.п. лежа на спине. Ноги максимально выпрямлены в коленных суставах, стопы \"на себя\", выполнить движения по часовой стрелке, далее против часовой стрелки. Цель - тренировка четырехглавых мышц, абдукторов/аддукторов","steps":[{"exercise_id":40,"sequence_number":1,"step_text":"Лягте на спину, расположитесь боком рабочей ноги к камере"},{"exercise_id":40,"sequence_number":2,"step_text":"Руки расположите вдоль туловища ладонями вниз или в стороны для устойчивости"},{"exercise_id":40,"sequence_number":3,"step_text":"Ноги полностью выпрямите в коленных суставах"},{"exercise_id":40,"sequence_number":4,"step_text":"Стопы потяните на себя (тыльное сгибание в голеностопном суставе)"},{"exercise_id":40,"sequence_number":5,"step_text":"Поясницу прижмите к полу, живот слегка подтяните, чтобы избежать излишнего прогиба в пояснице"},{"exercise_id":40,"sequence_number":6,"step_text":"Начните выполнять круговое движение рабочей выпрямленной ногой. Нога в верхней точке должна подниматься на уровень 30°-45° градусов от пола"},{"exercise_id":40,"sequence_number":7,"step_text":"Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения"}],"measurement":null},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Выполняйте круговые движения правой ногой","left_main_command":null,"calibration_parameters":[{"id":51,"name":"Калибровка угла в колене","calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_type":"upward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"has_division_by_side":true,"is_monitored":false,"components":[{"id":73,"component_side":"right","segment_type":null,"parts":[{"id":184,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":185,"sequence_number":2,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":186,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":74,"component_side":"left","segment_type":null,"parts":[{"id":187,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":188,"sequence_number":2,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":189,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":82,"command_side":"right","error_message":"Держите рабочее колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Q6941X7HGRFE3DB6N.mp3"},{"id":83,"command_side":"left","error_message":"Держите рабочее колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2S7EFGG1CMNXS3X0B9.mp3"}],"videos":[]},{"id":52,"name":"Калибровка угла в голеностопе","calibration_parameter_type":"angle","fixation_type":"min_value","fixation_order":null,"deviation_type":"downward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"has_division_by_side":true,"is_monitored":false,"components":[{"id":75,"component_side":"right","segment_type":null,"parts":[{"id":190,"sequence_number":1,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":191,"sequence_number":2,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"},{"id":192,"sequence_number":3,"body_point":{"id":33,"mediapipe_index":32,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":76,"component_side":"left","segment_type":null,"parts":[{"id":193,"sequence_number":1,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":194,"sequence_number":2,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"},{"id":195,"sequence_number":3,"body_point":{"id":32,"mediapipe_index":31,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":84,"command_side":"right","error_message":"Стопа должна быть повернута на себя","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2V633YE4A7508Q85ZG.mp3"},{"id":85,"command_side":"left","error_message":"Стопа должна быть повернута на себя","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2WQTAVDJYMYKHX4KAK.mp3"}],"videos":[]},{"id":53,"name":"Калибровка амплитуды рабочего угла","calibration_parameter_type":"angle_amplitude","fixation_type":"alternate","fixation_order":"max_at_first","deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"has_division_by_side":true,"is_monitored":true,"components":[{"id":77,"component_side":"right","segment_type":null,"parts":[{"id":196,"sequence_number":1,"body_point":{"id":13,"mediapipe_index":12,"movenet_index":6},"line_type":null,"part_type":"point"},{"id":197,"sequence_number":2,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":198,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":78,"component_side":"left","segment_type":null,"parts":[{"id":199,"sequence_number":1,"body_point":{"id":12,"mediapipe_index":11,"movenet_index":5},"line_type":null,"part_type":"point"},{"id":200,"sequence_number":2,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":201,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":86,"command_side":"right","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2X18JJG4TFPYN0ND5Y.mp3"},{"id":87,"command_side":"left","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2YX059J0RZP24T0HN9.mp3"},{"id":88,"command_side":"right","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Z05G53A6FN9NEG7NN.mp3"},{"id":89,"command_side":"left","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ30Y35EG06XG7XCH1R5.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ31FPW8S584F4QRXSNY.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ5D8FVE9P445AJRAKRG.mp4","body_side":"left"}]}],"calibration_videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ7M5BETAWEQX30NRGYQ.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ9TKMBAG19QX94G802M.mp4","body_side":"left"}]},{"id":41,"sequence_number":4,"is_monitored":true,"name":"[OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png","by_body_side":"by_side","execution_order_type":"symmetric","approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"[OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQC6319HS0NS6B4PRV3WH9FT.mov","inventory":null,"warning":"Следить за тем, чтобы бедро не ротировалось (вращалось) наружу, носок стопы отведённой ноги должен “смотреть вверх”","general_description":"Спина относительно поверхности может находиться от 90 до 45 градусов к полу (например, упираясь не прямыми руками, а предплечьями, отклонившись больше назад). Приподнять прямую рабочую ногу от поверхности и отвести её в сторону на сколько возможно, не опуская ногу, и вернуться в исходное положение. Можно выполнять без пауз между повторениями. Цель – тренировка мышц абдукторов бедра.","steps":[{"exercise_id":41,"sequence_number":1,"step_text":"Сядьте на пол лицом к камере. Ноги выпрямите перед собой"},{"exercise_id":41,"sequence_number":2,"step_text":"Корпус отклоните назад. Спина должна находиться под углом от 90 до 45 градусов относительно пола. Для удобства и стабильности можно опираться не на прямые руки, а на предплечья, согнув руки в локтях"},{"exercise_id":41,"sequence_number":3,"step_text":"Приподнимите рабочую ногу на 5-10 см "},{"exercise_id":41,"sequence_number":4,"step_text":"На выдохе отведите рабочую ногу в сторону (наружу) на максимально возможную амплитуду, которую позволяет ваша подвижность и физическое состояние. Движение должно происходить за счёт работы мышц бедра"},{"exercise_id":41,"sequence_number":5,"step_text":"На вдохе так же плавно верните ногу в исходное положение (перед собой), но не кладите её на пол до окончания подхода. Нога остаётся на весу"},{"exercise_id":41,"sequence_number":6,"step_text":"Повторите движение ногой заданное количество раз"}],"measurement":null},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Отводите правую ногу","left_main_command":null,"calibration_parameters":[{"id":54,"name":"Калибровка амплитуды сегмента","calibration_parameter_type":"segment_amplitude","fixation_type":"alternate","fixation_order":"min_at_first","deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"has_division_by_side":true,"is_monitored":true,"components":[{"id":79,"component_side":"right","segment_type":null,"parts":[{"id":202,"sequence_number":1,"body_point":{"id":30,"mediapipe_index":29,"movenet_index":null},"line_type":null,"part_type":"point"},{"id":203,"sequence_number":2,"body_point":{"id":31,"mediapipe_index":30,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":80,"component_side":"left","segment_type":null,"parts":[{"id":204,"sequence_number":1,"body_point":{"id":30,"mediapipe_index":29,"movenet_index":null},"line_type":null,"part_type":"point"},{"id":205,"sequence_number":2,"body_point":{"id":31,"mediapipe_index":30,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":90,"command_side":"right","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAW104K1WHDEAG0D97Q.mp3"},{"id":91,"command_side":"left","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAYKJTKDYTDD8RQ4Q3T.mp3"},{"id":92,"command_side":"right","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAZD3AJP2XBJS4X8XJJ.mp3"},{"id":93,"command_side":"left","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAZD3AJP2XBJS4X8XJK.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYB0SHFNRH14429RE2WC.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYEB88G09XRWVHD2RBPX.mp4","body_side":"left"}]}],"calibration_videos":[]}]}}
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-29T13:11:13.364473Z, request_id: 82e9c3f9-d0fa-402a-b911-bcc20198995a, version: v1}, data: {unit_id: 1292, workout_duration_start: 10, workout_duration_end: 20, body_side: right, exercises: [{id: 47, sequence_number: 1, is_monitored: true, name: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, 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: 15, instruction: {exercise_name: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, video: https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov, inventory: Возвышенность (стул и т.п.), warning: Не допускайте разворота/заваливания поднятой ноги, general_description: Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул,
INFO [console] скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; стопа и колено поднятой ноги не должны "заваливаться" наружу (отсутствие ротации); наклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; дыхание свободное, без задержек; ощущение растяжения должно быть комфортным, без острой боли., steps: [{exercise_id: 47, sequence_number: 1, step_text: Встаньте боком растягиваемой ноги к камере}, {exercise_id: 47, sequence_number: 2, step_text: Поставьте рабочую ногу на возвышенность, другая нога опорная}, {exercise_id: 47, sequence_number: 3, step_text: Держите спину прямой}, {exercise_id: 47, sequence_number: 4, step_text: Стопа поднятой ноги смотрит на себя}, {exercise_id: 47, sequence_number: 5, step_text: Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянут
INFO [console] ься с прямой спиной}, {exercise_id: 47, sequence_number: 6, step_text: В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время}], measurement: null}, camera_orientation: vertical, neural_network_type: mediapipe, base_main_command: Наклонитесь к правой ноге, left_main_command: null, calibration_parameters: [{id: 64, name: Калибровка угла в колене, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_type: upward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, 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},
INFO [console] {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, error_message: Держите колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07RZWGYBA7ARDC81R4E7.mp3}, {id: 121, command_side: left, error_message: Держите колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S2QYS3KHV7GTP1RR69.mp3}], videos: []}, {id: 106, name: Калибровка
INFO [console] рабочего угла, calibration_parameter_type: angle, fixation_type: min_value, fixation_order: null, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, 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:
INFO [console] 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, error_message: Опускайте корпус ниже, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S3EDRCHQ9E234AQAYF.mp3}, {id: 157, command_side: left, error_message: Опускайте корпус ниже, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S4VM5J29MBFBCZW8X6.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07S53VNQ828P1AYA22FX.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07WARDRBB2TPYHK7SVV6.mp4, body_side: left}]}], calibration_videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM080MH53RPSJYR4B42W96.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/
INFO [console] storage/exercise/calibration-videos/01M2SM082WPWEQTFRNMSZ8W7XW.mp4, body_side: left}]}, {id: 35, sequence_number: 2, is_monitored: true, name: [OLD]Сгибание и разгибание в голеностопных суставах, image: https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png, by_body_side: not_by_side, execution_order_type: null, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: [OLD]Сгибание и разгибание в голеностопных суставах, video: https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov, inventory: null, warning: Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх), general_description: Исходное положение - лёжа на спине боком к камере, ноги выпрямлены в коленях. Выполнять движения стопами на себя и от себя в максимально доступной амплитуде., steps: [{exercise_id: 35, sequence_number: 1, step_text:
INFO [console] Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере}, {exercise_id: 35, sequence_number: 2, step_text: Выпрямите обе ноги в коленях}, {exercise_id: 35, sequence_number: 3, step_text: Стопы расположите параллельно друг другу на ширине таза}, {exercise_id: 35, sequence_number: 4, step_text: Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости}, {exercise_id: 35, sequence_number: 5, step_text: Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами}, {exercise_id: 35, sequence_number: 6, step_text: На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области}, {exercise_id: 35, sequence_number: 7, step_text: От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на "цыпочки", ощущая напряжение в икрах},
INFO [console] {exercise_id: 35, sequence_number: 8, step_text: Движение должно быть ритмичным, без рывков, в спокойном темпе}], measurement: null}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Сгибайте и разгибайте стопы, left_main_command: null, calibration_parameters: [{id: 41, name: Калибровка угла в колене, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_type: upward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, has_division_by_side: true, is_monitored: false, components: [{id: 53, component_side: right, segment_type: null, parts: [{id: 126, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 127, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 128, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, lin
INFO [console] e_type: null, part_type: point}]}, {id: 54, component_side: left, segment_type: null, parts: [{id: 129, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 130, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 131, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 54, command_side: right, error_message: Держите колени выпрямленными, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6G4N63ERBK7A3GMC7Q.mp3}, {id: 55, command_side: left, error_message: Держите колени выпрямленными, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6J94Q8G92FW3EG2MHJ.mp3}], videos: []}, {id: 42, name: Калибровка амплитуды рабочего угла, calibration_parameter_type: angle_amplitude, fixation_type: alternate, f
INFO [console] ixation_order: min_at_first, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, has_division_by_side: true, is_monitored: true, components: [{id: 55, component_side: right, segment_type: null, parts: [{id: 132, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 133, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 134, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 56, component_side: left, segment_type: null, parts: [{id: 135, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 136, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}, {id: 137, sequence_number: 3, body_point: {
INFO [console] id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 56, command_side: right, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6KTZ7EFDZ9B15DFXR2.mp3}, {id: 57, command_side: left, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6MXVWWB1BJ805RWCG1.mp3}, {id: 58, command_side: right, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6N21GHA8N2KRDT30NG.mp3}, {id: 59, command_side: left, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6PVE9W6N8T5JCD72XB.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K6QZ81F8KS9ZP7CSQ0R.mp4, body_side:
INFO [console] right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K8YXWA9DB5YA3V6VJHN.mp4, body_side: left}]}], calibration_videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KB0ETSNMQ4PJJPMCG1Y.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KD1AGX9685GQWVAN6F2.mp4, body_side: left}]}, {id: 40, sequence_number: 3, is_monitored: true, name: [OLD]Круговые движения ногой - в и.п. лежа на спине, image: https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: [OLD]Круговые движения ногой - в и.п. лежа на спине, video: https://rehabilitation.most.team/storage/exercise/videos/01KQA5HTA1S14HGRG0J5HK6SYP.mov, inventory: null, warning: Не допускайте сильного напряжения или перера
INFO [console] згиба в пояснице, general_description: В и.п. лежа на спине. Ноги максимально выпрямлены в коленных суставах, стопы "на себя", выполнить движения по часовой стрелке, далее против часовой стрелки. Цель - тренировка четырехглавых мышц, абдукторов/аддукторов, steps: [{exercise_id: 40, sequence_number: 1, step_text: Лягте на спину, расположитесь боком рабочей ноги к камере}, {exercise_id: 40, sequence_number: 2, step_text: Руки расположите вдоль туловища ладонями вниз или в стороны для устойчивости}, {exercise_id: 40, sequence_number: 3, step_text: Ноги полностью выпрямите в коленных суставах}, {exercise_id: 40, sequence_number: 4, step_text: Стопы потяните на себя (тыльное сгибание в голеностопном суставе)}, {exercise_id: 40, sequence_number: 5, step_text: Поясницу прижмите к полу, живот слегка подтяните, чтобы избежать излишнего прогиба в пояснице}, {exercise_id: 40, sequence_number: 6, step_text: Начните выполнять круговое движение рабочей выпрямленной ногой. Нога в верхней точке должна
INFO [console] подниматься на уровень 30°-45° градусов от пола}, {exercise_id: 40, sequence_number: 7, step_text: Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения}], measurement: null}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Выполняйте круговые движения правой ногой, left_main_command: null, calibration_parameters: [{id: 51, name: Калибровка угла в колене, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_type: upward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, has_division_by_side: true, is_monitored: false, components: [{id: 73, component_side: right, segment_type: null, parts: [{id: 184, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 185, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point
INFO [console] }, {id: 186, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 74, component_side: left, segment_type: null, parts: [{id: 187, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 188, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 189, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 82, command_side: right, error_message: Держите рабочее колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Q6941X7HGRFE3DB6N.mp3}, {id: 83, command_side: left, error_message: Держите рабочее колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2S7EFGG1CMNXS3X0B9.mp3}], videos: []}, {id: 52, na
INFO [console] me: Калибровка угла в голеностопе, calibration_parameter_type: angle, fixation_type: min_value, fixation_order: null, deviation_type: downward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, has_division_by_side: true, is_monitored: false, components: [{id: 75, component_side: right, segment_type: null, parts: [{id: 190, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 191, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 192, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 76, component_side: left, segment_type: null, parts: [{id: 193, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 194, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, moven
INFO [console] et_index: 15}, line_type: null, part_type: point}, {id: 195, sequence_number: 3, body_point: {id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 84, command_side: right, error_message: Стопа должна быть повернута на себя, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2V633YE4A7508Q85ZG.mp3}, {id: 85, command_side: left, error_message: Стопа должна быть повернута на себя, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2WQTAVDJYMYKHX4KAK.mp3}], videos: []}, {id: 53, name: Калибровка амплитуды рабочего угла, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: max_at_first, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, has_division_by_side: true, is_monitored: true, components: [{id: 77, component_side: right, segment_type: null, parts: [{id: 196, sequence_number: 1,
INFO [console] body_point: {id: 13, mediapipe_index: 12, movenet_index: 6}, line_type: null, part_type: point}, {id: 197, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 198, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 78, component_side: left, segment_type: null, parts: [{id: 199, sequence_number: 1, body_point: {id: 12, mediapipe_index: 11, movenet_index: 5}, line_type: null, part_type: point}, {id: 200, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 201, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 86, command_side: right, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2X18JJG4TFPYN0ND5
INFO [console] Y.mp3}, {id: 87, command_side: left, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2YX059J0RZP24T0HN9.mp3}, {id: 88, command_side: right, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Z05G53A6FN9NEG7NN.mp3}, {id: 89, command_side: left, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ30Y35EG06XG7XCH1R5.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ31FPW8S584F4QRXSNY.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ5D8FVE9P445AJRAKRG.mp4, body_side: left}]}], calibration_videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ7M5BETAWEQX30NRGYQ.m
INFO [console] p4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ9TKMBAG19QX94G802M.mp4, body_side: left}]}, {id: 41, sequence_number: 4, is_monitored: true, name: [OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, image: https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: [OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, video: https://rehabilitation.most.team/storage/exercise/videos/01KQC6319HS0NS6B4PRV3WH9FT.mov, inventory: null, warning: Следить за тем, чтобы бедро не ротировалось (вращалось) наружу, носок стопы отведённой ноги должен “смотреть вверх”, general_description: Спина относительно поверхности может находиться от 90 до 45 градусов к полу (наприм
INFO [console] ер, упираясь не прямыми руками, а предплечьями, отклонившись больше назад). Приподнять прямую рабочую ногу от поверхности и отвести её в сторону на сколько возможно, не опуская ногу, и вернуться в исходное положение. Можно выполнять без пауз между повторениями. Цель – тренировка мышц абдукторов бедра., steps: [{exercise_id: 41, sequence_number: 1, step_text: Сядьте на пол лицом к камере. Ноги выпрямите перед собой}, {exercise_id: 41, sequence_number: 2, step_text: Корпус отклоните назад. Спина должна находиться под углом от 90 до 45 градусов относительно пола. Для удобства и стабильности можно опираться не на прямые руки, а на предплечья, согнув руки в локтях}, {exercise_id: 41, sequence_number: 3, step_text: Приподнимите рабочую ногу на 5-10 см }, {exercise_id: 41, sequence_number: 4, step_text: На выдохе отведите рабочую ногу в сторону (наружу) на максимально возможную амплитуду, которую позволяет ваша подвижность и физическое состояние. Движение должно происходить за счёт работы мыш
INFO [console] ц бедра}, {exercise_id: 41, sequence_number: 5, step_text: На вдохе так же плавно верните ногу в исходное положение (перед собой), но не кладите её на пол до окончания подхода. Нога остаётся на весу}, {exercise_id: 41, sequence_number: 6, step_text: Повторите движение ногой заданное количество раз}], measurement: null}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Отводите правую ногу, left_main_command: null, calibration_parameters: [{id: 54, name: Калибровка амплитуды сегмента, calibration_parameter_type: segment_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, has_division_by_side: true, is_monitored: true, components: [{id: 79, component_side: right, segment_type: null, parts: [{id: 202, sequence_number: 1, body_point: {id: 30, mediapipe_index: 29, movenet_index: null}, line_type: null, part_type: point}, {id: 203, sequence_
INFO [console] number: 2, body_point: {id: 31, mediapipe_index: 30, movenet_index: null}, line_type: null, part_type: point}]}, {id: 80, component_side: left, segment_type: null, parts: [{id: 204, sequence_number: 1, body_point: {id: 30, mediapipe_index: 29, movenet_index: null}, line_type: null, part_type: point}, {id: 205, sequence_number: 2, body_point: {id: 31, mediapipe_index: 30, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 90, command_side: right, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAW104K1WHDEAG0D97Q.mp3}, {id: 91, command_side: left, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAYKJTKDYTDD8RQ4Q3T.mp3}, {id: 92, command_side: right, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYA
INFO [console] ZD3AJP2XBJS4X8XJJ.mp3}, {id: 93, command_side: left, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAZD3AJP2XBJS4X8XJK.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYB0SHFNRH14429RE2WC.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYEB88G09XRWVHD2RBPX.mp4, body_side: left}]}], calibration_videos: []}]}}
INFO [console] Инициализация аудио-сервиса успешно завершена. Кэшировано файлов: 22
INFO [console] [DIO]
INFO [console] _onNoCanCompleted: h:false i: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге
INFO [console] KNEE_DIAG: recording to /storage/emulated/0/Android/data/team.most.rehabilitation.app/files/knee_diag/knee_diag.log
INFO [console] 🎵 VideoPlaybackService: Нативный плеер полностью уничтожен.
INFO [console] VideoOutput.Resize
INFO [console] {rect: {top: 0, left: 0, width: 1, height: 1}, wid: 0, handle: -5476376670085875120, id: 0}
INFO [console] PoseEstimator: worker isolate up (accelerator=gpu, precision=fp16, fallback=none, model=pose_landmarks_detector_heavy.tflite (27055 KB), crop=native, cores=attached [6,7] (inherited) ok (source=cpu_capacity, selected=[6,7], currentCpu=6))
INFO [console] PosePreparer: isolate up (affinity=attached [6,7] (inherited) ok (source=cpu_capacity, selected=[6,7], currentCpu=6), crop=native)
INFO [console] PoseEstimator: pipelined preprocessing enabled (gpu inference + CPU prepare isolate, crop=native)
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/detailed-exercises?unit_id=1292&rehabilitation_day_id=3479&workout_id=181
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 822|J5cbEpKtdmmUSoSVNrd60PKCeqU798Uiwbui0tcU2052a671
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=1292&rehabilitation_day_id=3479&workout_id=181
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, 29 Sep 2026 13:11:20 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-29T13:11:20.013649Z","request_id":"9bee2d90-4f24-4145-ad30-a74c898e23ef","version":"v1"},"data":{"unit_id":1292,"workout_duration_start":10,"workout_duration_end":20,"body_side":"right","exercises":[{"id":47,"sequence_number":1,"is_monitored":true,"name":"[OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","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":15,"instruction":{"exercise_name":"[OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov","inventory":"Возвышенность (стул и т.п.)","warning":"Не допускайте разворота/заваливания поднятой ноги","general_description":"Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; \nстопа и колено поднятой ноги не должны \"заваливаться\" наружу (отсутствие ротации); \nнаклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; \nдыхание свободное, без задержек; \nощущение растяжения должно быть комфортным, без острой боли.","steps":[{"exercise_id":47,"sequence_number":1,"step_text":"Встаньте боком растягиваемой ноги к камере"},{"exercise_id":47,"sequence_number":2,"step_text":"Поставьте рабочую ногу на возвышенность, другая нога опорная"},{"exercise_id":47,"sequence_number":3,"step_text":"Держите спину прямой"},{"exercise_id":47,"sequence_number":4,"step_text":"Стопа поднятой ноги смотрит на себя"},{"exercise_id":47,"sequence_number":5,"step_text":"Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прямой спиной"},{"exercise_id":47,"sequence_number":6,"step_text":"В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время"}],"measurement":null},"camera_orientation":"vertical","neural_network_type":"mediapipe","base_main_command":"Наклонитесь к правой ноге","left_main_command":null,"calibration_parameters":[{"id":64,"name":"Калибровка угла в колене","calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_type":"upward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"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","error_message":"Держите колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07RZWGYBA7ARDC81R4E7.mp3"},{"id":121,"command_side":"left","error_message":"Держите колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S2QYS3KHV7GTP1RR69.mp3"}],"videos":[]},{"id":106,"name":"Калибровка рабочего угла","calibration_parameter_type":"angle","fixation_type":"min_value","fixation_order":null,"deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"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","error_message":"Опускайте корпус ниже","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S3EDRCHQ9E234AQAYF.mp3"},{"id":157,"command_side":"left","error_message":"Опускайте корпус ниже","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S4VM5J29MBFBCZW8X6.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07S53VNQ828P1AYA22FX.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07WARDRBB2TPYHK7SVV6.mp4","body_side":"left"}]}],"calibration_videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM080MH53RPSJYR4B42W96.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM082WPWEQTFRNMSZ8W7XW.mp4","body_side":"left"}]},{"id":35,"sequence_number":2,"is_monitored":true,"name":"[OLD]Сгибание и разгибание в голеностопных суставах","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png","by_body_side":"not_by_side","execution_order_type":null,"approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"[OLD]Сгибание и разгибание в голеностопных суставах","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov","inventory":null,"warning":"Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх)","general_description":"Исходное положение - лёжа на спине боком к камере, ноги выпрямлены в коленях. Выполнять движения стопами на себя и от себя в максимально доступной амплитуде.","steps":[{"exercise_id":35,"sequence_number":1,"step_text":"Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере"},{"exercise_id":35,"sequence_number":2,"step_text":"Выпрямите обе ноги в коленях"},{"exercise_id":35,"sequence_number":3,"step_text":"Стопы расположите параллельно друг другу на ширине таза"},{"exercise_id":35,"sequence_number":4,"step_text":"Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости"},{"exercise_id":35,"sequence_number":5,"step_text":"Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами"},{"exercise_id":35,"sequence_number":6,"step_text":"На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области"},{"exercise_id":35,"sequence_number":7,"step_text":"От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на \"цыпочки\", ощущая напряжение в икрах"},{"exercise_id":35,"sequence_number":8,"step_text":"Движение должно быть ритмичным, без рывков, в спокойном темпе"}],"measurement":null},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Сгибайте и разгибайте стопы","left_main_command":null,"calibration_parameters":[{"id":41,"name":"Калибровка угла в колене","calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_type":"upward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"has_division_by_side":true,"is_monitored":false,"components":[{"id":53,"component_side":"right","segment_type":null,"parts":[{"id":126,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":127,"sequence_number":2,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":128,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":54,"component_side":"left","segment_type":null,"parts":[{"id":129,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":130,"sequence_number":2,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":131,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":54,"command_side":"right","error_message":"Держите колени выпрямленными","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6G4N63ERBK7A3GMC7Q.mp3"},{"id":55,"command_side":"left","error_message":"Держите колени выпрямленными","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6J94Q8G92FW3EG2MHJ.mp3"}],"videos":[]},{"id":42,"name":"Калибровка амплитуды рабочего угла","calibration_parameter_type":"angle_amplitude","fixation_type":"alternate","fixation_order":"min_at_first","deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"has_division_by_side":true,"is_monitored":true,"components":[{"id":55,"component_side":"right","segment_type":null,"parts":[{"id":132,"sequence_number":1,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":133,"sequence_number":2,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"},{"id":134,"sequence_number":3,"body_point":{"id":33,"mediapipe_index":32,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":56,"component_side":"left","segment_type":null,"parts":[{"id":135,"sequence_number":1,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":136,"sequence_number":2,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"},{"id":137,"sequence_number":3,"body_point":{"id":32,"mediapipe_index":31,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":56,"command_side":"right","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6KTZ7EFDZ9B15DFXR2.mp3"},{"id":57,"command_side":"left","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6MXVWWB1BJ805RWCG1.mp3"},{"id":58,"command_side":"right","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6N21GHA8N2KRDT30NG.mp3"},{"id":59,"command_side":"left","error_message":"Вращайте стопы в большей амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6PVE9W6N8T5JCD72XB.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K6QZ81F8KS9ZP7CSQ0R.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K8YXWA9DB5YA3V6VJHN.mp4","body_side":"left"}]}],"calibration_videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KB0ETSNMQ4PJJPMCG1Y.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KD1AGX9685GQWVAN6F2.mp4","body_side":"left"}]},{"id":40,"sequence_number":3,"is_monitored":true,"name":"[OLD]Круговые движения ногой - в и.п. лежа на спине","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png","by_body_side":"by_side","execution_order_type":"symmetric","approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"[OLD]Круговые движения ногой - в и.п. лежа на спине","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQA5HTA1S14HGRG0J5HK6SYP.mov","inventory":null,"warning":"Не допускайте сильного напряжения или переразгиба в пояснице","general_description":"В и.п. лежа на спине. Ноги максимально выпрямлены в коленных суставах, стопы \"на себя\", выполнить движения по часовой стрелке, далее против часовой стрелки. Цель - тренировка четырехглавых мышц, абдукторов/аддукторов","steps":[{"exercise_id":40,"sequence_number":1,"step_text":"Лягте на спину, расположитесь боком рабочей ноги к камере"},{"exercise_id":40,"sequence_number":2,"step_text":"Руки расположите вдоль туловища ладонями вниз или в стороны для устойчивости"},{"exercise_id":40,"sequence_number":3,"step_text":"Ноги полностью выпрямите в коленных суставах"},{"exercise_id":40,"sequence_number":4,"step_text":"Стопы потяните на себя (тыльное сгибание в голеностопном суставе)"},{"exercise_id":40,"sequence_number":5,"step_text":"Поясницу прижмите к полу, живот слегка подтяните, чтобы избежать излишнего прогиба в пояснице"},{"exercise_id":40,"sequence_number":6,"step_text":"Начните выполнять круговое движение рабочей выпрямленной ногой. Нога в верхней точке должна подниматься на уровень 30°-45° градусов от пола"},{"exercise_id":40,"sequence_number":7,"step_text":"Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения"}],"measurement":null},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Выполняйте круговые движения правой ногой","left_main_command":null,"calibration_parameters":[{"id":51,"name":"Калибровка угла в колене","calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_type":"upward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"has_division_by_side":true,"is_monitored":false,"components":[{"id":73,"component_side":"right","segment_type":null,"parts":[{"id":184,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":185,"sequence_number":2,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":186,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":74,"component_side":"left","segment_type":null,"parts":[{"id":187,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":188,"sequence_number":2,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":189,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":82,"command_side":"right","error_message":"Держите рабочее колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Q6941X7HGRFE3DB6N.mp3"},{"id":83,"command_side":"left","error_message":"Держите рабочее колено выпрямленным","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2S7EFGG1CMNXS3X0B9.mp3"}],"videos":[]},{"id":52,"name":"Калибровка угла в голеностопе","calibration_parameter_type":"angle","fixation_type":"min_value","fixation_order":null,"deviation_type":"downward","deviation_critical":10,"deviation_uncritical":null,"compensation_influence":null,"has_division_by_side":true,"is_monitored":false,"components":[{"id":75,"component_side":"right","segment_type":null,"parts":[{"id":190,"sequence_number":1,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":191,"sequence_number":2,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"},{"id":192,"sequence_number":3,"body_point":{"id":33,"mediapipe_index":32,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":76,"component_side":"left","segment_type":null,"parts":[{"id":193,"sequence_number":1,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":194,"sequence_number":2,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"},{"id":195,"sequence_number":3,"body_point":{"id":32,"mediapipe_index":31,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":84,"command_side":"right","error_message":"Стопа должна быть повернута на себя","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2V633YE4A7508Q85ZG.mp3"},{"id":85,"command_side":"left","error_message":"Стопа должна быть повернута на себя","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2WQTAVDJYMYKHX4KAK.mp3"}],"videos":[]},{"id":53,"name":"Калибровка амплитуды рабочего угла","calibration_parameter_type":"angle_amplitude","fixation_type":"alternate","fixation_order":"max_at_first","deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"has_division_by_side":true,"is_monitored":true,"components":[{"id":77,"component_side":"right","segment_type":null,"parts":[{"id":196,"sequence_number":1,"body_point":{"id":13,"mediapipe_index":12,"movenet_index":6},"line_type":null,"part_type":"point"},{"id":197,"sequence_number":2,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":198,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":78,"component_side":"left","segment_type":null,"parts":[{"id":199,"sequence_number":1,"body_point":{"id":12,"mediapipe_index":11,"movenet_index":5},"line_type":null,"part_type":"point"},{"id":200,"sequence_number":2,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":201,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":86,"command_side":"right","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2X18JJG4TFPYN0ND5Y.mp3"},{"id":87,"command_side":"left","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2YX059J0RZP24T0HN9.mp3"},{"id":88,"command_side":"right","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Z05G53A6FN9NEG7NN.mp3"},{"id":89,"command_side":"left","error_message":"Поднимайте ногу на необходимый уровень","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ30Y35EG06XG7XCH1R5.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ31FPW8S584F4QRXSNY.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ5D8FVE9P445AJRAKRG.mp4","body_side":"left"}]}],"calibration_videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ7M5BETAWEQX30NRGYQ.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ9TKMBAG19QX94G802M.mp4","body_side":"left"}]},{"id":41,"sequence_number":4,"is_monitored":true,"name":"[OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png","by_body_side":"by_side","execution_order_type":"symmetric","approaches_count":2,"execution_count":6,"execution_time":null,"instruction":{"exercise_name":"[OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQC6319HS0NS6B4PRV3WH9FT.mov","inventory":null,"warning":"Следить за тем, чтобы бедро не ротировалось (вращалось) наружу, носок стопы отведённой ноги должен “смотреть вверх”","general_description":"Спина относительно поверхности может находиться от 90 до 45 градусов к полу (например, упираясь не прямыми руками, а предплечьями, отклонившись больше назад). Приподнять прямую рабочую ногу от поверхности и отвести её в сторону на сколько возможно, не опуская ногу, и вернуться в исходное положение. Можно выполнять без пауз между повторениями. Цель – тренировка мышц абдукторов бедра.","steps":[{"exercise_id":41,"sequence_number":1,"step_text":"Сядьте на пол лицом к камере. Ноги выпрямите перед собой"},{"exercise_id":41,"sequence_number":2,"step_text":"Корпус отклоните назад. Спина должна находиться под углом от 90 до 45 градусов относительно пола. Для удобства и стабильности можно опираться не на прямые руки, а на предплечья, согнув руки в локтях"},{"exercise_id":41,"sequence_number":3,"step_text":"Приподнимите рабочую ногу на 5-10 см "},{"exercise_id":41,"sequence_number":4,"step_text":"На выдохе отведите рабочую ногу в сторону (наружу) на максимально возможную амплитуду, которую позволяет ваша подвижность и физическое состояние. Движение должно происходить за счёт работы мышц бедра"},{"exercise_id":41,"sequence_number":5,"step_text":"На вдохе так же плавно верните ногу в исходное положение (перед собой), но не кладите её на пол до окончания подхода. Нога остаётся на весу"},{"exercise_id":41,"sequence_number":6,"step_text":"Повторите движение ногой заданное количество раз"}],"measurement":null},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Отводите правую ногу","left_main_command":null,"calibration_parameters":[{"id":54,"name":"Калибровка амплитуды сегмента","calibration_parameter_type":"segment_amplitude","fixation_type":"alternate","fixation_order":"min_at_first","deviation_type":"upward","deviation_critical":20,"deviation_uncritical":10,"compensation_influence":null,"has_division_by_side":true,"is_monitored":true,"components":[{"id":79,"component_side":"right","segment_type":null,"parts":[{"id":202,"sequence_number":1,"body_point":{"id":30,"mediapipe_index":29,"movenet_index":null},"line_type":null,"part_type":"point"},{"id":203,"sequence_number":2,"body_point":{"id":31,"mediapipe_index":30,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":80,"component_side":"left","segment_type":null,"parts":[{"id":204,"sequence_number":1,"body_point":{"id":30,"mediapipe_index":29,"movenet_index":null},"line_type":null,"part_type":"point"},{"id":205,"sequence_number":2,"body_point":{"id":31,"mediapipe_index":30,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":90,"command_side":"right","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAW104K1WHDEAG0D97Q.mp3"},{"id":91,"command_side":"left","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAYKJTKDYTDD8RQ4Q3T.mp3"},{"id":92,"command_side":"right","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAZD3AJP2XBJS4X8XJJ.mp3"},{"id":93,"command_side":"left","error_message":"Делайте движения в нужной амплитуде","error_audio":"https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAZD3AJP2XBJS4X8XJK.mp3"}],"videos":[{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYB0SHFNRH14429RE2WC.mp4","body_side":"right"},{"video_url":"https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYEB88G09XRWVHD2RBPX.mp4","body_side":"left"}]}],"calibration_videos":[]}]}}
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-29T13:11:20.013649Z, request_id: 9bee2d90-4f24-4145-ad30-a74c898e23ef, version: v1}, data: {unit_id: 1292, workout_duration_start: 10, workout_duration_end: 20, body_side: right, exercises: [{id: 47, sequence_number: 1, is_monitored: true, name: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, 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: 15, instruction: {exercise_name: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, video: https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov, inventory: Возвышенность (стул и т.п.), warning: Не допускайте разворота/заваливания поднятой ноги, general_description: Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул,
INFO [console] скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; стопа и колено поднятой ноги не должны "заваливаться" наружу (отсутствие ротации); наклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; дыхание свободное, без задержек; ощущение растяжения должно быть комфортным, без острой боли., steps: [{exercise_id: 47, sequence_number: 1, step_text: Встаньте боком растягиваемой ноги к камере}, {exercise_id: 47, sequence_number: 2, step_text: Поставьте рабочую ногу на возвышенность, другая нога опорная}, {exercise_id: 47, sequence_number: 3, step_text: Держите спину прямой}, {exercise_id: 47, sequence_number: 4, step_text: Стопа поднятой ноги смотрит на себя}, {exercise_id: 47, sequence_number: 5, step_text: Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянут
INFO [console] ься с прямой спиной}, {exercise_id: 47, sequence_number: 6, step_text: В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время}], measurement: null}, camera_orientation: vertical, neural_network_type: mediapipe, base_main_command: Наклонитесь к правой ноге, left_main_command: null, calibration_parameters: [{id: 64, name: Калибровка угла в колене, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_type: upward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, 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},
INFO [console] {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, error_message: Держите колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07RZWGYBA7ARDC81R4E7.mp3}, {id: 121, command_side: left, error_message: Держите колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S2QYS3KHV7GTP1RR69.mp3}], videos: []}, {id: 106, name: Калибровка
INFO [console] рабочего угла, calibration_parameter_type: angle, fixation_type: min_value, fixation_order: null, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, 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:
INFO [console] 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, error_message: Опускайте корпус ниже, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S3EDRCHQ9E234AQAYF.mp3}, {id: 157, command_side: left, error_message: Опускайте корпус ниже, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM07S4VM5J29MBFBCZW8X6.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07S53VNQ828P1AYA22FX.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM07WARDRBB2TPYHK7SVV6.mp4, body_side: left}]}], calibration_videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM080MH53RPSJYR4B42W96.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/
INFO [console] storage/exercise/calibration-videos/01M2SM082WPWEQTFRNMSZ8W7XW.mp4, body_side: left}]}, {id: 35, sequence_number: 2, is_monitored: true, name: [OLD]Сгибание и разгибание в голеностопных суставах, image: https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png, by_body_side: not_by_side, execution_order_type: null, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: [OLD]Сгибание и разгибание в голеностопных суставах, video: https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov, inventory: null, warning: Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх), general_description: Исходное положение - лёжа на спине боком к камере, ноги выпрямлены в коленях. Выполнять движения стопами на себя и от себя в максимально доступной амплитуде., steps: [{exercise_id: 35, sequence_number: 1, step_text:
INFO [console] Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере}, {exercise_id: 35, sequence_number: 2, step_text: Выпрямите обе ноги в коленях}, {exercise_id: 35, sequence_number: 3, step_text: Стопы расположите параллельно друг другу на ширине таза}, {exercise_id: 35, sequence_number: 4, step_text: Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости}, {exercise_id: 35, sequence_number: 5, step_text: Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами}, {exercise_id: 35, sequence_number: 6, step_text: На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области}, {exercise_id: 35, sequence_number: 7, step_text: От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на "цыпочки", ощущая напряжение в икрах},
INFO [console] {exercise_id: 35, sequence_number: 8, step_text: Движение должно быть ритмичным, без рывков, в спокойном темпе}], measurement: null}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Сгибайте и разгибайте стопы, left_main_command: null, calibration_parameters: [{id: 41, name: Калибровка угла в колене, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_type: upward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, has_division_by_side: true, is_monitored: false, components: [{id: 53, component_side: right, segment_type: null, parts: [{id: 126, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 127, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 128, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, lin
INFO [console] e_type: null, part_type: point}]}, {id: 54, component_side: left, segment_type: null, parts: [{id: 129, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 130, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 131, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 54, command_side: right, error_message: Держите колени выпрямленными, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6G4N63ERBK7A3GMC7Q.mp3}, {id: 55, command_side: left, error_message: Держите колени выпрямленными, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6J94Q8G92FW3EG2MHJ.mp3}], videos: []}, {id: 42, name: Калибровка амплитуды рабочего угла, calibration_parameter_type: angle_amplitude, fixation_type: alternate, f
INFO [console] ixation_order: min_at_first, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, has_division_by_side: true, is_monitored: true, components: [{id: 55, component_side: right, segment_type: null, parts: [{id: 132, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 133, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 134, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 56, component_side: left, segment_type: null, parts: [{id: 135, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 136, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}, {id: 137, sequence_number: 3, body_point: {
INFO [console] id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 56, command_side: right, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6KTZ7EFDZ9B15DFXR2.mp3}, {id: 57, command_side: left, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6MXVWWB1BJ805RWCG1.mp3}, {id: 58, command_side: right, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6N21GHA8N2KRDT30NG.mp3}, {id: 59, command_side: left, error_message: Вращайте стопы в большей амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SM4K6PVE9W6N8T5JCD72XB.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K6QZ81F8KS9ZP7CSQ0R.mp4, body_side:
INFO [console] right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4K8YXWA9DB5YA3V6VJHN.mp4, body_side: left}]}], calibration_videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KB0ETSNMQ4PJJPMCG1Y.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SM4KD1AGX9685GQWVAN6F2.mp4, body_side: left}]}, {id: 40, sequence_number: 3, is_monitored: true, name: [OLD]Круговые движения ногой - в и.п. лежа на спине, image: https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: [OLD]Круговые движения ногой - в и.п. лежа на спине, video: https://rehabilitation.most.team/storage/exercise/videos/01KQA5HTA1S14HGRG0J5HK6SYP.mov, inventory: null, warning: Не допускайте сильного напряжения или перера
INFO [console] згиба в пояснице, general_description: В и.п. лежа на спине. Ноги максимально выпрямлены в коленных суставах, стопы "на себя", выполнить движения по часовой стрелке, далее против часовой стрелки. Цель - тренировка четырехглавых мышц, абдукторов/аддукторов, steps: [{exercise_id: 40, sequence_number: 1, step_text: Лягте на спину, расположитесь боком рабочей ноги к камере}, {exercise_id: 40, sequence_number: 2, step_text: Руки расположите вдоль туловища ладонями вниз или в стороны для устойчивости}, {exercise_id: 40, sequence_number: 3, step_text: Ноги полностью выпрямите в коленных суставах}, {exercise_id: 40, sequence_number: 4, step_text: Стопы потяните на себя (тыльное сгибание в голеностопном суставе)}, {exercise_id: 40, sequence_number: 5, step_text: Поясницу прижмите к полу, живот слегка подтяните, чтобы избежать излишнего прогиба в пояснице}, {exercise_id: 40, sequence_number: 6, step_text: Начните выполнять круговое движение рабочей выпрямленной ногой. Нога в верхней точке должна
INFO [console] подниматься на уровень 30°-45° градусов от пола}, {exercise_id: 40, sequence_number: 7, step_text: Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения}], measurement: null}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Выполняйте круговые движения правой ногой, left_main_command: null, calibration_parameters: [{id: 51, name: Калибровка угла в колене, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_type: upward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, has_division_by_side: true, is_monitored: false, components: [{id: 73, component_side: right, segment_type: null, parts: [{id: 184, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 185, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point
INFO [console] }, {id: 186, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 74, component_side: left, segment_type: null, parts: [{id: 187, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 188, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 189, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 82, command_side: right, error_message: Держите рабочее колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Q6941X7HGRFE3DB6N.mp3}, {id: 83, command_side: left, error_message: Держите рабочее колено выпрямленным, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2S7EFGG1CMNXS3X0B9.mp3}], videos: []}, {id: 52, na
INFO [console] me: Калибровка угла в голеностопе, calibration_parameter_type: angle, fixation_type: min_value, fixation_order: null, deviation_type: downward, deviation_critical: 10, deviation_uncritical: null, compensation_influence: null, has_division_by_side: true, is_monitored: false, components: [{id: 75, component_side: right, segment_type: null, parts: [{id: 190, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 191, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 192, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 76, component_side: left, segment_type: null, parts: [{id: 193, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 194, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, moven
INFO [console] et_index: 15}, line_type: null, part_type: point}, {id: 195, sequence_number: 3, body_point: {id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 84, command_side: right, error_message: Стопа должна быть повернута на себя, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2V633YE4A7508Q85ZG.mp3}, {id: 85, command_side: left, error_message: Стопа должна быть повернута на себя, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2WQTAVDJYMYKHX4KAK.mp3}], videos: []}, {id: 53, name: Калибровка амплитуды рабочего угла, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: max_at_first, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, has_division_by_side: true, is_monitored: true, components: [{id: 77, component_side: right, segment_type: null, parts: [{id: 196, sequence_number: 1,
INFO [console] body_point: {id: 13, mediapipe_index: 12, movenet_index: 6}, line_type: null, part_type: point}, {id: 197, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 198, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 78, component_side: left, segment_type: null, parts: [{id: 199, sequence_number: 1, body_point: {id: 12, mediapipe_index: 11, movenet_index: 5}, line_type: null, part_type: point}, {id: 200, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 201, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 86, command_side: right, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2X18JJG4TFPYN0ND5
INFO [console] Y.mp3}, {id: 87, command_side: left, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2YX059J0RZP24T0HN9.mp3}, {id: 88, command_side: right, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ2Z05G53A6FN9NEG7NN.mp3}, {id: 89, command_side: left, error_message: Поднимайте ногу на необходимый уровень, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SMBQ30Y35EG06XG7XCH1R5.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ31FPW8S584F4QRXSNY.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ5D8FVE9P445AJRAKRG.mp4, body_side: left}]}], calibration_videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ7M5BETAWEQX30NRGYQ.m
INFO [console] p4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SMBQ9TKMBAG19QX94G802M.mp4, body_side: left}]}, {id: 41, sequence_number: 4, is_monitored: true, name: [OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, image: https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: [OLD]Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, video: https://rehabilitation.most.team/storage/exercise/videos/01KQC6319HS0NS6B4PRV3WH9FT.mov, inventory: null, warning: Следить за тем, чтобы бедро не ротировалось (вращалось) наружу, носок стопы отведённой ноги должен “смотреть вверх”, general_description: Спина относительно поверхности может находиться от 90 до 45 градусов к полу (наприм
INFO [console] ер, упираясь не прямыми руками, а предплечьями, отклонившись больше назад). Приподнять прямую рабочую ногу от поверхности и отвести её в сторону на сколько возможно, не опуская ногу, и вернуться в исходное положение. Можно выполнять без пауз между повторениями. Цель – тренировка мышц абдукторов бедра., steps: [{exercise_id: 41, sequence_number: 1, step_text: Сядьте на пол лицом к камере. Ноги выпрямите перед собой}, {exercise_id: 41, sequence_number: 2, step_text: Корпус отклоните назад. Спина должна находиться под углом от 90 до 45 градусов относительно пола. Для удобства и стабильности можно опираться не на прямые руки, а на предплечья, согнув руки в локтях}, {exercise_id: 41, sequence_number: 3, step_text: Приподнимите рабочую ногу на 5-10 см }, {exercise_id: 41, sequence_number: 4, step_text: На выдохе отведите рабочую ногу в сторону (наружу) на максимально возможную амплитуду, которую позволяет ваша подвижность и физическое состояние. Движение должно происходить за счёт работы мыш
INFO [console] ц бедра}, {exercise_id: 41, sequence_number: 5, step_text: На вдохе так же плавно верните ногу в исходное положение (перед собой), но не кладите её на пол до окончания подхода. Нога остаётся на весу}, {exercise_id: 41, sequence_number: 6, step_text: Повторите движение ногой заданное количество раз}], measurement: null}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Отводите правую ногу, left_main_command: null, calibration_parameters: [{id: 54, name: Калибровка амплитуды сегмента, calibration_parameter_type: segment_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_type: upward, deviation_critical: 20, deviation_uncritical: 10, compensation_influence: null, has_division_by_side: true, is_monitored: true, components: [{id: 79, component_side: right, segment_type: null, parts: [{id: 202, sequence_number: 1, body_point: {id: 30, mediapipe_index: 29, movenet_index: null}, line_type: null, part_type: point}, {id: 203, sequence_
INFO [console] number: 2, body_point: {id: 31, mediapipe_index: 30, movenet_index: null}, line_type: null, part_type: point}]}, {id: 80, component_side: left, segment_type: null, parts: [{id: 204, sequence_number: 1, body_point: {id: 30, mediapipe_index: 29, movenet_index: null}, line_type: null, part_type: point}, {id: 205, sequence_number: 2, body_point: {id: 31, mediapipe_index: 30, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 90, command_side: right, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAW104K1WHDEAG0D97Q.mp3}, {id: 91, command_side: left, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAYKJTKDYTDD8RQ4Q3T.mp3}, {id: 92, command_side: right, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYA
INFO [console] ZD3AJP2XBJS4X8XJJ.mp3}, {id: 93, command_side: left, error_message: Делайте движения в нужной амплитуде, error_audio: https://rehabilitation.most.team/storage/exercise/audio-commands/01M2SKSYAZD3AJP2XBJS4X8XJK.mp3}], videos: [{video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYB0SHFNRH14429RE2WC.mp4, body_side: right}, {video_url: https://rehabilitation.most.team/storage/exercise/calibration-videos/01M2SKSYEB88G09XRWVHD2RBPX.mp4, body_side: left}]}], calibration_videos: []}]}}
INFO [console] Инициализация аудио-сервиса успешно завершена. Кэшировано файлов: 22
INFO [console] [DIO]
INFO [console] _onNoCanCompleted: h:false i: [OLD]Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге
INFO [console] KNEE_DIAG: recording to /storage/emulated/0/Android/data/team.most.rehabilitation.app/files/knee_diag/knee_diag.log
INFO [console] PoseEstimator: worker isolate up (accelerator=gpu, precision=fp16, fallback=none, model=pose_landmarks_detector_heavy.tflite (27055 KB), crop=native, cores=attached [6,7] (inherited) ok (source=cpu_capacity, selected=[6,7], currentCpu=6))
INFO [console] PosePreparer: isolate up (affinity=attached [6,7] (inherited) ok (source=cpu_capacity, selected=[6,7], currentCpu=6), crop=native)
INFO [console] PoseEstimator: pipelined preprocessing enabled (gpu inference + CPU prepare isolate, crop=native)
INFO [console] ANGLE_RESEARCH: recording to /storage/emulated/0/Android/data/team.most.rehabilitation.app/files/angle_research/angles_E2_right_C00_R1_2026-09-29T16-11-25.csv
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 imgSize=720 x 480 -> upright=480x720 imgFormat=35 planes=3 pixelStride=1 rowStride=1024 screenSize=393x825
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_STATE: phase=waitingReady hint=fullBodyNotVisible
INFO [console] ANKLE_ANGLE t=16:11:25.681 ts=0.425 Lkat2d=180.0 Lfoot2d=180.0 LfootH=0.0 Lkat3d=- LfootLen=0.106 visL=0.21 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.18
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] ANKLE_ANGLE t=16:11:27.471 ts=2.216 Lkat2d=180.0 Lfoot2d=180.0 LfootH=0.0 Lkat3d=- LfootLen=0.222 visL=0.28 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.28
INFO [console] POSE_LM: [0 frame=(221,539)] [11 frame=(595,878)] [12 frame=(-191,912)] [23 frame=(442,2038)] [24 frame=(23,1991)] frameSize=480 x 720 screenSize=393x825
INFO [console] POSE_MAP: [0 norm=(0.554,0.749)] [11 norm=(0.000,1.000)] [12 norm=(1.000,1.000)] [23 norm=(0.000,1.000)] [24 norm=(1.000,1.000)]
INFO [console] POSE_METRICS: received=42(23.5fps) processed=2(1.1fps) replaced=18(10.1fps) buildMs=1.63 estimatorMs=87.98 (pre=0.8 infer=51.3 det=34.0) roiAgeMs=0.0/max=0.0 stale=0.0fps detRuns=1.1fps resets=0.6fps totalMs=1.17 lagMs=99.7 predLatMs=80.0 actualFps=1.1
INFO [console] ANKLE_ANGLE t=16:11:27.641 ts=2.400 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.111 visL=0.30 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.30
INFO [console] ANKLE_ANGLE t=16:11:27.789 ts=2.534 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.239 visL=0.37 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.38
INFO [console] ANKLE_ANGLE t=16:11:27.976 ts=2.726 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.231 visL=0.32 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.32
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] ANKLE_ANGLE t=16:11:29.062 ts=3.794 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.128 visL=0.02 Rkat2d=180.0 Rfoot2d=180.0 RfootH=0.0 Rkat3d=- RfootLen=0.046 visR=0.03
INFO [console] POSE_METRICS: received=40(25.2fps) processed=4(2.5fps) replaced=17(10.7fps) buildMs=1.56 estimatorMs=85.17 (pre=1.3 infer=49.9 det=33.1) roiAgeMs=0.0/max=0.0 stale=0.0fps detRuns=2.5fps resets=2.5fps totalMs=0.53 lagMs=97.8 predLatMs=80.0 actualFps=2.5
INFO [console] ANKLE_ANGLE t=16:11:29.213 ts=3.953 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.198 visL=0.10 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.10
INFO [console] ANKLE_ANGLE t=16:11:29.393 ts=4.143 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.222 visL=0.15 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.18
INFO [console] ANKLE_ANGLE t=16:11:29.530 ts=4.285 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.134 visL=0.29 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.30
INFO [console] ANKLE_ANGLE t=16:11:29.597 ts=4.352 Lkat2d=66.2 Lfoot2d=57.1 LfootH=-4.2 Lkat3d=- LfootLen=0.050 visL=0.27 Rkat2d=45.5 Rfoot2d=20.8 RfootH=-27.6 Rkat3d=- RfootLen=0.029 visR=0.27
INFO [console] ANKLE_ANGLE t=16:11:29.748 ts=4.516 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.126 visL=0.31 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.31
INFO [console] ANKLE_ANGLE t=16:11:29.947 ts=4.697 Lkat2d=- Lfoot2d=- LfootH=- Lkat3d=- LfootLen=0.000 visL=0.24 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.23
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] ANKLE_ANGLE t=16:11:30.145 ts=4.896 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.006 visL=0.30 Rkat2d=- Rfoot2d=- RfootH=0.0 Rkat3d=- RfootLen=0.016 visR=0.31
INFO [console] POSE_METRICS: received=25(23.1fps) processed=7(6.5fps) replaced=6(5.5fps) buildMs=2.00 estimatorMs=81.76 (pre=1.3 infer=51.2 det=32.9) roiAgeMs=9.5/max=66.8 stale=0.0fps detRuns=6.5fps resets=5.5fps totalMs=0.98 lagMs=91.3 predLatMs=80.0 actualFps=6.5
INFO [console] ANKLE_ANGLE t=16:11:30.298 ts=5.047 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.088 visL=0.30 Rkat2d=- Rfoot2d=- RfootH=0.0 Rkat3d=- RfootLen=0.000 visR=0.29
INFO [console] ANKLE_ANGLE t=16:11:30.447 ts=5.217 Lkat2d=- Lfoot2d=- LfootH=- Lkat3d=- LfootLen=0.000 visL=0.28 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.25
INFO [console] ANKLE_ANGLE t=16:11:30.602 ts=5.366 Lkat2d=- Lfoot2d=- LfootH=- Lkat3d=- LfootLen=0.000 visL=0.24 Rkat2d=180.0 Rfoot2d=180.0 RfootH=0.0 Rkat3d=- RfootLen=0.061 visR=0.26
INFO [console] ANKLE_ANGLE t=16:11:30.667 ts=5.434 Lkat2d=79.5 Lfoot2d=63.6 LfootH=-4.9 Lkat3d=- LfootLen=0.046 visL=0.23 Rkat2d=85.3 Rfoot2d=51.8 RfootH=-28.5 Rkat3d=- RfootLen=0.042 visR=0.25
INFO [console] ANKLE_ANGLE t=16:11:30.836 ts=5.586 Lkat2d=- Lfoot2d=- LfootH=- Lkat3d=- LfootLen=0.000 visL=0.30 Rkat2d=180.0 Rfoot2d=180.0 RfootH=0.0 Rkat3d=- RfootLen=0.040 visR=0.28
INFO [console] ANKLE_ANGLE t=16:11:30.999 ts=5.755 Lkat2d=- Lfoot2d=- LfootH=- Lkat3d=- LfootLen=0.000 visL=0.42 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.36
INFO [console] ANKLE_ANGLE t=16:11:31.147 ts=5.892 Lkat2d=- Lfoot2d=- LfootH=- Lkat3d=- LfootLen=0.000 visL=0.37 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.26
INFO [console] POSE_METRICS: received=27(26.9fps) processed=7(7.0fps) replaced=8(8.0fps) buildMs=2.49 estimatorMs=81.26 (pre=0.9 infer=52.9 det=31.2) roiAgeMs=9.7/max=68.2 stale=0.0fps detRuns=7.0fps resets=6.0fps totalMs=0.63 lagMs=87.1 predLatMs=79.5 actualFps=7.0
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] ANKLE_ANGLE t=16:11:31.314 ts=6.070 Lkat2d=- Lfoot2d=- LfootH=- Lkat3d=- LfootLen=0.000 visL=0.23 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.17
INFO [console] ANKLE_ANGLE t=16:11:31.484 ts=6.249 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.010 visL=0.20 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.11
INFO [console] ANKLE_ANGLE t=16:11:31.640 ts=6.402 Lkat2d=- Lfoot2d=- LfootH=- Lkat3d=- LfootLen=0.000 visL=0.39 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.27
INFO [console] ANKLE_ANGLE t=16:11:31.801 ts=6.561 Lkat2d=180.0 Lfoot2d=180.0 LfootH=0.0 Lkat3d=- LfootLen=0.253 visL=0.19 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.23
INFO [console] ANKLE_ANGLE t=16:11:31.954 ts=6.722 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.154 visL=0.26 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.25
INFO [console] ANKLE_ANGLE t=16:11:32.119 ts=6.876 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.105 visL=0.09 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.07
INFO [console] ANKLE_ANGLE t=16:11:32.300 ts=7.063 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.236 visL=0.20 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.23
INFO [console] POSE_METRICS: received=31(26.9fps) processed=7(6.1fps) replaced=11(9.5fps) buildMs=1.35 estimatorMs=82.53 (pre=0.7 infer=48.0 det=32.9) roiAgeMs=0.0/max=0.0 stale=0.0fps detRuns=6.1fps resets=6.1fps totalMs=0.44 lagMs=83.1 predLatMs=78.6 actualFps=6.1
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] ANKLE_ANGLE t=16:11:32.468 ts=7.231 Lkat2d=180.0 Lfoot2d=180.0 LfootH=0.0 Lkat3d=- LfootLen=0.166 visL=0.22 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.18
INFO [console] ANKLE_ANGLE t=16:11:32.617 ts=7.362 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.134 visL=0.14 Rkat2d=- Rfoot2d=- RfootH=0.0 Rkat3d=- RfootLen=0.029 visR=0.19
INFO [console] ANKLE_ANGLE t=16:11:32.790 ts=7.538 Lkat2d=- Lfoot2d=- LfootH=0.0 Lkat3d=- LfootLen=0.081 visL=0.28 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.29
INFO [console] ANKLE_ANGLE t=16:11:33.011 ts=7.742 Lkat2d=180.0 Lfoot2d=180.0 LfootH=0.0 Lkat3d=- LfootLen=0.273 visL=0.28 Rkat2d=- Rfoot2d=- RfootH=- Rkat3d=- RfootLen=0.000 visR=0.29
INFO [console] 🎵 VideoPlaybackService: Нативный плеер полностью уничтожен.
INFO [console] ANGLE_RESEARCH: recording closed, files in /storage/emulated/0/Android/data/team.most.rehabilitation.app/files/angle_research
INFO [console] VideoOutput.Resize
INFO [console] {rect: {top: 0, left: 0, width: 1, height: 1}, wid: 0, handle: -5476376670087868336, id: 0}
$
250 строкUTF-8LIVE