Welcome to the MedWand Telemedicine API Version 2.x

MedWand Telemedicine API Logo

MedWand offers a set of pre-built API resources you can use to integrate the MedWand VirtualCare platform with your current system. By taking advantage of our pre-built API resources, you can hit the ground running at your own pace. If you find that our pre-built API resources do not fit your needs, we can work with you to create a custom set of endpoints.

Default API Reference

The "patientUrl" is unique in that it works much differently than the "doctorUrl" and "guestUrl". While the "doctorUrl" and "guestUrl" are typical URL’s that can be navigated to via an anchor tag, JavaScript, pasted into the browser address bar, or executed from a compiled application. The "patientUrl" can only be navigated to via a user clicked anchor tag, JavaScript, or executed from a compiled application. This must also be on the mobile device that is connected to the MedWand hardware device and has the MedWand VirtualCare Android Client application installed.

The "patientUrl", when navigated to via one of the methods described above, will be intercepted by the Android operating system, and will automatically open the MedWand VirtualCare Client application via an internal URI, to begin the exam. Due to limitations of the browsers on mobile devices, a browser doesn't launch an external app for a given Intent URI in the following cases.

  • When the target URI is redirected from a typed in URL.
  • When the target URI is initiated without user gesture.

Due to this reason, the "patientUrl" can only be used via one of the methods described above. If you attempt to use the "patientUrl" in any other way, you will be sent to a page in the browser stating, "This exam type must be run from the MedWand tablet".

If you still believe your Url is having problems, try using the "Test Exam Url" tool below.

Configuration

Callback URL

The callback URL for your api. This is the URI you want your exam results sent to after the exam is completed.


Callback Type

There are 4 options for receiving exam information.

  1. None:

    You will receive no notification upon exam completion. This option is good for systems where you only use the MedWand VirtualCare System and don't store the results.

  2. Full:

    You will receive a json object containing the full exam in Json format to the CallbackUrl you provide.

  3. Html:

    You will receive a json object containing the full exam in html format to the CallbackUrl you provide.


Callback Authentication Type

There are 4 options for authenticating our callback to your api.

  1. None:

    No authorization header or properties are needed.

  2. KeySecret:

    The Key and Secret provided are added to the header via the "key" & "secret" keyValue pairs.

  3. Bearer:

    The Token provided will be added to the header via the "Authorization" key with the value prefaced with "Bearer ".

  4. ApiToken:

    The Token provided will be added to the header via the "ApiToken" key.

  5. Custom:

    The Token provided will be added to the header via your custom key.


Callback Authorization Value

The callback URL authorization value to be used in conjunction with the Callback Authentication Type chosen.

Getting Started

Step 1: Request Your Sandbox API KeySet

To get started, you must request a Sandbox account for your company. This is done through your sales person.

Once you have your Sandbox account:

  1. Request your API Key/Secret pair to begin testing by clicking the button below to request your keys.
  2. We will then contact you to request any additional information needed from the "Configuration" section. Please do not provide this information in the api keys request form.
  3. Your account will be updated and your keyset will be made available to you.
Request Your Sandbox API Keys
Step 2: Convert API KeySet to API Token

You must convert your API KeySet to a base64 encoded API Token. You can do that here or via code. See the examples below.


return btoa(`${key}:${secret}`);

var apiTokenBytes = System.Text.Encoding.UTF8.GetBytes($"{key}:{secret}");
return System.Convert.ToBase64String(apiTokenBytes);

import org.apache.commons.codec.binary.Base64;

string apiString = key + ":" + secret;
byte[] apiTokenBytes = Base64.encodeBase64(apiString.getBytes());
return new String(apiTokenBytes);

import Foundation

String apiString = key + ":" + secret
return Data(apiString.utf8).base64EncodedString()
Step 3: API Testing Tools

MedWand recommends and uses, Insomnia for all API testing. Insomnia is more capable of handling large requests and responses which can be the case with some exam results. Although you may use any tool you wish, using Insomnia will allow us to better assist you if the need arises. You can download and install Insomnia from Here.

Step 4: First Test

Your first test will be to retrieve a heartbeat response from the api server. To do this follow these steps:

cUrl

curl --location 'https://api.medwand.cloud/heartbeat'

Postman

  1. Add a new request in Postman.
  2. Select "GET" as the method type.
  3. Enter "https://api.medwand.cloud/heartbeat" as the URL.
  4. In the "Authorization" tab, set the type to "No Auth".
  5. Click the "Send" button.

Response


{
    "actionResult": true,
    "actionResponse": "Success",
    "actionMessages": "Version: 2.0.6.43   Build: 2024.12.10.1527",
    "actionDateUtc": "2025-01-23T18:54:55.8176023Z",
    "environment": "Sandbox"
}

Flowchart

The flowchart below covers all 3 exam types (Patient, OnSite, and Remote) that you may use.

Once you have a good understanding of the flow, you are ready to begin using our Default API to integrate the MedWand Virtual Care System with your existing PMS/EHR platform.

Appointments

POST: Create your appointment.

cUrl Request You will need to insert your ApiToken in the header below or the request will fail as 'Unauthorized'.


curl --location 'https://api.medwand.cloud/default/v2/appointment/create' \
--header 'Content-Type: application/json' \
--header 'ApiToken: ' \
--data '{
"appointmentId": "[APPOINTMENTID]",
"doctorName": "Dr. Jane Clinician",
"patientName": "John Doe",
"examType": "OnSite",
"scheduledStartDateUtc": "[DATETIMEUTC]",
"scheduledDuration": 30
}'

Response


{
"appointmentId": "[APPOINTMENTID]",
"patientUrl": "https://api.medwand.cloud?platform=api.medwand.cloud&token=GFXwMZiRTka6jVlq_zNhOQ",
"doctorUrl": "",
"guestUrl": "",
"actionResult": true,
"actionResponse": "Success",
"actionMessages": "",
"actionDateUtc": "[DATETIMEUTC]",
"environment": "Sandbox"
}
POST: Update your appointment.

cUrl Request You will need to insert your ApiToken in the header below or the request will fail as 'Unauthorized'.


curl --location 'https://api.medwand.cloud/default/v2/appointment/update' \
--header 'Content-Type: application/json' \
--header 'ApiToken: ' \
--data '{
"appointmentId": "[APPOINTMENTID]",
"doctorName": "Dr. Jane Fox",
"patientName": "Robert Doe",
"examType": "Remote",
"scheduledStartDateUtc": "[DATETIMEUTC]",
"scheduledDuration": 30
}'

Response


{
"appointmentId": "[APPOINTMENTID]",
"patientUrl": "https://client.medwand.cloud?platform=api.medwand.cloud&token=GFXwMZiRTka6jVlq_zNhOQ",
"doctorUrl": "https://examroom.medwand.cloud?platform=api.medwand.cloud&token=hkzBXDrXW0KH04ByCdxK-w",
"guestUrl": "https://examroom.medwand.cloud/Guest?platform=api.medwand.cloud&token=bz09_6hmXUWIyRy2sHK4bg",
"actionResult": true,
"actionResponse": "Success",
"actionMessages": "",
"actionDateUtc": "[DATETIMEUTC]",
"environment": "Sandbox"
}
POST: Delete your appointment.

cUrl Request You will need to insert your ApiToken in the header below or the request will fail as 'Unauthorized'.


curl --location 'https://api.medwand.cloud/default/v2/appointment/delete' \
--header 'Content-Type: application/json' \
--header 'ApiToken: ' \
--data '{
"appointmentId": "[APPOINTMENTID]"
}'

Response


{
"actionResult": true,
"actionResponse": "Success",
"actionMessages": "",
"actionDateUtc": "[DATETIMEUTC]",
"environment": "Sandbox"
}

Exam Results

Notify: You will receive a simple json object to the CallbackUrl you provide.

The JSON object below is what is sent to the Callback URL that you provide.

  • examId : Is the appointmentId you provided when you requested an appointment.
  • endDate : The UTC Date/Time that the exam was completed.
{
examId = "[APPOINTMENTID]",
endDate = "[DATETIMEUTC]"
}

You will need to then retrieve the exam results via 1 of the following endpoints.

POST: Retrieve full exam results.

cUrl Request You will need to insert your ApiToken in the header below or the request will fail as 'Unauthorized'. If you set the includeHtml property to true, the response will include an Html version of the exam results in the htmlDocument property.


curl --location 'https://api.medwand.cloud/default/v2/exam/results' \
--header 'Content-Type: application/json' \
--header 'ApiToken: ' \
--data '{
"appointmentId": "[APPOINTMENTID]",
"includeHtml": false
}'

Response

See the Full response below.

POST: Retrieve html exam results.

cUrl Request You will need to insert your ApiToken in the header below or the request will fail as 'Unauthorized'.


curl --location 'https://api.medwand.cloud/default/v2/exam/html' \
--header 'Content-Type: application/json' \
--header 'ApiToken: ' \
--data '{
"appointmentId": "[APPOINTMENTID]"
}'

Response

See the Html response below.

Full: You will receive a json object containing the full exam results.
  • appointmentId : Is the appointmentId you provided when you requested an appointment.
  • doctorName : The name of the doctor name you provided when you requested an appointment.
  • patientName : The name of the patient name you provided when you requested an appointment.
  • examType : There are 3 exam types (Patient, OnSite, Remote) and they are case-sensitive.
  • doctorEnterDateUtc : The UTC Date/Time that the doctor entered the exam.
  • patientEnterDateUtc : The UTC Date/Time that the patient entered the exam.
  • startDateUtc : The UTC Date/Time that the exam was started.
  • endDateUtc : The UTC Date/Time that the exam was completed.
  • durationInMinutes : Duration of the exam in minutes.
  • practitionerNotes : Notes entered by the doctor.
  • patientNotes : Notes entered by the Nurse/Patient.
  • htmlDocument : An Html (no javascript) representation of the exam results. See HTML Document Example
  • readings : Array of
    • sortOrder : The order that the reading was taken.
    • deviceName : The formal name of the device used to take the reading.
    • deviceModel : The model name of the device used to take the reading.
    • deviceSerial : The serial number of the device used to take the reading.
    • deviceFirmware : The firmware version of the device used to take the reading.
    • sensor : The formal name of the sensor.
    • sensorId : The id of the device used to take the reading.
    • sensorMode : The mode the sensor was in during the reading.
    • sensorSettings : The settings applied to the sensor data.
    • sensorData : The result from the sensor reading.

{
    "appointmentId": "3e42582f-d2e5-45f6-a0cb-81a61e430f42",
    "doctorName": "Dr. Charlotte Myers",
    "patientName": "Elijah Reynolds",
    "examType": "Remote",
    "doctorEnterDateUtc": "2025-01-23T15:47:54.1365002",
    "patientEnterDateUtc": "2025-01-23T15:48:54.2080408",
    "startDateUtc": "2025-01-23T15:48:54.2080408",
    "endDateUtc": "2025-01-23T15:57:56.346181",
    "durationInMinutes": "9",
    "practitionerNotes": "These are Practitioner Notes line 1\nThese are Practitioner Notes line 2\nThese are Practitioner Notes line 3",
    "patientNotes": "These are Patient Notes line 1\nThese are Patient Notes line 2\nThese are Patient Notes line 3",
    "htmlDocument": "",
    "readings": 
    [
        {
            "sortOrder": 1,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Otoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Dermatoscope",
            "sensorSettings": "",
            "sensorData": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BS..."
        },
        {
            "sortOrder": 2,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Ecg",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAN/oAAAI5CAYAAACJX..."
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "BloodPressure",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "120/80"
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "LabNotes",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "this is lab note line 1\nthis is lab note line 2"
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "FastingBloodSugarInitial",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "100"
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "HeightScale",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "unit:Inches",
            "sensorData": "65.0"
        },
        {
            "sortOrder": 1,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "PulseRate",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "101"
        },
        {
            "sortOrder": 3,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Otoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Dermatoscope",
            "sensorSettings": "",
            "sensorData": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BS..."
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "CholesterolHdl",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "400"
        },
        {
            "sortOrder": 4,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Stethoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Lungs",
            "sensorSettings": "",
            "sensorData": "data:audio/mp3;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYwLjMuM..."
        },
        {
            "sortOrder": 1,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Thermometer",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Default",
            "sensorSettings": "unit:Fahrenheit",
            "sensorData": "97.2"
        },
        {
            "sortOrder": 6,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Otoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Otoscope",
            "sensorSettings": "",
            "sensorData": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BS..."
        },
        {
            "sortOrder": 1,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Ecg",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAN+4AAAI5CAYAAACnG..."
        },
        {
            "sortOrder": 3,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Stethoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Lungs",
            "sensorSettings": "",
            "sensorData": "data:audio/mp3;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYwLjMuM..."
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "Respiratory",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "25.0"
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "PainLevel",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "unit:Numerical",
            "sensorData": "2"
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "FastingBloodSugarOggt4Hr",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "300"
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "SpirometerFev1",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "22.0"
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "WaistSize",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "unit:Inches",
            "sensorData": "45.0"
        },
        {
            "sortOrder": 1,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Stethoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Heart",
            "sensorSettings": "",
            "sensorData": "data:audio/mp3;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYwLjMuM..."
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "Glucometer",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "150"
        },
        {
            "sortOrder": 2,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Stethoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Heart",
            "sensorSettings": "",
            "sensorData": "data:audio/mp3;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYwLjMuM..."
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "WeightScale",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "unit:Pounds",
            "sensorData": "200.0"
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "CholesterolTotal",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "600"
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "CholesterolLdl",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "500"
        },
        {
            "sortOrder": 5,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Stethoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Abdominal",
            "sensorSettings": "",
            "sensorData": "data:audio/mp3;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYwLjMuM..."
        },
        {
            "sortOrder": 2,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Otoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Dermatoscope",
            "sensorSettings": "",
            "sensorData": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BS..."
        },
        {
            "sortOrder": 4,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Otoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Otoscope",
            "sensorSettings": "",
            "sensorData": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BS..."
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "FastingBloodSugarOggt2Hr",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "200"
        },
        {
            "sortOrder": 6,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Stethoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Abdominal",
            "sensorSettings": "",
            "sensorData": "data:audio/mp3;base64,SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYwLjMuM..."
        },
        {
            "sortOrder": 1,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "SpO2",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "94"
        },
        {
            "sortOrder": 5,
            "deviceName": "MedWand Device",
            "deviceModel": "Generation2",
            "deviceSerial": "(01)00860004311607(11)210326(21)0000006A",
            "deviceFirmware": "2.1.0.2",
            "sensor": "Otoscope",
            "sensorId": "11)2103260000006A",
            "sensorMode": "Otoscope",
            "sensorSettings": "",
            "sensorData": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BS..."
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "SpirometerPef",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "11"
        },
        {
            "sortOrder": 1,
            "deviceName": "Manual Entry",
            "deviceModel": "--",
            "deviceSerial": "MedWand App",
            "deviceFirmware": "--",
            "sensor": "SpirometerFvc",
            "sensorId": "--",
            "sensorMode": "Default",
            "sensorSettings": "",
            "sensorData": "33.0"
        }
    ],
    "actionResult": true,
    "actionResponse": "Success",
    "actionMessages": "",
    "actionDateUtc": "2025-01-23T17:58:39.0298659Z",
    "environment": "Sandbox"
}
Html: You will receive a json object containing the full exam in Html format.
  • appointmentId : Is the appointmentId you provided when you requested an appointment.
  • htmlDocument : An Html (no javascript) representation of the exam results. See HTML Document Example

{
"appointmentId": "[APPOINTMENTID]",
"htmlDocument": "...",
"actionResult": true,
"actionResponse": "Success",
"actionMessages": "",
"actionDateUtc": "[DATETIMEUTC]",
"environment": "Sandbox"
}

Failure Recovery Information

Notification

An email will be sent to the MedWand team and the Technical contacts on your account.

We will retain your exam results for 30 days so that you may retrieve them after a failure occurs. You can remove the exam results via an api call at any time.

We are focused on providing an automated retry system that will not impact our current API responsiveness.

Request a list of available Exam Results


curl --location 'https://api.medwand.cloud/default/v2/exam/list' \
--header 'Content-Type: application/json' \
--header 'ApiToken: ' \

Request a specific Exam Result


curl --location 'https://api.medwand.cloud/default/v2/exam/results' \
--header 'Content-Type: application/json' \
--header 'ApiToken: ' \
--data '{
"appointmentId": "[APPOINTMENTID]",
"includeHtml": false
}'

Resend a specific Exam Result to your CallbackUrl


curl --location 'https://api.medwand.cloud/default/v2/exam/callback/resend' \
--header 'Content-Type: application/json' \
--header 'ApiToken: ' \
--data '{
"appointmentId": "[APPOINTMENTID]"
}'

Remove a specific Exam Result from our system


curl --location 'https://api.medwand.cloud/default/v2/exam/results/remove' \
--header 'Content-Type: application/json' \
--header 'ApiToken: ' \
--data '{
"appointmentId": "[APPOINTMENTID]"
}'

Technical Information

Json Casing

For those systems where Json case matters.

  • All requests you make to our api may be in any casing you wish as we accept all formats.
    • Camel case - e.g firstName
    • Pascal case - e.g FirstName
    • Upper case - e.g FIRSTNAME
    • Lower case - e.g firstname
  • All responses from us to your requests will be in Camel case.
    • Camel case - e.g firstName
  • All outbound callbacks from our callback system to your api will be in Pascal case.
    • Pascal case - e.g FirstName
  • All offline mode json files will be in Camel case.All offline mode json files will be in Camel case.
    • Camel case - e.g firstName

Exam Types

These values are case sensitive

  • Patient : This is a self exam completed by the patient only.
  • OnSite : This is a local exam completed by a practitioner (nurse, doctor, etc.).
  • Remote : This is an exam completed by practitioner (nurse, doctor, etc.) from a remote location.

Sensor Types

These are the available sensor types along with their possible unit types.

  • Thermometer : The settings field indicates the unit type.
    • unit:Fahrenheit
    • unit:Celsius
  • SpO2 :
  • PulseRate :
  • BloodPressure :
  • WeightScale : The settings field indicates the unit type.
    • unit:Pounds
    • unit:Kilograms
  • HeightScale : The settings field indicates the unit type.
    • unit:Inches
    • unit:Centimeters
  • Glucometer :
  • Respiratory :
  • SpirometerPef :
  • SpirometerFev1 :
  • SpirometerFvc :
  • PainLevel : The settings field indicates the unit type.
    • unit:Numeric
    • unit:PAINAD
  • WaistSize : The settings field indicates the unit type.
    • unit:Inches
    • unit:Centimeters
  • FastingBloodSugarInitial : Initial Blood Glucose Reading After Fasting
  • FastingBloodSugarOggt2Hr : Blood Glucose Reading After 2 Hours
  • FastingBloodSugarOggt4Hr : Blood Glucose Reading After 4 Hours
  • CholesterolHdl :
  • CholesterolLdl :
  • CholesterolTotal :
  • LabNotes : This is plain text from a note field.

Media Types

These are the available Media Types along with their possible modes.

  • Stethoscope : The sensorMode field indicates the mode the sensor was in during the reading.
    • Heart
    • Lungs
    • Abdominal
  • Otoscope : The sensorMode field indicates the mode the sensor was in during the reading.
    • Dermatoscope
    • Otoscope
  • Ecg
  • QTMedical

If you would like an example of how you might display the exam results, click this HTML Exam Results Sample link.

Frequently Asked Questions

MedWand Telemedicine Cloud

MedWand's Telemedicine Cloud consists of the servers and databases needed to exchange data between MedWand and your EHR system. It also supports the remote telemedicine exam.

It varies from customer to customer based on your developer resources. Many of our customers have completed an API implementation in as little as a few days or weeks.

Yes! We can support customer specific FHIR APIs, but many customers have found a simpler JSON API approach was more appropriate. Your MedWand sales team will set up a meeting with our engineers to scope your specific FHIR requirements.

Possibly! Your MedWand sales team will provide specific guidance and/or pricing discussions.

Yes! MedWand performed many implementations with customers using their own mobile application. our MedWand sales team will provide specific guidance and/or discussions with the MedWand Engineering team.

MedWand only store a few pieces of PHI data for an upcoming appointment:

  1. The doctor/patient names are optional but allows for a better user experience.
  2. Optionally, if AI integration is needed, the patient's age, sex, and weight allows for more accurate AI functionality.

After the exam data is in your EHR system, MedWand will remove the exam data and all PHI from our systems.

We can not allow our DoctorUrl/GuestUrl to be embedded in an iFrame. This would place us in violation of our SOC 2 compliance.

You can open either of these as in the current tab or in a new tab/window.

Appointments

We support 3 appointment types:

  • Remote : Enables a remote doctor/patient telemedicine exam.
  • OnSite : Enables an on-site visit which does not require a remote doctor.
  • Patient : Enables a self-exam by the patient as requested or prescribed by a doctor.

The doctor/patient names are optional but allows for a more custom and friendly user experience.

The patient's age, sex, and weight allows for more accurate AI functionality. This information is optional. AI integrations are custom and can be explained by your MedWand sales team.

MedWand will make an api call to your specified api endpoint based on the Configuration options selected.

Exam Data

You may retrieve or will receive your exam data after the exam has been completed based on the Configuration options selected.

We currently support base64/mp3 data. If additional stethoscope information is required for AI integration types, please contact your MedWand sales team.

We currently support base64/jpeg data. If additional otoscope information is required for AI integration types, please contact your MedWand sales team.

We currently support base64/jpeg data. If additional ECG information is required for AI integration types, please contact your MedWand sales team.

Test Exam Url

Having problems with the doctorUrl, patientUrl, and/or guestUrl? Paste the url you want to test in the field below to verify that eveything is working.

If you are still having issues, you can open a support ticket. Create a Support Ticket
© MedWand Solutions, Inc. All Rights Reserved