Оценка мобильности

Создать новую сессию обработки видео

post

Этот эндпоинт позволяет администратору (или суб-администратору) загружать видеофайл для обработки и создавать новый ресурс "сессии" от имени другого пользователя (Оценка мобильности). Сервер вернет session_id, который можно использовать для проверки статуса или получения деталей/результатов сессии.

Тело запроса (Multipart/Form-Data)

Необходимо указать следующие поля:

  • user_id (строка, обязательно): ID пользователя, от имени которого создается сессия. - video (файл, обязательно): Исходный видеофайл для обработки. - session_name (строка, опционально): Человекочитаемое название сессии. - exercise_name (строка, обязательно): Название упражнения. Выберите одно из: - body_joint_angles (массив строк, опционально): Список названий суставов (например, 'elbow, knee, ankle'). По умолчанию ['all'], если не указано.

Структура ответа

При успехе (HTTP 200) ответ содержит JSON-объект с: - session_id (строка): Уникальный идентификатор созданной сессии. - title (строка): Название сессии (используется значение session_name или стандартное).

Рабочий процесс

  1. Отправьте POST-запрос с multipart/form-data, содержащий обязательные поля user_id и video, а также опциональные поля. 2. Укажите действительный API-KEY токен в заголовке Authorization. 3. Вызывающий должен иметь права администратора для создания сессии от имени другого пользователя. 4. При успехе сервер вернет session_id и title. 5. При ошибке (например, отсутствие полей, недостаток прав) вернется JSON-объект с ключом error.

Пример cURL:

     -H 'Content-Type: multipart/form-data' \
     -H 'Authorization: API-KEY <YOUR_ADMIN_TOKEN>' \
     -F 'user_id=someUserId123' \
     -F 'video=@/path/to/video.mp4' \
     -F 'session_name=Custom Session' \
     -F 'body_joint_angles=ankle, knee' \
     https://<backend-link>/mobility-assessment/management/sessions/
Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Body
user_idstringRequired

Обязательно. ID пользователя, для которого создается сессия (текстовое поле).

videostringRequired

Обязательно. Видеофайл для обработки (поле типа файл).

session_namestringOptional

Опционально. Описательное название сессии (текстовое поле).

exercisestringRequired

Обязательно. Название упражнения. Выберите одно из: 'Overhead Squat', 'Joint Angle Mobility'

body_joint_anglesarrayOptional

Опционально. Список названий суставов через запятую. Доступные значения: 'ankle', 'knee', 'elbow', 'hip', 'shoulder'. Пример: ankle,knee,hip

Responses
200

Сессия обработки видео успешно создана (HTTP 200).

application/json
session_idstringRequired

Уникальный идентификатор созданной сессии.

titlestringRequired

Название сессии (стандартное, если не указано).

post
/mobility-assessment/sessions/

Получить данные сессии оценки мобильности

get

Получает детали конкретной сессии Оценки мобильности по её session_id. Эндпоинт возвращает информацию, такую как количество сегментов, URL видео, данные об углах, временные метки и другие метаданные сессии.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии Оценки мобильности.

Параметр запроса

  • demo (логический, опционально): Установите true, чтобы получить демо-сессию вместо реальной.

Успешный ответ (HTTP 200)

JSON-объект, содержащий:

  • segments (целое число): Общее количество сегментов в оценке мобильности. - video_url (строка, URI): URL исходного загруженного видео. - analyzed_video_url (строка, URI, опционально): URL обработанного видео. - activity (строка): Тип активности, например, Mobility Assessment. - title (строка): Название сессии. - user_name (строка): Имя пользователя, связанного с сессией. - created_at (объект): Объект с датой и временем создания сессии.

    • date (строка): Формат DD/MM/YYYY.

    • time (строка): Формат HH:MM AM/PM.

  • exercise (строка): Название упражнения (например, Overhead Squad). - angles (объект): Объект с данными об углах, релевантными для оценки мобильности.

    • hip_angle (массив чисел): Пример массива углов бедра.

    • ankle_angle (массив чисел): Пример массива углов лодыжки.

    • ... (дополнительные поля углов по необходимости)

  • all_timestamps (массив чисел): Массив временных меток, соответствующих данным углов.

Ошибки

  • 400 Неверный запрос: Неверные или отсутствующие параметры. - 401 Не авторизован: Отсутствует или неверный токен аутентификации. - 403 Запрещено: Недостаточно прав для получения этой сессии. - 404 Не найдено: Сессия не найдена. - 500 Внутренняя ошибка сервера: Непредвиденная ошибка на сервере. В заголовке Authorization должен быть указан действительный API-KEY токен.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Query parameters
demobooleanOptional

Установите true, чтобы получить демо-сессию вместо реальной.

Responses
200

Успешно получены данные сессии Оценки мобильности.

application/json
segmentsintegerRequired

Количество сегментов в оценке мобильности.

video_urlstring · uriRequired

URL исходного видео.

analyzed_video_urlstring · uriOptional

Опциональный URL обработанного видео.

activitystringRequired

Тип активности, например, 'Mobility Assessment'.

titlestringRequired

Понятное название сессии.

user_namestringRequired

Имя пользователя, связанного с сессией.

exercisestringRequired

Название упражнения, например, 'Overhead Squad'.

all_timestampsnumber[]Required

Массив числовых временных меток, соответствующих каждому значению угла.

get
/mobility-assessment/sessions/{session_id}/

Экспорт данных сессии (Оценка мобильности)

get

Экспортирует данные о ключевых точках и углах для конкретной сессии, связанной с мобильностью. Эндпоинт возвращает минимальные метаданные, включая только activity, angles, all_timestamps и keypoints с различными массивами точек ключевых точек.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии для экспорта данных.

Параметр запроса

  • demo (логический, опционально): Установите true, чтобы получить данные демо-сессии вместо реальной.

Успешный ответ (HTTP 200)

JSON-объект, содержащий:

  • activity (строка): Тип активности (например, 'Mobility Assessment'). - angles (объект): Объект с данными об углах, релевантными для оценки мобильности.

    • hip_angle (массив чисел): Пример массива углов бедра.

    • ankle_angle (массив чисел): Пример массива углов лодыжки.

    • ... (дополнительные поля углов по необходимости)

  • all_timestamps (массив чисел): Массив временных меток, соответствующих каждой точке данных. - keypoints (объект): Содержит массивы точек ключевых точек. Примеры:

    • lknev (массив чисел): Массив точек левого колена.

    • ltoev (массив чисел): Массив точек левой стопы.

    • relbv (массив чисел): Массив точек правого локтя.

    • rtoey (массив чисел): Массив точек правой стопы.

    • headv (массив чисел): Массив точек головы.

    • rearv (массив чисел): Массив точек правого уха.

    • rshox (массив чисел): Массив точек правого плеча.

    • etc (массив чисел): Массив всех остальных точек.

Ошибки

  • 400 Неверный запрос: Неверные или отсутствующие параметры. - 401 Не авторизован: Отсутствует или неверный токен аутентификации. - 403 Запрещено: Недостаточно прав для получения этих данных. - 404 Не найдено: Сессия не существует. - 500 Внутренняя ошибка сервера: Непредвиденная ошибка. В заголовке Authorization должен быть указан действительный API-KEY токен.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Query parameters
demobooleanOptional

Установите true, чтобы получить данные демо-сессии вместо реальной.

Responses
200

Данные сессии успешно экспортированы.

application/json
activitystringRequired

Тип активности (например, 'Mobility Assessment').

all_timestampsnumber[]Required

Массив числовых временных меток, соответствующих каждой точке данных.

get
/mobility-assessment/sessions/{session_id}/export/

Получить сохраненную конфигурацию отчета для сессии

get

Возвращает текущие настройки отображения для указанной сессии Joint Angle mobility.

  • Параметр пути

    • session_id (строка, обязательно): Идентификатор сессии для запроса.

Ответы

  • 200 OK: Конфигурация найдена и возвращена.

    • shown_angles: Массив ключей углов, выбранных пользователем.

    • comments: Заметки в свободной форме, ключ - угол.

  • 401 Unauthorized: Нет действительных учетных данных аутентификации. - 403 Forbidden: У вас нет прав для просмотра настроек этой сессии. - 404 Not Found: ID сессии не соответствует сохраненной конфигурации. - 500 Internal Server Error: Непредвиденная ошибка на сервере.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Responses
200

Конфигурация успешно получена.

application/json
shown_anglesstring[]Required

Выбранные ключи углов

get
/mobility-assessment/sessions/{session_id}/joint-mobility-config/

Создать или обновить конфигурацию отчета для сессии

post

Сохраняет выбранные настройки отображения для указанной сессии Joint Angle mobility.

  • Параметр пути

    • session_id (строка, обязательно): Идентификатор сессии.

  • Тело запроса

    • shown_angles (массив строк, опционально): Ключи углов, которые нужно отображать.

    • comments (объект строка→строка, опционально): Заметки по углам.

Ответы

  • 200 OK: Конфигурация успешно сохранена (возвращает сохраненные настройки). - 400 Bad Request: Одно или несколько полей неверны — см. errors для деталей. - 401 Unauthorized: Нет действительных учетных данных аутентификации. - 403 Forbidden: У вас нет прав для изменения настроек этой сессии. - 500 Internal Server Error: Непредвиденная ошибка при сохранении.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Body
shown_anglesstring[]Optional

Углы для отображения

Example: ["shoulder_angle","ankle_angle"]
Responses
200

Конфигурация сохранена и возвращена.

application/json
shown_anglesstring[]Required

Обновленный список отображаемых углов

post
/mobility-assessment/sessions/{session_id}/joint-mobility-config/

Сгенерировать отчет Joint Angle Mobility

post

Генерирует сводный отчет Joint Angle Mobility для указанного session_id.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии мобильности.

Успешный ответ (HTTP 200)

Возвращает JSON-объект, содержащий:

  • title (строка): Название сессии. - angles (объект): Ключи - названия суставов, значения:

    • max (число|null)

    • min (число|null)

    • values (массив чисел)

  • exercise (строка): Всегда Joint Angle Mobility. - user_info (объект): Данные пользователя. - date (строка): Форматированная дата (DD/MM/YYYY). - uploaded_date (строка, дата-время): Сырая метка времени ISO. - shown_angles (массив строк): Какие углы показывать. - comments (объект строка → строка): Заметки по углам.

Ошибки

  • 400 Неверный запрос: Неверный тип сессии или параметры. - 404 Не найдено: Сессия не найдена. - 500 Внутренняя ошибка сервера: Непредвиденная ошибка сервера. Требуется действительный API-KEY токен в заголовке Authorization.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Responses
200

Отчет Joint Angle Mobility успешно получен.

application/json
titlestringRequired

Название сессии

exercisestringRequired

Название упражнения, 'Joint Angle Mobility'

datestringRequired

Дата сессии в формате DD/MM/YYYY

uploaded_datestring · date-timeRequired

Сырая метка времени ISO загрузки

shown_anglesstring[]Optional

Углы, которые пользователь выбрал для отображения

post
/mobility-assessment/sessions/{session_id}/joint-mobility/

Создание рекомендаций

post

Создание рекомендаций

Этот эндпоинт генерирует персонализированные рекомендации на основе отчета Overhead Squat для конкретной сессии. Эти рекомендации могут быть использованы для предоставления индивидуальных советов, тренировочных рекомендаций или анализа производительности пользователя.

Пример использования: Отправьте POST запрос на /mobility-assessment/sessions/{session_id}/recommendation/, где {session_id} - уникальный идентификатор сессии.

Параметры:

  • session_id (строка, обязательно): Уникальный идентификатор сессии, для которой создаются рекомендации.

Структура ответа: При успешном запросе эндпоинт возвращает JSON-объект, содержащий идентификаторы рекомендаций, сопоставленные с соответствующими метриками из отчета Overhead Squat.

Пример ответа:

{
    "ankle_dorsiflexion": "thread_boQ0PSivWvPHIx4MQ02HqSEX",
    "hip_abduction": "thread_eoTqfX3qWuT2IrEhZpGcem7L",
    "hip_flexion": "thread_0pJjWIs5ybuo5gzRJd1ykgaB",
    "knee_flexion": "thread_8gp2spSn8XasAOafDwwzw5QT",
    "knee_movement": "thread_8gp2spSn8XasAOafDwwzw5QT",
    "final_summary": "thread_P3MqG76m9s6qlYwINJrlNomB"
}

Примечание:

  • Убедитесь, что предоставленный session_id действителен и соответствует существующей сессии в системе.

  • Пользователь должен иметь активный платежный план для доступа к этой функции.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Responses
200

Рекомендации успешно созданы.

application/json

Словарь, сопоставляющий каждую метрику с соответствующим идентификатором рекомендации.

ankle_dorsiflexionstringRequired

Уникальный идентификатор рекомендации для тыльного сгибания голеностопного сустава.

hip_abductionstringRequired

Уникальный идентификатор рекомендации для отведения бедра.

hip_flexionstringRequired

Уникальный идентификатор рекомендации для сгибания бедра.

knee_flexionstringRequired

Уникальный идентификатор рекомендации для сгибания колена.

knee_movementstringRequired

Уникальный идентификатор рекомендации для движения колена.

final_summarystringRequired

Уникальный идентификатор итоговой рекомендации.

post
/mobility-assessment/sessions/{session_id}/recommendation/

Генерация отчета Overhead Squat

post

Генерирует или получает подробный отчет Overhead Squat для заданного session_id. Этот эндпоинт объединяет метрики сессии, организует их в группы и включает метаданные пользователя и сессии.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии Overhead Squat.

Параметр запроса

  • demo (логический, опционально): Установите true, чтобы получить демонстрационный отчет Overhead Squat вместо реального.

Успешный ответ (HTTP 200)

Возвращает JSON-объект, содержащий:

  • grouped_data (объект): Организован по группам метрик (например, hip_flexion, knee_flexion). Каждая группа содержит:

    • metrics (объект): Пары ключ-значение агрегированных результатов метрик.

    • graph_data (объект): Массивы числовых данных для построения графиков.

  • graph_timestamps (массив[число]): Список временных меток (в миллисекундах), соответствующих каждому графику.

  • knee_movement_phases (объект): URL изображений визуализации, показывающих различные фазы движения колена.

    • left (строка): URL изображения левого вида.

    • right (строка): URL изображения правого вида.

    • front (строка): URL изображения фронтального вида.

  • user_info (объект, опционально): Основные данные пользователя, связанные с сессией.

  • exercise (строка): Название/тип упражнения (например, Overhead Squat).

  • report_comments (объект, опционально): Подробные комментарии по различным аспектам движения.

  • output_quality (объект, опционально): Дополнительная информация о качестве или оценке.

  • date (строка, формат=ДД/ММ/ГГГГ): Дата создания или обработки сессии.

Пример успешного ответа

Обработка ошибок

  • 403 Forbidden: Возвращается, если платежный план пользователя не является Standard, Pro или Enterprise.

  • 404 Not Found: Возвращается, если данные сессии не найдены или отсутствуют метрики.

  • 500 Internal Server Error: Возвращается, если произошла непредвиденная ошибка на сервере.

В заголовке Authorization должен быть предоставлен действительный API-KEY токен.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Query parameters
demobooleanOptional

Установите true, чтобы получить демонстрационный отчет Overhead Squat вместо реального.

Responses
200

Отчет Overhead Squat успешно сгенерирован/получен.

application/json
graph_timestampsnumber[]Required

Список временных меток (в миллисекундах), соответствующих каждому графику.

exercisestringRequired

Название/тип упражнения (например, 'Overhead Squat').

datestringRequired

Строка, представляющая дату сессии в формате ДД/ММ/ГГГГ.

post
/mobility-assessment/sessions/{session_id}/report/

Получение сводки Overhead Squat

get

Получает краткую сводку данных сессии Overhead Squat, идентифицируемой по session_id. Этот эндпоинт возвращает сгруппированные метрики (например, hip_flexion, knee_flexion) без подробных данных графиков, а также опциональные метаданные пользователя и сессии.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии Overhead Squat.

Параметр запроса

  • demo (логический, опционально): Установите true, чтобы получить предварительно сгенерированную демонстрационную сводку Overhead Squat вместо реальной.

Успешный ответ (HTTP 200)

Возвращает JSON-объект, содержащий:

  • grouped_data (объект): Высокоуровневые метрики, сгруппированные по категориям (например, hip_flexion, knee_flexion). Каждая группа содержит ключи метрик, каждое из которых сопоставлено с числовыми значениями.

    {
      "hip_flexion": {
        "left_hip_flexion": 84.0,
        "right_hip_flexion": 80.0,
        "hip_flexion_asymmetry": 4.0
      }
    }
  • knee_movement_phases (объект): URL изображений визуализации, показывающих различные фазы движения колена.

    • left (строка): URL изображения левого вида.

    • right (строка): URL изображения правого вида.

    • front (строка): URL изображения фронтального вида.

  • user_info (объект, опционально): Содержит данные, связанные с пользователем, например, вес, display_name, email.

  • exercise (строка): Название упражнения (например, Overhead Squat).

  • output_quality (объект, опционально): Содержит числовые значения или индексы (например, mobility_index).

  • summary (объект, опционально): Содержит подробные комментарии по различным аспектам движения.

  • date (строка, формат=ДД/ММ/ГГГГ): Дата создания/обработки этой сессии.

Пример успешного ответа

Обработка ошибок

  • 401 Unauthorized: Отсутствует или недействительный токен.

  • 403 Forbidden: Платежный план недействителен (требуется Basic, Standard, Pro или Enterprise) или у пользователя недостаточно прав.

  • 404 Not Found: Данные сессии не найдены или отсутствуют метрики.

  • 500 Internal Server Error: Непредвиденная ошибка сервера.

В заголовке Authorization должен быть предоставлен действительный API-KEY токен.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Query parameters
demobooleanOptional

Установите true, чтобы получить предварительно сгенерированную демонстрационную сводку Overhead Squat вместо реальной.

Responses
200

Сводка Overhead Squat успешно получена.

application/json
exercisestringRequired

Название/тип упражнения, например 'Overhead Squat'.

datestringRequired

Дата сессии в формате 'ДД/ММ/ГГГГ'.

get
/mobility-assessment/sessions/{session_id}/summary/

Генерация сводных рекомендаций для сессии

post

Генерация сводных рекомендаций

Этот эндпоинт генерирует сводные рекомендации для заданной сессии на основе предопределенных блоков сводки и метрик.

Пример использования: Отправьте POST запрос на /mobility-assessment/sessions/{session_id}/summary/, где {session_id} - уникальный идентификатор сессии.

Параметры:

  • session_id (строка, обязательно): Уникальный идентификатор сессии, для которой генерируются сводные рекомендации.

Структура ответа: При успешном запросе эндпоинт возвращает JSON-объект, сопоставляющий каждую метрику с соответствующим идентификатором рекомендации.

Пример ответа:

{
    "hip_flexion": "thread_x7C4p5ancmeluBmEJgmFwXra",
    "hip_abduction": "thread_lth8oxKfnktwne9ryGZefd6V",
    "knee_flexion": "thread_cM4jY2RLfVNeFIImJXaIinMK",
    "knee_movement": "thread_8gp2spSn8XasAOafDwwzw5QT",
    "ankle_dorsiflexion": "thread_EIwgj822ZHtGCTMucHZDtatH",
    "final_summary": "thread_2XwSNDNrclHgakiBFm4o9K65"
}

Примечания:

  • Убедитесь, что предоставленный session_id действителен и соответствует существующей сессии в системе.

  • Пользователь должен иметь необходимые разрешения для генерации сводных рекомендаций.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Query parameters
measurement_systemstring · enumOptional

Система измерений: 'metric' или 'imperial'

Possible values:
Responses
post
/mobility-assessment/sessions/{session_id}/summary/

Last updated

Was this helpful?