Documentation

API Documentation

Lorem ipsum be be bleh.

Summary

Category Function Name Method URL
Movement Rx practices GET http://api.mymovementrx.com/v1/practices
signup POST http://api.mymovementrx.com/v1/signup
login POST http://api.mymovementrx.com/v1/login
logout POST http://api.mymovementrx.com/v1/logout
update-profile PATCH, POST, PUT http://api.mymovementrx.com/v1/users/{user_id}/update-profile
update-device PATCH, POST, PUT http://api.mymovementrx.com/v1/users/{user_id}/update-device
get-user GET http://api.mymovementrx.com/v1/users/{user_id}
video-view POST http://api.mymovementrx.com/v1/video-views
forgot-password POST http://api.mymovementrx.com/v1/forgot-password
reset-password POST http://api.mymovementrx.com/v1/reset-password
get-account-users GET http://api.mymovementrx.com/v1/users/{user_id}/get-account-users
support POST http://api.mymovementrx.com/v1/support
archive-patients PATCH, POST, PUT http://api.mymovementrx.com/v1/archive-patients
initiate-chat POST http://api.mymovementrx.com/v1/initiate-chat
token-details GET http://api.mymovementrx.com/v1/token-details/{token_id}
unarchive-patients PATCH, POST, PUT http://api.mymovementrx.com/v1/unarchive-patients
therapists GET http://api.mymovementrx.com/v1/practices/{practice_id}/therapists
practice-package GET http://api.mymovementrx.com/v1/practices/{practice}/practice-package
update-daily-reminder PATCH, POST, PUT http://api.mymovementrx.com/v1/users/{user_id}/update-daily-reminder
send-chat-notification POST http://api.mymovementrx.com/v1/send-chat-notification
insurance-lists GET https://api.mymovementrx.com/v1/practices/{practice_id}/insurance-lists
Package packages GET http://api.mymovementrx.com/v1/packages
Patient video-list GET http://api.mymovementrx.com/v1/patients/{patient_id}/video-list
update-video-view PATCH, POST, PUT http://api.mymovementrx.com/v1/update-video-view
patient GET http://api.mymovementrx.com/v1/patient/1
foot-steps PATCH, POST, PUT https://api.mymovementrx.com/v1/patient/{patient_id}/foot-steps
add-foot-steps PATCH, POST, PUT https://api.mymovementrx.com/v1/patient/{patient_id}/add-foot-steps
feel-status POST https://api.mymovementrx.com/v1/patient/{patient_id}/feel-status
add-feel-status PATCH, POST, PUT https://api.mymovementrx.com/v1/patient/{patient_id}/add-feel-status
complete-video-view PATCH, POST, PUT https://api.mymovementrx.com/v1/complete-video-view
Therapist add-patient POST http://api.mymovementrx.com/v1/therapists/{therapist_id}/add-patient
update-patient PATCH, POST, PUT http://api.mymovementrx.com/v1/update-patient/{patient_id}
assign-patient PATCH, POST, PUT http://api.mymovementrx.com/v1/therapists/{therapist_id}/assign-patients
detach-patient DELETE http://api.mymovementrx.com/v1/therapists/{therapist_id}/detach-patients
patient-list POST http://api.mymovementrx.com/v1/patient-list
therapist-patient-list GET http://api.mymovementrx.com/v1/therapists/{therapist_id}/patient-list
upload-video POST http://api.mymovementrx.com/v1/upload-video
update-video PATCH, POST, PUT http://api.mymovementrx.com/v1/update-video
delete-video DELETE http://api.mymovementrx.com/v1/delete-videos
resend-invitation POST http://api.mymovementrx.com/v1/resend-invitation
remove-patient DELETE http://api.mymovementrx.com/v1/therapists/{therapist_id}/delete-patients
archive-video DELETE http://api.mymovementrx.com/v1/archive-videos
rank-videos PATCH, POST, PUT http://api.mymovementrx.com/v1/rank-videos
create-folder POST http://api.mymovementrx.com/v1/therapists/{therapist_id}/create-folder
retrieve-folders GET http://api.mymovementrx.com/v1/patients/{patient_id}/folders
retrieve-folder-videos GET http://api.mymovementrx.com/v1/folders/{folder_id}/videos
add-folder-videos POST http://api.mymovementrx.com/v1/folders/{folder_id}/add-videos
remove-folder-videos DELETE http://api.mymovementrx.com/v1/folders/{folder_id}/remove-videos
update-folder PATCH, POST, PUT http://api.mymovementrx.com/v1/update-folder/{folder_id}
move-videos PATCH, POST, PUT http://api.mymovementrx.com/v1/move-videos
rank-folders PATCH, POST, PUT http://api.mymovementrx.com/v1/rank-folders
delete-folder DELETE http://api.mymovementrx.com/v1/delete-folder/{folder-id}
archive-folder PATCH, POST, PUT http://api.mymovementrx.com/v1/archive-folder/{folder-id}
archive-rtm PATCH, POST, PUT http://api.mymovementrx.com/v1/archive-rtm/{rtm-id}
restore-rtm POST http://api.mymovementrx.com/v1/restore-rtm/{rtm-id}
create-folder-v2 POST https://api.mymovementrx.com/v1/therapists/{therapist_id}/create-folder-v2
get-practices POST http://api.mymovementrx.com/v1/therapists/get-practices
switch-practice POST http://api.mymovementrx.com/v1/therapists/switch-practice

Movement Rx

practices

Retrieves all practices

Method:

GET

URL:

http://api.mymovementrx.com/v1/practices

Parameters:

N/A

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Response practices",
  "total_records": 1,
  "practices": [
    {
      "id": 1,
      "parent_company_id": null,
      "name": "Movement Rx",
      "status": "active",
      "created_at": "2017-02-17 08:08:49",
      "updated_at": "2017-02-17 08:08:49"
    }
  ]
}

Failed:

Empty

signup

Patient or therapist registration

Method:

POST

URL:

http://api.mymovementrx.com/v1/signup

Parameters:

(required) String - first_name
(required) String - last_name
(required) String - email
(required) String - password
(required) String - type : Therapist or Patient
* (required) Integer - practice_id
(optional) File - photo : jpg,bmp,png

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Update profile successful",
  "user": {
    "id": 30,
    "first_name": "Markie",
    "last_name": "Angulo",
    "email": "sample@email.com",
    "username": "sample@email.com",
    "photo": null,
    "mobile": null,
    "role": {
      "key": "therapist",
      "name": "Therapist",
      "description": "Therapist",
      "status": "active",
      "created_at": "2017-02-23 05:47:44",
      "updated_at": "2017-02-23 05:47:44"
    },
    "practice": {
      "id": 1,
      "parent_company_id": null,
      "name": "Movement Rx",
      "logo": "http://localhost/superiorapi/public/uploads/logos/bazinga.jpg",
      "status": "active",
      "created_at": "2017-02-23 05:47:44",
      "updated_at": "2017-02-23 05:47:44"
    }
  }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "first_name": "The first name field is required.",
      "last_name": "The last name field is required.",
      "email": "The email field is required.",
      "password": "The password field is required.",
      "type": "The type field is required.",
      "practice_id": "The practice id field is required."
    }
  }
}

login

Patient or therapist login

Method:

POST

URL:

http://api.mymovementrx.com/v1/login

Parameters:

(required if no email and password) String - token
(required if no token) String - email
(required if not token) String - password
(optional) String - device_id
(required) String - type: Therapist or Patient

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Login successful",
  "user": {
    "id": 1,
    "therapist_id": 5,  <---- For therapist only
    "first_name": "Mark Angelo",
    "last_name": "Angulo",
    "email": "mark.angulo@prosoft-phils.com",
    "username": "mark.angulo@prosoft-phils.com",
    "photo": null,
    "step_goals": 500000,
    "daily_reminder" : 0,
    "has_active_rtm": 1,
    "feel_status": 8,
    "first_login": false,
    "api_key": "**********",
    "ziggeo_token": "abcdefg",
    "pubnub": {
            "publish_key": "pub-c-23cbb3ca-9d78-4211-a9fe-d1fff4cb4b82",
            "subscribe_key": "sub-c-a65d1e01-eae9-48a6-a7be-9485c4b3c600",
            "UUID": "mmrx-uuid-9681"
    },
    "role": {
      "key": "therapist",
      "name": "Therapist",
      "description": "Therapist",
      "status": "active",
      "created_at": "2017-02-23 05:47:44",
      "updated_at": "2017-02-23 05:47:44"
    },
    "practice": {
      "id": 1,
      "parent_company_id": null,
      "name": "Superior PT",
      "logo": "http://staging.mymovementrx.com/uploads/logos/1.png",
       "codeigniter_logo": "1.png",
       "email": null,
       "url": "https://thesuperiortherapy.com/",
       "status": "active",
       "created_at": "2017-05-02 07:30:29",
       "updated_at": "2018-10-15 01:19:40",
       "package_subscriptions": {
         "id": 1,
         "name": "Free",
         "description": "For individual PT's who want to try out MyMovement Rx for unlimited time",
         "price": "0",
         "file_storage_limit": "200 MB",
         "file_storage_limit_bytes": "209715200",
         "user_limit": "1",
         "subscription_date": "0000-00-00",
         "expiration_date": "0000-00-00",
         "status": "active"
        },
       "s3": {
         "bucket_name": "movementrx",
         "region": "us-west-2",
         "key": "AKIASFAFWGORKSLABIPQ",
         "secret": "dsffad3rfsaf+sadasd322edc21c21c231c23+qt",
         "url": "https://s3-us-west-2.amazonaws.com/"
       }
     }
  }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "email": "The email field is required.",
      "password": "The password field is required.",
      "type": "The type field is required.",
      "practice_id": "The practice id field is required."
    }
  }
}

logout

Patient or therapist logout

Method:

POST

URL:

http://api.mymovementrx.com/v1/logout

Parameters:

(required) Integer - user_id
(required) String - device_id

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 204,
  "message": "Logout successful"
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "user_id": "The user id field is required."
    }
  }
}

update-profile

Patient or therapist update profile information

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/users/{user_id}/update-profile

Parameters:

(optional) String - first_name
(optional) String - last_name
(optional) String - email
(optional) String - mobile
(optional) String - password
(required if password is present) String - old password: Should match users's old password
(optional) String - type: Patient or Therapist
(optional) Integer - practice_id
(optional) File - photo: jpg,bmp,png
(optional) Integer- step_goals

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Update profile successful",
  "user": {
    "id": 1,
    "first_name": "Markie",
    "last_name": "Angulo",
    "email": "mark@prosoft-phils.com",
    "username": "mark@prosoft-phils.com",
    "photo": null,
    "mobile": null,
    "step_goals": 500000,
    "daily_reminder":1,
    "role": {
      "key": "therapist",
      "name": "Therapist",
      "description": "Therapist",
      "status": "active",
      "created_at": "2017-02-17 08:08:49",
      "updated_at": "2017-02-17 08:08:49"
    },
    "practice": {
      "id": 1,
      "parent_company_id": null,
      "name": "Movement Rx",
      "status": "active",
      "created_at": "2017-02-17 08:08:49",
      "updated_at": "2017-02-17 08:08:49"
    }
  }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "old_password": "The old password field is required."
    }
  }
}

update-device

Update user device iID

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/users/{user_id}/update-device

Parameters:

(required) String - device_id

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Update device successful",
  "device": {
    "device": "somedeviceid",
    "status": "logged_in",
    "updated_at": "2017-02-17 08:27:28",
    "created_at": "2017-02-17 08:27:28",
    "id": 2
  }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "device_id": "The device id field is required."
    }
  }
}

get-user

Retrieve user info

Method:

GET

URL:

http://api.mymovementrx.com/v1/users/{user_id}

Parameters:

N/A

Sample Call:

Empty

Response:

Success:

{

    "status": "Success",
    "code": 200,
    "message": "User response",
    "user": {
        "id": 1,
        "first_name": "Mark Angelo",
        "last_name": "Angulo",
        "email": "mark.angulo@prosoft-phils.com",
        "username": "mark.angulo@prosoft-phils.com",
        "photo": null,
        "mobile": "+639987552764",
        "step_goals": 500000,
        "daily_reminder": 1,
        "has_active_rtm": 1,
        "feel_status": 8,
        "role": {
            "key": "therapist",
            "name": "Therapist",
            "description": "Therapist",
            "status": "active",
            "created_at": "2017-03-21 02:26:55",
            "updated_at": "2017-03-21 02:26:55"
        },
        "practice": {
            "id": 1,
            "parent_company_id": null,
            "name": "Movement Rx",
            "logo": null,
            "status": "active",
            "created_at": "2017-03-21 02:26:55",
            "updated_at": "2017-03-21 02:26:55"
        },
        "pubnub": {
            "channel": "mmrx-chat-9681" // Append therapist id here Ex: "mmrx-chat-9681-18"
        }
    }

}

Failed:

{

    "status": "Failed",
    "code": 404,
    "message": "Not found",
    "errors": {
        "message": "Record not found"
    }

}

video-view

Retrive video views of a certain video

Method:

POST

URL:

http://api.mymovementrx.com/v1/video-views

Parameters:

(required) Integer - video_id
(required) Integer - patient_id
(optional) Boolean - with_views_per_day : If 1 will return all views otherwise will return current day views

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Get video views successful",
  "videos": {
    "id": 1,
    "ziggeo_id": "someziggeoid",
    "title": "Bazinga",
    "url": "https://player.vimeo.com/external/141783676.sd.mp4?s=543110f05acffd7361ee8ef3c110101d&profile_id=112",
    "duration": "3",
    "file_name": "bazinga.mp4",
    "path": "d://some/location",
    "thumbnail_url": "http://api.mymovementrx.com/uploads/photos/1.jpg",
    "ziggeo_token": "ziggeo_token",
    "recommended_views": null,
    "total_views": null,
    "views_per_day": [
      {
        "date_viewed": "2017-03-15",
        "views": 11
      }
    ],
    "created_by": 1,
    "date_taken": "2017-02-23 05:53:19",
    "updated_at": {
      "date": "2017-02-23 05:53:19.000000",
      "timezone_type": 3,
      "timezone": "UTC"
    }
  }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "video_id": "The video id field is required.",
      "patient_id": "The patient id field is required."
    }
  }
}

forgot-password

Send forgot password request

Method:

POST

URL:

http://api.mymovementrx.com/v1/forgot-password

Parameters:

(required) String email - User email

Sample Call:

$user = [
    'email' => 'mark.angulo@prosoft-phils.com',
];
$response = $this->movementrx->forgot_password($user);

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Forgot password successful",
    "forgot_password_token": {
        "account_id": 1,
        "token": "1e38d0c071bba4e47a2fd052aa2fd689",
        "updated_at": "2017-05-04 06:22:57",
        "created_at": "2017-05-04 06:22:57",
        "id": 3
    }
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "email": "The email field is required."
        }
    }
}

reset-password

Reset password

Method:

POST

URL:

http://api.mymovementrx.com/v1/reset-password

Parameters:

(required) String password
(required) String confirm_password
(required) String token

Sample Call:

$user = [
    'password' => 'newpassword',
    'confirm_password' => 'newpassword',
    'token' => 'someverylongtokenfromforgotpasswordtoken'
];
$response = $this->movementrx->reset_password($user);

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Reset password successful",
    "account": {
        "id": 1,
        "email": "mark.angulo@prosoft-phils.com",
        "username": "mark.angulo@prosoft-phils.com",
        "token": "SBzzmoYvwZR2vux0lltu6KG7gSvCcw2f",
        "status": "active",
        "created_at": "2017-05-02 08:26:32",
        "updated_at": "2017-05-04 06:59:54"
    }
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "password": "The password field is required.",
            "confirm_password": "The confirm password field is required.",
            "token": "The token field is required."
        }
    }
}

get-account-users

Empty

Method:

GET

URL:

http://api.mymovementrx.com/v1/users/{user_id}/get-account-users

Parameters:

Empty

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Get account users successful",
  "practices": [
    {
      "id": 1,
      "parent_company_id": null,
      "name": "Movement Rx",
      "logo": "http://localhost/superiorapi/public/uploads/logos/1.jpg",
      "email": null,
      "url": null,
      "status": "active",
      "created_at": "2017-05-02 07:06:01",
      "updated_at": "2017-05-02 07:06:01",
      "roles": [
        {
          "key": "therapist",
          "name": "Therapist",
          "description": "Therapist",
          "status": "active",
          "created_at": "2017-05-02 07:06:01",
          "updated_at": "2017-05-02 07:06:01",
          "user": {
            "id": 2,
            "first_name": "Markie",
            "last_name": "Angulo",
            "email": "mark@prosoft.com",
            "username": "mark@prosoft.com",
            "photo": null,
            "mobile": null
          }
        },
        {
          "key": "admin",
          "name": "Admin",
          "description": "Administrator",
          "status": "active",
          "created_at": "2017-05-02 07:06:01",
          "updated_at": "2017-05-02 07:06:01",
          "user": {
            "id": 4,
            "first_name": "Markie",
            "last_name": "Admin",
            "email": "mark@prosoft.com",
            "username": "mark@prosoft.com",
            "photo": null,
            "mobile": null
          }
        },
        {
          "key": "super_admin",
          "name": "Super Admin",
          "description": "Super Administrator",
          "status": "active",
          "created_at": "2017-05-02 07:06:01",
          "updated_at": "2017-05-02 07:06:01",
          "user": {
            "id": 5,
            "first_name": "Marko",
            "last_name": "Super Admin",
            "email": "mark@prosoft.com",
            "username": "mark@prosoft.com",
            "photo": null,
            "mobile": null
          }
        }
      ]
    },
    {
      "id": 9,
      "parent_company_id": null,
      "name": "Prosoft",
      "logo": "http://localhost/superiorapi/public/uploads/logos/9.png",
      "email": null,
      "url": "http://prosoft.com",
      "status": "active",
      "created_at": "2017-05-03 03:14:57",
      "updated_at": "2017-05-03 03:14:57",
      "roles": [
        {
          "key": "admin",
          "name": "Admin",
          "description": "Administrator",
          "status": "active",
          "created_at": "2017-05-02 07:06:01",
          "updated_at": "2017-05-02 07:06:01",
          "user": {
            "id": 6,
            "first_name": "Mariko",
            "last_name": "Admin Pa",
            "email": "mark@prosoft.com",
            "username": "mark@prosoft.com",
            "photo": null,
            "mobile": null
          }
        }
      ]
    }
  ]
}

Failed:

{
  "status": "Failed",
  "code": 404,
  "message": "Not found",
  "errors": {
    "message": "Record not found"
  }
}

support

Send email to support

Method:

POST

URL:

http://api.mymovementrx.com/v1/support

Parameters:

(required) int user_id
(required) String topic
(required) String message

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 204,
  "message": "Send email successful"
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "user_id": "The user id field is required.",
      "topic": "The topic field is required.",
      "message": "The message field is required."
    }
  }
}

archive-patients

Archive patients

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/archive-patients

Parameters:

(optional) int therapist_id - when supplied, only archive the patient for specific therapist otherwise archives the patient to all therapists
(required) array|int patient_ids - id of patients to be archived

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Archive patient successful",
  "patients": [
    {
      "id": 17,
      "user_id": 22,
      "first_name": "Conan",
      "last_name": "SHebatski",
      "photo": "http://localhost/superiorapi/public/uploads/photos/22.jpg",
      "status": "active",
      "created_at": "2017-05-19 02:34:52",
      "updated_at": "2017-05-19 02:34:52"
    },
    {
      "id": 34,
      "user_id": 38,
      "first_name": "Homer",
      "last_name": "Simpsons",
      "photo": null,
      "status": "active",
      "created_at": "2017-05-26 00:44:12",
      "updated_at": "2017-05-26 00:44:12"
    }
  ]
}

Failed:

"status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "patient_ids": "The patient ids field is required."
    }
  }
}

initiate-chat

Create opentok session and tokens

Method:

POST

URL:

http://api.mymovementrx.com/v1/initiate-chat

Parameters:

(required) int - user_id

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Initiate chat success",
  "chat": {
    "session_id": "1_MX40NTg4NDY5Mn5-MTQ5NjgxNjk5MjE1Nn5RS01TbXhaK2VDSjBXVlhlbU9IM1BuSlR-fg",
    "token": "T1==cGFydG5lcl9pZD00NTg4NDY5MiZzaWc9ZjRjMDYxMDhhNTNmOWE1OThkZDBkYjVkMDljMDdhODk2ZjRkYjdmYjpzZXNzaW9uX2lkPTFfTVg0ME5UZzRORFk1TW41LU1UUTVOamd4TmprNU1qRTFObjVSUzAxVGJYaGFLMlZEU2pCWFZsaGxiVTlJTTFCdVNsUi1mZyZjcmVhdGVfdGltZT0xNDk2ODE3MjI1JnJvbGU9cHVibGlzaGVyJm5vbmNlPTE0OTY4MTcyMjUuNDEyOTExNzgyNjkwMCZleHBpcmVfdGltZT0xNDk3NDIyMDI1JmNvbm5lY3Rpb25fZGF0YT1uYW1lJTNETWFyaytBbmd1bG8="
  }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "user_id": "The user id field is required."
    }
  }
}

token-details

Retrieve chat opentok token details

Method:

GET

URL:

http://api.mymovementrx.com/v1/token-details/{token_id}

Parameters:

Empty

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Token info success",
  "token": {
    "id": 25,
    "user_id": 39,
    "session_id": "1_MX40NTg4NDY5Mn5-MTQ5NjgxNjk5MjE1Nn5RS01TbXhaK2VDSjBXVlhlbU9IM1BuSlR-fg",
    "token": "T1==cGFydG5lcl9pZD00NTg4NDY5MiZzaWc9ZjRjMDYxMDhhNTNmOWE1OThkZDBkYjVkMDljMDdhODk2ZjRkYjdmYjpzZXNzaW9uX2lkPTFfTVg0ME5UZzRORFk1TW41LU1UUTVOamd4TmprNU1qRTFObjVSUzAxVGJYaGFLMlZEU2pCWFZsaGxiVTlJTTFCdVNsUi1mZyZjcmVhdGVfdGltZT0xNDk2ODE3MjI1JnJvbGU9cHVibGlzaGVyJm5vbmNlPTE0OTY4MTcyMjUuNDEyOTExNzgyNjkwMCZleHBpcmVfdGltZT0xNDk3NDIyMDI1JmNvbm5lY3Rpb25fZGF0YT1uYW1lJTNETWFyaytBbmd1bG8="
  }
}

Failed:

{
  "status": "Failed",
  "code": 404,
  "message": "Not found",
  "errors": {
    "message": "Record not found"
  }
}

unarchive-patients

Change patient status to active

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/unarchive-patients

Parameters:

(optional) int therapist_id - when supplied, only unarchive the patient for specific therapist otherwise unarchives the patient to all therapists
(required) array|int patient_ids - id of patients to be unarchived

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Unarchive patient successful",
    "patients": [
        {
            "id": 17,
            "user_id": 22,
            "first_name": "Conan",
            "last_name": "SHebatski",
            "photo": "http://localhost/superiorapi/public/uploads/photos/22.jpg",
            "status": "active",
            "created_at": "2017-05-19 02:34:52",
            "updated_at": "2017-05-19 02:34:52"
        }
    ]
}

Failed:

Empty

therapists

Retrieve therapists of a certain practice

Method:

GET

URL:

http://api.mymovementrx.com/v1/practices/{practice_id}/therapists

Parameters:

Empty

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Therapist list",
    "therapist_count": 2,
    "therapists": [
        {
            "id": 2,
            "first_name": "John",
            "last_name": "Doe",
            "email": "johndoe@email.com",
            "photo": null,
            "mobile": null
        },
        {
            "id": 3,
            "first_name": "Christine",
            "last_name": "Felancher",
            "email": "christine@email.com",
            "photo": null,
            "mobile": null
        }
    ]
}

Failed:

{
    "status": "Failed",
    "code": 404,
    "message": "Not found",
    "errors": {
        "message": "Record not found"
    }
}

practice-package

get specific practice package and usage details.

Method:

GET

URL:

http://api.mymovementrx.com/v1/practices/{practice}/practice-package

Parameters:

(optional) String - content_format: Determine how the description and sub description to be shown  e.g. url?content_format=mobile or url?content_format=html

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Package Informations",
    "package_subscriptions": {
        "current_package": {
            "id": 1,
            "name": "Free",
            "description": "For individual PT's who want to try out MyMovement Rx for unlimited time",
            "price": 0,
            "file_storage_limit": "200 MB",
            "user_limit": 1,
            "subscription_date": "0000-00-00",
            "expiration_date": "0000-00-00",
            "status": "active"
        },
        "current_storage": {
            "video_file_size": "15.59 MB",
            "thumbnail_file_size": "307.96 KB",
            "total_file_size": "15.89 MB",
            "available_file_storage": "184.11 MB",
            "percentage_available": 92.05,
            "percentage_use": 7.95,
            "storage_status": "Available"
        }
    }
}

Failed:

{
    "status": "Failed",
    "code": 404,
    "message": "Not found",
    "errors": {
        "message": "Record not found"
    }
}

update-daily-reminder

Update patients daily reminder status

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/users/{user_id}/update-daily-reminder

Parameters:

(required) Integer- daily_reminder : 1 or 0

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Update profile successful",
    "user": {
        "id": 9681,
        "first_name": "petere",
        "last_name": "capones",
        "photo": "http://localhost/superior_api/public/uploads/photos/1256.png",
        "step_goals": 1000000000,
        "daily_reminder": "1"
    }
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "daily_reminder": "The daily reminder field is required."
        }
    }
}

send-chat-notification

Empty

Method:

POST

URL:

http://api.mymovementrx.com/v1/send-chat-notification

Parameters:

(required) int - patient_id

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Initiate notification success",
    "notification": [
        {
            "id": 1,
            "therapist_id": "590",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        },
        {
            "id": 2,
            "therapist_id": "18",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        },
        {
            "id": 3,
            "therapist_id": "7",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        },
        {
            "id": 4,
            "therapist_id": "13",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        },
        {
            "id": 5,
            "therapist_id": "1880",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        },
        {
            "id": 6,
            "therapist_id": "1645",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        },
        {
            "id": 7,
            "therapist_id": "8949",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        },
        {
            "id": 8,
            "therapist_id": "8945",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        },
        {
            "id": 9,
            "therapist_id": "1708",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        },
        {
            "id": 10,
            "therapist_id": "30",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        },
        {
            "id": 11,
            "therapist_id": "12415",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        },
        {
            "id": 12,
            "therapist_id": "12469",
            "patient_id": "9681",
            "is_seen": "0",
            "created_at": "2023-01-27 03:15:48",
            "updated_at": "2023-01-27 03:15:48"
        }
    ]
}

Failed:

Empty

insurance-lists

Empty

Method:

GET

URL:

https://api.mymovementrx.com/v1/practices/{practice_id}/insurance-lists

Parameters:

Empty

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Insurances success",
    "insurances_lists": [
        {
            "id": 1,
            "company_id": null,
            "name": "Atena",
            "status": "active",
            "created_at": "2023-05-17 13:57:59",
            "updated_at": "-0001-11-30 00:00:00"
        },
        {
            "id": 2,
            "company_id": null,
            "name": "BCBS",
            "status": "active",
            "created_at": "2023-05-17 13:58:13",
            "updated_at": "-0001-11-30 00:00:00"
        },
        {
            "id": 3,
            "company_id": null,
            "name": "Medicare",
            "status": "active",
            "created_at": "2023-05-17 13:58:29",
            "updated_at": "-0001-11-30 00:00:00"
        },
        {
            "id": 4,
            "company_id": null,
            "name": "United Health",
            "status": "active",
            "created_at": "2023-05-17 13:58:45",
            "updated_at": "-0001-11-30 00:00:00"
        },
        {
            "id": 999,
            "company_id": null,
            "name": "Other",
            "status": "active",
            "created_at": "2023-05-17 13:58:55",
            "updated_at": "-0001-11-30 00:00:00"
        }
    ]
}

Failed:

Empty

Package

packages

Get all list of packages available

Method:

GET

URL:

http://api.mymovementrx.com/v1/packages

Parameters:

(optional) String - content_format: Determine how the description and sub description to be shown  e.g. url?content_format=mobile or url?content_format=html

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Package list",
    "package_count": 3,
    "date_fetched": "2019-02-06T02:15:01",
    "packages": [
        {
            "id": 1,
            "name": "Free",
            "description": "For individual PT's who want to try out MyMovement Rx for unlimited time",
            "sub_description": "Includes 200 MB file space",
            "price": 0,
            "file_size_limit": 209715200,
            "user_limit": 999999,
            "status": active,
            "created_at": "2019-01-28 10:03:54",
            "updated_at": "-0001-11-30 00:00:00"
        },
        {
            "id": 2,
            "name": "Premium",
            "description": "Multiple user accounts gets access to Management Dashboard to analyze patient and therapist usage",
            "sub_description": "Includes: Everything in FREE plus 500 MB file space",
            "price": 5,
            "file_size_limit": 524288000,
            "user_limit": 999999,
            "status": active,
            "created_at": "2019-01-28 10:04:39",
            "updated_at": "-0001-11-30 00:00:00"
        },
        {
            "id": 3,
            "name": "Clinic",
            "description": "For larger practices who need efficient and organized patient and PT file management and in-depth reporting",
            "sub_description": "Includes: Everything in FREE plus Up to 10 GB file space",
            "price": 50,
            "file_size_limit": "10485760000",
            "user_limit": 999999,
            "status": active,
            "created_at": "2019-01-28 10:05:09",
            "updated_at": "-0001-11-30 00:00:00"
        }
    ]
}

Failed:

Empty

Patient

video-list

Retrieves all assigned videos to patient

Method:

GET

URL:

http://api.mymovementrx.com/v1/patients/{patient_id}/video-list

Parameters:

(optional) Boolean - with_video_views : If 1 will return all views
(optional) Integer - limit_views : Limits the number of views_per_day
(optional) Integer - offset_views : Skips certain number of views_per_day
(optional) String - start_views : Start date for retrieving views_per_day by date_viewed e.g. (start_views = 2016-03-16)
(optional) String - end_views : End date for retrieving views_per_day by date_viewed e.g. (end_views = 2017-03-16)
(optional) String - order_views : Order retrieving views_per_day by date_viewed either 'asc' or 'desc'

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Video list",
  "video_count": 1,
  "videos": [
    {
      "id": 1,
      "ziggeo_id": "someziggeoid",
      "title": "Updated Title",
      "url": "http://ziggeo.com/video.mp4",
      "duration": "10",
      "file_name": "video.mp4",
      "path": "d://some/location",
      "thumbnail_url": null,
      "ziggeo_token": "someziggeotoken",
      "date_taken": "2017-02-17 08:39:11",
      "total_views": 2,
      "recommended_views": 3,
      "is_mark_completed": 1,
      "rank": 0,
      "uploader": {
          "id": 2,
          "email": "mark@prosoft.com",
          "first_name": "Markie",
          "last_name": "Angulo"
       },
      "views_per_day": [
        {
          "date_viewed": "2017-02-17",
          "views": 2
        }
      ]
    }
  ]
}

Failed:

{
  "status": "Failed",
  "code": 404,
  "message": "Not found",
  "errors": {
    "message": "Record not found"
  }
}

update-video-view

Log watched videos

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/update-video-view

Parameters:

(required) Integer - video_id
(required) Integer - patient_id

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Update video view successful",
  "videos": {
    "id": 1,
    "ziggeo_id": "someziggeoid",
    "title": "Bazinga",
    "url": "https://player.vimeo.com/external/141783676.sd.mp4?s=543110f05acffd7361ee8ef3c110101d&profile_id=112",
    "duration": "3",
    "file_name": "bazinga.mp4",
    "path": "d://some/location",
    "thumbnail_url": "http://api.mymovementrx.com/uploads/photos/1.jpg",
    "ziggeo_token": "ziggeo_token",
    "recommended_views": null,
    "is_mark_completed": 1,
    "total_views": null,
    "views_per_day": [
      {
        "date_viewed": "2017-02-27",
        "views": 14
      }
    ],
    "created_by": 1,
    "date_taken": "2017-02-23 05:53:19",
    "updated_at": {
      "date": "2017-02-23 05:53:19.000000",
      "timezone_type": 3,
      "timezone": "UTC"
    }
  }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "video_id": "The video id field is required.",
      "patient_id": "The patient id field is required."
    }
  }
}

patient

Empty

Method:

GET

URL:

http://api.mymovementrx.com/v1/patient/1

Parameters:

Empty

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Patient Info",
    "user": {
        "id": 2500,
        "user_id": 2683,
        "first_name": "Rich",
        "last_name": "Walker",
        "photo": null,
        "status": "active",
        "email": "rwalker@denodo.com",
        "username": "rwalker@denodo.com",
        "mobile": "+1(408)206-6889",
        "first_login": true,
        "step_goals": 500000,
        "has_active_rtm": 1,
        "feel_status": 8,
        "api_key": "********",
        "ziggeo_token": "",
        "role": {
            "key": "patient",
            "name": "Patient",
            "description": "Patient",
            "status": "active",
            "created_at": "2017-05-02 07:30:29",
            "updated_at": "2017-05-02 07:30:29"
        },
        "practice": {
            "id": 30,
            "parent_company_id": null,
            "name": "OPTM PT Saratoga",
            "logo": "http://localhost/superior_api/public/uploads/logos/30.png",
            "codeigniter_logo": "30.png",
            "email": null,
            "url": "http://optmsaratoga.com/",
            "status": "active",
            "created_at": "2018-05-16 03:03:04",
            "updated_at": "2018-10-15 01:19:12"
        },
        "pubnub": {
            "channel": "mmrx-chat-9681" // Append therapist id here Ex: "mmrx-chat-9681-18"
        }
    }
}

Failed:

Empty

foot-steps

Retrieve patient step logs including date

Method:

PATCH, POST, PUT

URL:

https://api.mymovementrx.com/v1/patient/{patient_id}/foot-steps

Parameters:

(optional) String - start_date: Start date for retrieving logs by date_created e.g. (start_views = 2016-03-16)
(optional) String - end_views : End date for retrieving logs by date_created e.g. (end_views = 2017-03-16)

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Patient Foot Steps",
    "logs_count": 5,
    "footstep_logs": {
        "today": {
            "id": 10,
            "step_count": 20004,
            "created_at": "2022-12-06 06:37:08"
        },
        "all_logs": [
            {
                "id": 10,
                "step_count": 20004,
                "created_at": "2022-12-06 06:37:08",
                "updated_at": "2022-12-06 06:37:08"
            },
            {
                "id": 7,
                "step_count": 7000,
                "created_at": "2022-11-21 02:02:53",
                "updated_at": "2022-11-22 02:02:53"
            },
            {
                "id": 6,
                "step_count": 7000,
                "created_at": "2022-11-20 02:02:53",
                "updated_at": "2022-11-22 02:02:53"
            },
            {
                "id": 5,
                "step_count": 7000,
                "created_at": "2022-11-19 02:02:52",
                "updated_at": "2022-11-22 02:02:52"
            }
        ]
    }
}

Failed:

Empty

add-foot-steps

Add steps to the database (if another record is added on the same day, the total steps will be computed on the same date)

Method:

PATCH, POST, PUT

URL:

https://api.mymovementrx.com/v1/patient/{patient_id}/add-foot-steps

Parameters:

(reqruired) Integer- step_count

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Patient Foot Steps",
    "logs_count": 4,
    "footstep_logs": {
        "today": {
            "step_count": "20000",
            "date": "2022-11-22"
        },
        "all_logs": [
            {
                "step_count": "20000",
                "date": "2022-11-22"
            },
            {
                "step_count": "7000",
                "date": "2022-11-21"
            },
            {
                "step_count": "14000",
                "date": "2022-11-20"
            },
            {
                "step_count": "7000",
                "date": "2022-11-19"
            }
        ]
    }
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "step_count": "The step count field is required."
        }
    }
}

feel-status

Get patient "how are you feeling today" logs

Method:

POST

URL:

https://api.mymovementrx.com/v1/patient/{patient_id}/feel-status

Parameters:

(optional) String - start_date: Start date for retrieving logs by date_created e.g. (start_views = 2016-03-16)
(optional) String - end_views : End date for retrieving logs by date_created e.g. (end_views = 2017-03-16)

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Patient Feel Status",
    "logs_count": 4,
    "feel_logs": {
        "today": {
            "id": 4,
            "limit": 3,
            "created_at": "2022-12-06 06:45:57",
            "updated_at": "2022-12-06 06:45:57"
        },
        "all_logs": [
            {
                "id": 1,
                "limit": 5,
                "created_at": "2022-11-22 19:25:20",
                "updated_at": "2022-11-22 19:27:08"
            },
            {
                "id": 2,
                "limit": 6,
                "created_at": "2022-11-21 19:25:20",
                "updated_at": "2022-11-22 19:27:08"
            },
            {
                "id": 3,
                "limit": 8,
                "created_at": "2022-11-20 19:25:20",
                "updated_at": "2022-11-22 19:27:08"
            },
            {
                "id": 4,
                "limit": 3,
                "created_at": "2022-12-06 06:45:57",
                "updated_at": "2022-12-06 06:45:57"
            }
        ]
    }
}

Failed:

Empty

add-feel-status

save patient how do they feel today on the database (when function is call on the same day, the record will be updated on the same patient)

Method:

PATCH, POST, PUT

URL:

https://api.mymovementrx.com/v1/patient/{patient_id}/add-feel-status

Parameters:

(reqruired) Integer- limit

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Patient Feel Status",
    "logs_count": 3,
    "feel_logs": {
        "today": {
            "id": 1,
            "user_id": 6502,
            "limit": 5,
            "status": "active",
            "created_at": "2022-11-22 19:25:20",
            "updated_at": "2022-11-22 19:27:08"
        },
        "all_logs": [
            {
                "id": 1,
                "user_id": 6502,
                "limit": 5,
                "status": "active",
                "created_at": "2022-11-22 19:25:20",
                "updated_at": "2022-11-22 19:27:08"
            },
            {
                "id": 2,
                "user_id": 6502,
                "limit": 6,
                "status": "active",
                "created_at": "2022-11-21 19:25:20",
                "updated_at": "2022-11-22 19:27:08"
            },
            {
                "id": 3,
                "user_id": 6502,
                "limit": 8,
                "status": "active",
                "created_at": "2022-11-20 19:25:20",
                "updated_at": "2022-11-22 19:27:08"
            }
        ]
    }
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "limit": "The limit field is required."
        }
    }
}

complete-video-view

Auto complete patient video views

Method:

PATCH, POST, PUT

URL:

https://api.mymovementrx.com/v1/complete-video-view

Parameters:

(required) Array|Integer - video_id
(required) Integer - patient_id

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Update video view successful",
    "videos": {
        "video_ids": [
            "48186",
            "48187",
            "48240",
            "48241"
        ]
    }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "video_id": "The video id field is required.",
      "patient_id": "The patient id field is required.",
      "is_mark_completed": "The is_mark_completed field is required."
    }
  }
}

Therapist

add-patient

Add and assign patient to a therapist

Method:

POST

URL:

http://api.mymovementrx.com/v1/therapists/{therapist_id}/add-patient

Parameters:

(reqruired) String - first_name
(required) String - last_name
(required) String - email
(optional) String - mobile
(optional) Array- insurance_ids

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Signup successful",
  "user": {
    "id": 4,
    "first_name": "Kevin",
    "last_name": "Carolino",
    "email": "kevin.carolino@prosoft-phils.com",
    "username": "kevin.carolino@prosoft-phils.com",
    "role": {
      "key": "patient",
      "name": "Patient",
      "description": "Patient",
      "status": "active",
      "created_at": "2017-02-17 08:08:49",
      "updated_at": "2017-02-17 08:08:49"
    },
    "practice": {
      "id": 1,
      "parent_company_id": null,
      "name": "Movement Rx",
      "status": "active",
      "created_at": "2017-02-17 08:08:49",
      "updated_at": "2017-02-17 08:08:49"
    },
     "insurances": [
            {
                "user_id": 13333,
                "insurance_id": "1",
                "updated_at": "2023-05-17 04:02:21",
                "created_at": "2023-05-17 04:02:21",
                "id": 4
            },
            {
                "user_id": 13333,
                "insurance_id": "3",
                "updated_at": "2023-05-17 04:02:21",
                "created_at": "2023-05-17 04:02:21",
                "id": 5
            }
        ],
    "sms_sent": true,
    "email_sent": false
  }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "first_name": "The first name field is required.",
      "last_name": "The last name field is required.",
      "email": "The email field is required.",
      "practice_id": "The practice id field is required."
    }
  }
}

update-patient

Empty

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/update-patient/{patient_id}

Parameters:

(required) String - first_name
(required) String - last_name
(optional) String - mobile
(optional) Array- insurance_ids

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Update patient successful",
  "user": {
    "id": 4,
    "first_name": "Kevin",
    "last_name": "Carolino",
    "email": "kevin.carolino@prosoft-phils.com",
    "username": "kevin.carolino@prosoft-phils.com",
    "role": {
      "key": "patient",
      "name": "Patient",
      "description": "Patient",
      "status": "active",
      "created_at": "2017-02-17 08:08:49",
      "updated_at": "2017-02-17 08:08:49"
    },
    "practice": {
      "id": 1,
      "parent_company_id": null,
      "name": "Movement Rx",
      "status": "active",
      "created_at": "2017-02-17 08:08:49",
      "updated_at": "2017-02-17 08:08:49"
    }
  }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "email": "The email must be a valid email address."
    }
  }
}

assign-patient

Assign patient or patients to a therapist

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/therapists/{therapist_id}/assign-patients

Parameters:

(required) Array|Integer - patient_ids

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Assign patient successful",
  "patients": [
    {
      "id": 3,
      "user_id": 4,
      "first_name": "Kevin",
      "last_name": "Carolino",
      "photo": null,
      "status": "active",
      "created_at": "2017-02-17 08:29:56",
      "updated_at": "2017-02-17 08:29:56"
    }
  ]
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "patient_ids": "The patient ids field is required."
    }
  }
}

detach-patient

Unassign patient or patients to a therapist

Method:

DELETE

URL:

http://api.mymovementrx.com/v1/therapists/{therapist_id}/detach-patients

Parameters:

(required) Array|Integer - patient_ids

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Delete patient successful",
  "patients": [
    {
      "id": 3,
      "user_id": 4,
      "first_name": "Kevin",
      "last_name": "Carolino",
      "photo": null,
      "status": "active",
      "created_at": "2017-02-17 08:29:56",
      "updated_at": "2017-02-17 08:29:56"
    }
  ]
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "patient_ids": "The patient ids field is required."
    }
  }
}

patient-list

Retrieves all patients together with assigned videos to each patient and their view logs

Method:

POST

URL:

http://api.mymovementrx.com/v1/patient-list

Parameters:

(optional) Integer - therapist_id: Will add "is_patient" to response
(optional) Integer|Array - practice_ids: retrieves patients from a certain practice
(optional) Boolean - with_videos: if 1 will return patient videos
(optional) Boolean - with_video_views: if 1 will return video views
(optional) Integer - limit_views : Limits the number of views_per_day
(optional) Integer - offset_views : Skips certain number of views_per_day
(optional) String - start_views : Start date for retrieving views_per_day by date_viewed e.g. (start_views = 2016-03-16)
(optional) String - end_views : End date for retrieving views_per_day by date_viewed e.g. (end_views = 2017-03-16)
(optional) String - order_views : Order retrieving views_per_day by date_viewed either 'asc' or 'desc'
(optional) String - status : Filter patients by their overall status e.g. url?status=active
(optional) String - patient_status : Filter patients by their status with regards to their therapist e.g. url?patient-status=active

* NEW
(optional) String - fetch: Filter recent patients e.g. url?fetch=2018-09-26T21:46:40

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Patient list",
  "patient_count": 1,
  "date_fetched": "2018-09-26T21:46:40", <---------------- NEW FIELD
  "deleted_patients": [ <---------------- NEW FIELD
        8,9,10
  ],
  "patients": [
    {
      "id": 4,
      "first_name": "Kevin",
      "last_name": "Carolino",
      "email": "joshua@prosoft.com",
      "photo": "http://localhost/superiorapi/public/uploads/photos/3.jpg",
      "status": "archived",
      "mobile": null,
      "insurance": {
                "id": 4,
                "name": "United Health"
      },
      "already_logged_in": true,
      "video_count": 1,
      "videos": [
        {
          "id": 1,
          "ziggeo_id": "someziggeoid",
          "title": "Video Title",
          "url": "http://ziggeo.com/video.mp4",
          "duration": "10",
          "file_name": "video.mp4",
          "path": "d://some/location",
          "thumbnail_url": null,
          "ziggeo_token": "someziggeotoken",
          "recommended_views": 3,
          "total_views": 2,
          "views_per_day": [
            {
              "date_viewed": "2017-02-17",
              "views": 2
            }
          ],
          "created_by": 1,
          "date_taken": "2017-02-17 08:39:11",
          "updated_at": "2017-02-17 08:39:11"
        }
      ]
    }
  ]
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "practice_ids": "The selected practice ids is invalid."
    }
  }
}

therapist-patient-list

Retrieves patients of a certain therapist

Method:

GET

URL:

http://api.mymovementrx.com/v1/therapists/{therapist_id}/patient-list

Parameters:

(optional) Boolean - with_videos: if 1 will return patient videos
(optional) Boolean - with_video_views: if 1 will return video views
(optional) Integer - limit_views : Limits the number of views_per_day
(optional) Integer - offset_views : Skips certain number of views_per_day
(optional) String - start_views : Start date for retrieving views_per_day by date_viewed e.g. (start_views = 2016-03-16)
(optional) String - end_views : End date for retrieving views_per_day by date_viewed e.g. (end_views = 2017-03-16)
(optional) String - order_views : Order retrieving views_per_day by date_viewed either 'asc' or 'desc'

*new
(optional) String - patient_status : Filter patients by their status e.g. url?patient-status=active

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Patient list",
  "patient_count": 1,
  "patients": [
    {
      "id": 4,
      "first_name": "Kevin",
      "last_name": "Carolino",
      "email": "conan@prosoft.com",
      "photo": "http://api.mymovementrx.com/uploads/photos/22.jpg",
      "mobile": null,
      "already_logged_in": false,  <---------------- NEW FIELD
      "video_count": 1,
      "videos": [
        {
          "id": 1,
          "ziggeo_id": "someziggeoid",
          "title": "Video Title",
          "url": "http://ziggeo.com/video.mp4",
          "duration": "10",
          "file_name": "video.mp4",
          "path": "d://some/location",
          "thumbnail_url": null,
          "ziggeo_token": "someziggeotoken",
          "recommended_views": 3,
          "total_views": 2,
          "views_per_day": [
            {
              "date_viewed": "2017-02-17",
              "views": 2
            }
          ],
          "created_by": 1,
          "date_taken": "2017-02-17 08:39:11",
          "updated_at": "2017-02-17 08:39:11"
        }
      ]
    }
  ]
}

Failed:

{
  "status": "Failed",
  "code": 404,
  "message": "Not found",
  "errors": {
    "message": "Record not found"
  }
}

upload-video

Upload video and assign it to patient

Method:

POST

URL:

http://api.mymovementrx.com/v1/upload-video

Parameters:

(required) String - video_id: Ziggeo ID
(required) String - title
(required) String - video_url
(required) Integer - duration
(required) String - file_name
(required) String - video_file_size
(optional) String - path
(optional) String - thumbnail_url
(required if thumbnail is not empty) String - thumbnail_file_size
(required) String - ziggeo_token
(required) Integer - created_by: Therapist ID
(optional) Integer - patient_id
(required if patient_id is present) Integer - recommended_views
*new (optional) String - type : video or image
*new (optionl) Integer - folder_id

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Upload video successful",
  "video": {
    "title": "Video Title",
    "duration": "10",
    "file_name": "video.mp4",
    "video_file_size": "10201923",
    "path": "d://some/location",
    "ziggeo_token": "someziggeotoken",
    "type": "video",
    "ziggeo_id": "someziggeoid",
    "uploader_id": 1,
    "url": "http://ziggeo.com/video.mp4",
    "date_taken": "2017-02-17 08:39:11",
    "updated_at": "2017-02-17 08:39:11",
    "created_at": "2017-02-17 08:39:11",
    "id": 1
  }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "video_id": "The video id field is required.",
      "title": "The title field is required.",
      "video_url": "The video url field is required.",
      "duration": "The duration field is required.",
      "file_name": "The file name field is required.",
      "ziggeo_token": "The ziggeo token field is required.",
      "created_by": "The created by field is required."
    }
  }
}

update-video

Update video information

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/update-video

Parameters:

(optional) String - title
(optional) String - video_url
(optional) Integer - duration
(optional) String - file_name
(optional) String - video_file_size
(optional) String - path
(optional) String - thumbnail_url
(optional) String - thumbnail_file_size
*new (optional) String - type : video or image
*new (optionl) Integer - folder_id

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Update video successful",
  "video": {
    "id": 1,
    "ziggeo_id": "someziggeoid",
    "uploader_id": 1,
    "title": "Updated Title",
    "url": "http://ziggeo.com/video.mp4",
    "duration": "10",
    "file_name": "video.mp4",
    "video_file_size": "1231231231",
    "path": "d://some/location",
    "thumbnail_url": null,
    "thumbnail_file_size": "0",
    "ziggeo_token": "someziggeotoken",
    "type": "video",
    "status": "active",
    "date_taken": "2017-02-17 08:39:11",
    "created_at": "2017-02-17 08:39:11",
    "updated_at": "2017-02-17 08:54:05"
  }
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "video_id": "The video id field is required."
    }
  }
}

delete-video

Remove video from a patient

Method:

DELETE

URL:

http://api.mymovementrx.com/v1/delete-videos

Parameters:

(required) Integer - therapist_id => ( 20190817 NEW )
(optional) Integer - patient_id
(required if ziggeo_tokens not present) Array|Integer - video_ids
(required if video_ids not present) Array|Integer - ziggeo_tokens

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Delete video successful",
  "video_token": [
    "a8afe3eff1d615765a38e716dd9112ca"
  ]
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "video_ids": "The video ids field is required when ziggeo tokens is not present.",
      "ziggeo_tokens": "The ziggeo tokens field is required when video ids is not present."
    }
  }
}

resend-invitation

Resend patient invitation

Method:

POST

URL:

http://api.mymovementrx.com/v1/resend-invitation

Parameters:

(required) int therapist_id
(required) int patient_id

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 204,
  "message": "Resend invitation successful"
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "therapist_id": "The therapist id field is required.",
      "patient_id": "The patient id field is required."
    }
  }
}

remove-patient

Totally delete a patient

Method:

DELETE

URL:

http://api.mymovementrx.com/v1/therapists/{therapist_id}/delete-patients

Parameters:

(required) Array|Integer - patient_ids

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Delete patient successful",
  "patients": [
    {
      "id": 3,
      "user_id": 4,
      "first_name": "Kevin",
      "last_name": "Carolino",
      "photo": null,
      "status": "active",
      "created_at": "2017-02-17 08:29:56",
      "updated_at": "2017-02-17 08:29:56"
    }
  ]
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "patient_ids": "The patient ids field is required."
    }
  }
}

archive-video

Archive video

Method:

DELETE

URL:

http://api.mymovementrx.com/v1/archive-videos

Parameters:

(optional) Integer - patient_id
(required if ziggeo_tokens not present) Array|Integer - video_ids
(required if video_ids not present) Array|Integer - ziggeo_tokens

Sample Call:

Empty

Response:

Success:

{
  "status": "Success",
  "code": 200,
  "message": "Archive video successful",
  "video_token": [
    "a8afe3eff1d615765a38e716dd9112ca"
  ]
}

Failed:

{
  "status": "Failed",
  "code": 400,
  "message": "Invalid parameters",
  "errors": {
    "message": "Validation failed",
    "fields": {
      "video_ids": "The video ids field is required when ziggeo tokens is not present.",
      "ziggeo_tokens": "The ziggeo tokens field is required when video ids is not present."
    }
  }
}

rank-videos

Reorder video priorities

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/rank-videos

Parameters:

(required) Array - videos
(required) Integer - video[id]
(required) Integer - video[rank]

E.g.
videos[0][id]:4
videos[0][rank]:21
videos[1][id]:5
videos[1][rank]:22

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Rank video successful",
    "video": [
        {
            "id": 4,
            "ziggeo_id": "d41aab5cf86cbd4a8a954f30548ca5d5",
            "uploader_id": 2,
            "title": "How to perform exercises to higher jump",
            "url": "https://embed-cdn.ziggeo.com/v1/applications/b8e9ffd3e3d6d589176776f6e5758fba/videos/d41aab5cf86cbd4a8a954f30548ca5d5/video.mp4",
            "duration": "42.12",
            "file_name": "IMG_0097.MP4",
            "path": null,
            "thumbnail_url": "https://embed.ziggeo.com/v1/applications/b8e9ffd3e3d6d589176776f6e5758fba/videos/d41aab5cf86cbd4a8a954f30548ca5d5/image",
            "ziggeo_token": "b8e9ffd3e3d6d589176776f6e5758fba",
            "status": "active",
            "date_taken": "2017-05-03 15:04:08",
            "created_at": "2017-05-03 15:04:08",
            "updated_at": "2017-10-12 01:20:44",
            "rank": "21"
        },
        {
            "id": 5,
            "ziggeo_id": "b9b6bcd369cd47963101e430a3d6cd86",
            "uploader_id": 2,
            "title": "Reduce Neck Pain",
            "url": "https://embed-cdn.ziggeo.com/v1/applications/b8e9ffd3e3d6d589176776f6e5758fba/videos/b9b6bcd369cd47963101e430a3d6cd86/video.mp4",
            "duration": "28.82",
            "file_name": "IMG_0096.MP4",
            "path": null,
            "thumbnail_url": "https://embed.ziggeo.com/v1/applications/b8e9ffd3e3d6d589176776f6e5758fba/videos/b9b6bcd369cd47963101e430a3d6cd86/image",
            "ziggeo_token": "b8e9ffd3e3d6d589176776f6e5758fba",
            "status": "active",
            "date_taken": "2017-05-03 15:05:51",
            "created_at": "2017-05-03 15:05:51",
            "updated_at": "2017-10-12 01:20:44",
            "rank": "22"
        }
    ]
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "videos": "The videos field is required."
        }
    }
}

create-folder

Create folder for videos

Method:

POST

URL:

http://api.mymovementrx.com/v1/therapists/{therapist_id}/create-folder

Parameters:

(required) int - patient_id
(required) String - name : Folder name
(optional) int - parent_video_folder_id : user for creating subfolders
(required) int insurance_id : required if no parent_video_folder_id is present. Subfolder does not require insurance_id

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Create folder successful",
    "folder": {
        "name": "Parent Folder",
        "therapist_id": 18,
        "patient_id": 14925,
        "rank": -14,
        "updated_at": "2024-04-09 04:18:39",
        "created_at": "2024-04-09 04:18:39",
        "id": 18765,
        "rtm_id": 6189,
        "rtm_status": "archived"
    }
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "patient_id": "The patient id field is required.",
            "name": "The name field is required."
        }
    }
}

retrieve-folders

Retrieve list of folders for specific patient

Method:

GET

URL:

http://api.mymovementrx.com/v1/patients/{patient_id}/folders

Parameters:

Empty

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Folder list",
    "folders": [
        {
            "id": 10,
            "therapist_id": 1,
            "patient_id": 2,
            "name": "Bazinga",
            "status": "active",
            "created_at": "2017-11-17 04:56:38",
            "updated_at": "2017-11-17 04:56:38",
            "total_videos": 2,
            "has_active_rtm": true,
            "rtm_id": 12,
            "rtm": [
                {
                    "id": 16,
                    "video_folder_id": 12969,
                    "status": "active",
                    "archived_at": null,
                    "created_at": "2023-04-25 18:12:13",
                    "updated_at": "2023-04-25 05:12:13"
                }
            ]
        }
    ]
}

Failed:

{
    "status": "Failed",
    "code": 404,
    "message": "Not found",
    "errors": {
        "message": "Record not found"
    }
}

retrieve-folder-videos

Retrieve videos for specific folder

Method:

GET

URL:

http://api.mymovementrx.com/v1/folders/{folder_id}/videos

Parameters:

(optional) Boolean - with_video_views : If 1 will return all views
(optional) Integer - limit_views : Limits the number of views_per_day
(optional) Integer - offset_views : Skips certain number of views_per_day
(optional) String - start_views : Start date for retrieving views_per_day by date_viewed e.g. (start_views = 2016-03-16)
(optional) String - end_views : End date for retrieving views_per_day by date_viewed e.g. (end_views = 2017-03-16)
(optional) String - order_views : Order retrieving views_per_day by date_viewed either 'asc' or 'desc'

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Folder video lists",
    "video_count": 4,
    "folders": [
        {
            "id": 18742,
            "parent_video_folder_id": 18741,
            "therapist_id": 18,
            "patient_id": 14925,
            "name": "subfolder",
            "rank": 1,
            "status": "active",
            "created_at": "2024-04-04 22:20:27",
            "updated_at": "2024-04-04 22:20:27",
            "total_videos": 2
        },
        {
            "id": 18764,
            "parent_video_folder_id": 18741,
            "therapist_id": 18,
            "patient_id": 14925,
            "name": "superman0",
            "rank": -13,
            "status": "active",
            "created_at": "2024-04-09 04:18:21",
            "updated_at": "2024-04-09 04:18:21",
            "total_videos": 0
        }
    ],
    "videos": [
        {
            "id": 15,
            "company_id": null,
            "ziggeo_id": "ea276abd62a3678a754eea9d2ecd5144",
            "uploader_id": 30,
            "title": "Step backs",
            "url": "https://s3-us-west-2.amazonaws.com/movementrx/51/15.mp4",
            "duration": "23.28",
            "file_name": "51/15.mp4",
            "video_file_size": 0,
            "path": null,
            "thumbnail_url": "https://s3-us-west-2.amazonaws.com/movementrx/51/15.png",
            "thumbnail_file_size": 0,
            "type": null,
            "ziggeo_token": "b8e9ffd3e3d6d589176776f6e5758fba",
            "status": "active",
            "date_taken": "2017-05-22 20:26:50",
            "created_at": "2017-05-23 11:26:50",
            "updated_at": "2021-02-24 09:06:42",
            "is_live": 1,
            "deleted_at": null,
            "recommended_views": 3,
            "total_views": 0,
            "rank": 0,
            "is_mark_completed": 0,
            "uploader": {
                "first_name": "Andrew",
                "last_name": "Gorecki",
                "id": 18,
                "email": "andrewg@thesuperiortherapy.com"
            },
            "patient_id": 51,
            "folder_id": 18741,
            "pivot": {
                "id": 23,
                "patient_id": 51,
                "video_id": 15,
                "video_folder_id": 18741,
                "views_per_day": 3,
                "rank": 0,
                "status": "active",
                "name": null,
                "created_at": "2017-05-23 11:26:50",
                "updated_at": "2017-05-22 20:26:50",
                "deleted_at": null
            }
        },
        {
            "id": 17,
            "company_id": null,
            "ziggeo_id": "d4edcc3bfb65ccac96b7f2334b4fccf6",
            "uploader_id": 30,
            "title": "Thoracic rotatations",
            "url": "https://embed-cdn.ziggeo.com/v1/applications/b8e9ffd3e3d6d589176776f6e5758fba/videos/d4edcc3bfb65ccac96b7f2334b4fccf6/video.mp4",
            "duration": "35.45",
            "file_name": "517417051.mp4",
            "video_file_size": 0,
            "path": null,
            "thumbnail_url": "https://embed.ziggeo.com/v1/applications/b8e9ffd3e3d6d589176776f6e5758fba/videos/d4edcc3bfb65ccac96b7f2334b4fccf6/image",
            "thumbnail_file_size": 0,
            "type": null,
            "ziggeo_token": "b8e9ffd3e3d6d589176776f6e5758fba",
            "status": "active",
            "date_taken": "2017-05-25 14:58:31",
            "created_at": "2017-05-26 05:58:31",
            "updated_at": "2017-05-26 11:22:38",
            "is_live": 1,
            "deleted_at": null,
            "recommended_views": 2,
            "total_views": 0,
            "rank": 0,
            "is_mark_completed": 0,
            "uploader": {
                "first_name": "Andrew",
                "last_name": "Gorecki",
                "id": 18,
                "email": "andrewg@thesuperiortherapy.com"
            },
            "patient_id": 57,
            "folder_id": 18741,
            "pivot": {
                "id": 25,
                "patient_id": 57,
                "video_id": 17,
                "video_folder_id": 18741,
                "views_per_day": 2,
                "rank": 0,
                "status": "active",
                "name": null,
                "created_at": "2017-05-26 05:58:31",
                "updated_at": "2017-05-26 11:22:38",
                "deleted_at": null
            }
        }
    ]
}

Failed:

{
    "status": "Failed",
    "code": 404,
    "message": "Not found",
    "errors": {
        "message": "Record not found"
    }
}

add-folder-videos

Add videos to a folder

Method:

POST

URL:

http://api.mymovementrx.com/v1/folders/{folder_id}/add-videos

Parameters:

(required) Integer - patient_id
(required) Array|Integer - video_id

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Add video successful",
    "folder": [
        {
            "id": 10,
            "therapist_id": 1,
            "patient_id": 2,
            "name": "Folder Name",
            "rank": null,
            "status": "active",
            "created_at": "2017-11-17 04:56:38",
            "updated_at": "2017-11-17 04:56:38",
            "videos": [
                {
                    "id": 4,
                    "ziggeo_id": "d41aab5cf86cbd4a8a954f30548ca5d5",
                    "uploader_id": 2,
                    "title": "Thoracic doorway",
                    "url": "https://s3-us-west-2.amazonaws.com/movementrx/619/20171027035923.mp4",
                    "duration": "42.12",
                    "file_name": "IMG_0097.MP4",
                    "path": null,
                    "thumbnail_url": "https://embed.ziggeo.com/v1/applications/b8e9ffd3e3d6d589176776f6e5758fba/videos/d41aab5cf86cbd4a8a954f30548ca5d5/image",
                    "ziggeo_token": "b8e9ffd3e3d6d589176776f6e5758fba",
                    "type": "video",
                    "status": "active",
                    "date_taken": "2017-05-03 15:04:08",
                    "created_at": "2017-05-03 15:04:08",
                    "updated_at": "2017-10-12 01:20:44",
                    "pivot": {
                        "video_folder_id": 10,
                        "video_id": 4,
                        "id": 1,
                        "patient_id": 23,
                        "views_per_day": 3,
                        "rank": 0,
                        "status": "active",
                        "created_at": "2017-07-05 15:52:22",
                        "updated_at": "2017-11-19 23:29:38"
                    }
                }
            ]
        }
    ]
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "patient_id": "The patient id field is required.",
            "video_ids": "The video ids field is required."
        }
    }
}

remove-folder-videos

Remove videos from a folder

Method:

DELETE

URL:

http://api.mymovementrx.com/v1/folders/{folder_id}/remove-videos

Parameters:

(required) Integer - patient_id
(required) Array|Integer - video_id

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Remove video successful",
    "folder": [
        {
            "id": 10,
            "therapist_id": 1,
            "patient_id": 2,
            "name": "Folder Name",
            "rank": null,
            "status": "active",
            "created_at": "2017-11-17 04:56:38",
            "updated_at": "2017-11-17 04:56:38",
            "videos": [
                {
                    "id": 4,
                    "ziggeo_id": "d41aab5cf86cbd4a8a954f30548ca5d5",
                    "uploader_id": 2,
                    "title": "Thoracic doorway",
                    "url": "https://s3-us-west-2.amazonaws.com/movementrx/619/20171027035923.mp4",
                    "duration": "42.12",
                    "file_name": "IMG_0097.MP4",
                    "path": null,
                    "thumbnail_url": "https://embed.ziggeo.com/v1/applications/b8e9ffd3e3d6d589176776f6e5758fba/videos/d41aab5cf86cbd4a8a954f30548ca5d5/image",
                    "ziggeo_token": "b8e9ffd3e3d6d589176776f6e5758fba",
                    "type": "video",
                    "status": "active",
                    "date_taken": "2017-05-03 15:04:08",
                    "created_at": "2017-05-03 15:04:08",
                    "updated_at": "2017-10-12 01:20:44",
                    "pivot": {
                        "video_folder_id": 10,
                        "video_id": 4,
                        "id": 1,
                        "patient_id": 23,
                        "views_per_day": 3,
                        "rank": 0,
                        "status": "active",
                        "created_at": "2017-07-05 15:52:22",
                        "updated_at": "2017-11-19 23:29:38"
                    }
                }
            ]
        }
    ]
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "patient_id": "The patient id field is required.",
            "video_ids": "The video ids field is required."
        }
    }
}

update-folder

Update folder name or rank

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/update-folder/{folder_id}

Parameters:

(optional) string - name // change name
(optional) integer - rank // change rank

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Update folder successful",
    "folder": {
        "id": 10,
        "therapist_id": 1,
        "patient_id": 23,
        "name": "Renamed Folder",
        "rank": "4",
        "status": "active",
        "created_at": "2017-11-17 04:56:38",
        "updated_at": "2017-11-17 04:56:38"
    }
}

Failed:

{
    "status": "Failed",
    "code": 404,
    "message": "Not found",
    "errors": {
        "message": "Record not found"
    }
}

move-videos

move videos to a folder

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/move-videos

Parameters:

(optional) Integer - source_folder_id
(required) Integer - folder_id
(required) Integer - patient_id
(required) Array|Integer - video_id

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Move video successful",
    "folder": [
        {
            "id": 12,
            "therapist_id": 1,
            "patient_id": 23,
            "name": "Baka",
            "rank": 2,
            "status": "active",
            "created_at": "2017-11-20 13:20:52",
            "updated_at": "2017-11-20 13:20:54",
            "videos": [
                {
                    "id": 4,
                    "ziggeo_id": "d41aab5cf86cbd4a8a954f30548ca5d5",
                    "uploader_id": 2,
                    "title": "How to perform exercises to higher jump",
                    "url": "https://embed-cdn.ziggeo.com/v1/applications/b8e9ffd3e3d6d589176776f6e5758fba/videos/d41aab5cf86cbd4a8a954f30548ca5d5/video.mp4",
                    "duration": "42.12",
                    "file_name": "IMG_0097.MP4",
                    "path": null,
                    "thumbnail_url": "https://embed.ziggeo.com/v1/applications/b8e9ffd3e3d6d589176776f6e5758fba/videos/d41aab5cf86cbd4a8a954f30548ca5d5/image",
                    "ziggeo_token": "b8e9ffd3e3d6d589176776f6e5758fba",
                    "status": "active",
                    "date_taken": "2017-05-03 15:04:08",
                    "created_at": "2017-05-03 15:04:08",
                    "updated_at": "2017-05-03 15:04:08",
                    "pivot": {
                        "video_folder_id": 12,
                        "video_id": 4,
                        "id": 1,
                        "patient_id": 23,
                        "views_per_day": 3,
                        "rank": 0,
                        "status": "active",
                        "created_at": "2017-07-05 15:52:22",
                        "updated_at": "2017-12-15 03:32:00"
                    }
                },
                {
                    "id": 122,
                    "ziggeo_id": "285b0b424cdc06c65825cf2400926799",
                    "uploader_id": 13,
                    "title": "Thoracic doorway",
                    "url": "https://s3-us-west-2.amazonaws.com/movementrx/155/20170717103804.mp4",
                    "duration": "17",
                    "file_name": "155/20170717103804.mp4",
                    "path": null,
                    "thumbnail_url": "https://s3-us-west-2.amazonaws.com/movementrx/155/20170717103804.png",
                    "ziggeo_token": "movementrx",
                    "status": "active",
                    "date_taken": "2017-07-17 17:38:23",
                    "created_at": "2017-07-17 17:38:23",
                    "updated_at": "2017-07-17 17:38:23",
                    "pivot": {
                        "video_folder_id": 12,
                        "video_id": 122,
                        "id": 14,
                        "patient_id": 3,
                        "views_per_day": 3,
                        "rank": -1,
                        "status": "active",
                        "created_at": "2017-11-19 23:12:34",
                        "updated_at": "2017-11-19 23:22:46"
                    }
                }
            ],
            "total_videos": 1,
            "source_total_videos": 1
        }
    ]
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "folder_id": "The folder id field is required.",
            "patient_id": "The patient id field is required.",
            "video_ids": "The video ids field is required."
        }
    }
}

rank-folders

Reorder folders

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/rank-folders

Parameters:

(required) Array - folders
(required) Integer - folder[id]
(required) Integer - folder[rank]

E.g.
folders[0][id]:4
folders[0][rank]:1
folders[1][id]:5
folders[1][rank]:2

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Rank folder successful",
    "folder": [
        {
            "id": 10,
            "therapist_id": 1,
            "patient_id": 23,
            "name": "Folder 1",
            "rank": "1",
            "status": "active",
            "created_at": "2017-11-17 04:56:38",
            "updated_at": "2018-01-02 20:43:53"
        },
        {
            "id": 12,
            "therapist_id": 1,
            "patient_id": 23,
            "name": "Folder 2",
            "rank": "2",
            "status": "active",
            "created_at": "2017-11-20 13:20:52",
            "updated_at": "2018-01-02 20:43:53"
        }
    ]
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "folders": "The folders field is required."
        }
    }
}

delete-folder

Delete folder and videos inside it

Method:

DELETE

URL:

http://api.mymovementrx.com/v1/delete-folder/{folder-id}

Parameters:

(required) Int - therapist_id : Therapist id (New)

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Delete folder successful",
    "folder": {
        "id": 13,
        "therapist_id": 1,
        "patient_id": 23,
        "name": "Folder 1",
        "rank": 1,
        "status": "active",
        "created_at": "2017-11-19 23:27:05",
        "updated_at": "2017-11-19 23:27:05"
    }
}

Failed:

{
    "status": "Failed",
    "code": 404,
    "message": "Not found",
    "errors": {
        "message": "Record not found"
    }
}

archive-folder

Archive folder status

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/archive-folder/{folder-id}

Parameters:

Empty

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Archive folder successful",
    "folder": {
        "id": 3347,
        "therapist_id": 13,
        "patient_id": 9681,
        "name": "testing1",
        "rank": 1,
        "status": "archived",
        "created_at": "2022-12-26 00:22:14",
        "updated_at": "2022-12-27 03:47:46"
    }
}

Failed:

Empty

archive-rtm

Empty

Method:

PATCH, POST, PUT

URL:

http://api.mymovementrx.com/v1/archive-rtm/{rtm-id}

Parameters:

Empty

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Archive RTM successful",
    "rtm": {
        "id": 14,
        "video_folder_id": 3349,
        "status": "archived",
        "archived_at": "2023-03-15 01:05:41",
        "created_at": "2023-03-15 13:36:34",
        "updated_at": "2023-03-15 01:05:41"
    }
}

Failed:

Empty

restore-rtm

Empty

Method:

POST

URL:

http://api.mymovementrx.com/v1/restore-rtm/{rtm-id}

Parameters:

Empty

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "RTM folder has successfully restored.",
    "rtm": {
        "id": 12,
        "video_folder_id": 3347,
        "status": "active",
        "archived_at": null,
        "created_at": "2023-01-13 10:05:26",
        "updated_at": "2023-04-25 05:38:31"
    }
}

Failed:

Empty

create-folder-v2

Create folder for videos

Method:

POST

URL:

https://api.mymovementrx.com/v1/therapists/{therapist_id}/create-folder-v2

Parameters:

(required) int - patient_id
(required) String - name : Folder name
(optional) int - parent_video_folder_id : user for creating subfolders
(required) int insurance_id : required if no parent_video_folder_id is present. Subfolder does not require insurance_id

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Create folder successful",
    "folder": {
        "name": "Parent Folder",
        "therapist_id": 18,
        "patient_id": 14925,
        "rank": -14,
        "updated_at": "2024-04-09 04:18:39",
        "created_at": "2024-04-09 04:18:39",
        "id": 18765,
        "rtm_id": 6189,
        "rtm_status": "archived"
    }
}

Failed:

{
    "status": "Failed",
    "code": 400,
    "message": "Invalid parameters",
    "errors": {
        "message": "Validation failed",
        "fields": {
            "patient_id": "The patient id field is required.",
            "name": "The name field is required."
        }
    }
}

get-practices

get lists of therapist practices

Method:

POST

URL:

http://api.mymovementrx.com/v1/therapists/get-practices

Parameters:

(reqruired) String - email

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Retrieve practices successfully",
    "user": [
        {
            "id": 00000,
            "first_name": "Peter",
            "last_name": "Capones",
            "email": "peter.prosoft@gmail.com",
            "license_no": "222222",
            "company": {
                "id": 00000,
                "name": "prosoft",
                "logo": null,
                "url": null,
                "npi_no": null
            }
        },
        {
            "id": 00000,
            "first_name": "peter",
            "last_name": "capones",
            "email": "peter.prosoft@gmail.com",
            "license_no": "89761665123",
            "company": {
                "id": 00000,
                "name": "Superior Physical Therapy",
                "logo": "http://localhost/superior_api/public/uploads/logos/1.png",
                "url": "https://thesuperiortherapy.com/",
                "npi_no": null
            }
        }
    ]
}

Failed:

Empty

switch-practice

Empty

Method:

POST

URL:

http://api.mymovementrx.com/v1/therapists/switch-practice

Parameters:

(reqruired) String - email
(required) Int- practice_id

Sample Call:

Empty

Response:

Success:

{
    "status": "Success",
    "code": 200,
    "message": "Successfully switch practice",
    "user": {
        "id": 00000,
        "first_name": "Peter",
        "last_name": "Capones",
        "email": "peter.prosoft@gmail.com",
        "username": "peter.prosoft@gmail.com",
        "photo": null,
        "mobile": null,
        "first_login": true,
        "api_key": "0000",
        "ziggeo_token": "00000",
        "role": {
            "key": "therapist",
            "name": "Therapist",
            "description": "Therapist",
            "status": "active",
            "created_at": "2017-05-02 22:30:29",
            "updated_at": "2017-05-02 07:30:29"
        },
        "practice": {
            "id": 00000,
            "parent_company_id": null,
            "name": "prosoft",
            "logo": null,
            "codeigniter_logo": null,
            "email": null,
            "url": null,
            "npi_no": "",
            "braintree_id": null,
            "paypal_email": null,
            "card_brand": null,
            "card_last_four": null,
            "trial_ends_at": "2038-01-18 00:00:00",
            "status": "active",
            "company_owner": 00000,
            "rtm_time_limit": 40,
            "created_at": "2023-06-28 12:06:00",
            "updated_at": "2023-06-27 21:06:00",
            "package_id": 00000,
            "api_key": null,
            "secret": null,
            "s3": {
                "bucket_name": "000000",
                "region": "00000",
                "key": "*********",
                "secret": "**********",
                "url": "**********/"
            },
            "subscription": {
                "packages": {
                    "id": 000000,
                    "braintree_plan": "free",
                    "name": "Free",
                    "description": "For individual PT’s and small practices who want to try out MyMovement Rx for unlimited time",
                    "sub_description": "Includes 200 MB file space",
                    "price": 0,
                    "file_size_limit": 209715200,
                    "video_limit": null,
                    "payment_type": "Monthly",
                    "user_limit": 999999,
                    "status": "active",
                    "created_at": "2019-01-28 10:03:54",
                    "updated_at": "-0001-11-30 00:00:00",
                    "type": 2,
                    "billing_cycle": "month"
                }
            },
            "default_package": {
                "id": 0000000,
                "braintree_plan": "free",
                "name": "Free",
                "description": "For individual PT’s and small practices who want to try out MyMovement Rx for unlimited time",
                "sub_description": "Includes 200 MB file space",
                "price": 0,
                "file_size_limit": 209715200,
                "video_limit": null,
                "payment_type": "Monthly",
                "user_limit": 999999,
                "status": "active",
                "created_at": "2019-01-28 10:03:54",
                "updated_at": "-0001-11-30 00:00:00",
                "type": 2,
                "billing_cycle": "month"
            }
        },
        "account": {
            "id": 0000000,
            "email": "peter.prosoft@gmail.com",
            "username": "peter.prosoft@gmail.com",
            "token": "3786da822aec6f0ae14a291ca25e6374",
            "onetime_token": "0000000",
            "opentok_session_id": null,
            "status": "inactive",
            "created_at": "2023-06-28 12:06:00",
            "updated_at": "2023-06-27 21:06:00"
        }
    }
}

Failed:

Empty

toggle-complete-video-view