Visit API

Visit API

Intakes

POST /intakes V3

Create intake data object

Custom parameters

Apart from the parameters below, any amount of custom JSON field-value pairs may be sent. They will all be saved into the Intake object. Later they may be displayed to the provider (please contact VSee to configure the rendering format).

 

Parameters

Parameter

Type

Description

Parameter

Type

Description

provider_id

Integer

(optional) The ID of the provider who is being visited

reason_for_visit

String

(optional) Reason for visit

type

Integer

(optional) Visit type: 1 - walkin; 2 - schedule

member_id

String

(optional) Patient’s code ID on behalf of whom the intake will be created

room_code

String

Room’s code

attachments

Array

(optional) Multiple formats supported: [{id:"577af3e6-9e48-4a51-9315-2ba8c0a8210a"}, ...] or ["577af3e6-9e48-4a51-9315-2ba8c0a8210a", ...] or 577af3e6-9e48-4a51-9315-2ba8c0a8210a,577af3e6-9e48-4a51-9315-2ba8c0a8210a,...

location

String

(optional) CA/AL/...

phone

String

(optional) e.g 7123465789

Sample Request

curl -k -X POST -d "provider=541&reason_for_visit=Test&reset=true&type=1" https://api.vseepreview.com/vc/next/api_v3/intakes.json { "data": { "id": "56e8c536-566c-44b6-bbca-66f0ac1f0144" } }

Sample Request with Custom Params

curl -k -X POST -d "provider=541&reason_for_visit=Test&reset=true&type=1" https://api.vseepreview.com/vc/next/api_v3/intakes.json { "data": { "id": "56e8c536-566c-44b6-bbca-66f0ac1f0144", "custom_is_allergic": "Yes", "custom_symptoms": "Rash, Red Eyes", "custom_symptoms_duration": "2 weeks" } }

POST /intakes/:id V3

Update a selected intake data object

Parameters

Parameter

Type

Description

Parameter

Type

Description

provider_id

Integer

(optional) The ID of the provider who is being visited

reasonforvisit

String

(optional) Reason for visit

type

Integer

(optional) Visit type: 1 - walkin; 2 - schedule

member_id

String

(optional) Patient’s code ID on behalf of whom the intake will be created

room* room_code

String

Room’s code

attachments

Array

Multiple formats supported: [{id:"577af3e6-9e48-4a51-9315-2ba8c0a8210a"}, ...] or ["577af3e6-9e48-4a51-9315-2ba8c0a8210a", ...] or 577af3e6-9e48-4a51-9315-2ba8c0a8210a,577af3e6-9e48-4a51-9315-2ba8c0a8210a,...

location

String

CA/AL/...

phone

String

7123465789

consultation

Object

(optional) Required for payment related, the consultation objects can be found at GET /rooms/:code API

Response

curl -X POST -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" -H "X-AccountCode: vclinic" -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" -F "location=CA" -F "phone=7123456789" -F "reason_for_visit=Test intake functionalities 2" "https://api.vseepreview.com/vc/next/api_v3/intakes/57a0705e-1c4c-4f24-b51d-3c71ac1f0144" { "data": { "id": "56e8c536-566c-44b6-bbca-66f0ac1f0144" } }

GET /intakes/:id V3

Retrieve a selected intake data object

Parameters

None

Response

curl -X GET \ -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" \ -H "X-AccountCode: vclinic" \ "https://api.vseepreview.com/vc/next/api_v3/intakes/57a0705e-1c4c-4f24-b51d-3c71ac1f0144" { "data": { "modified": 1471465080, "created": 1471465080, "type": "1", "reason_for_visit": "the reason", "attachments": [ { "_id": "57b4c65d-7ef8-461f-8951-43b1ac1f0144", "name": "575004c7-b350-421d-8542-4dcdac1f0144.png", "path": "files/2016/08/17/57b4c65d-7ef8-461f-8951-43b1ac1f0144.png", "size": 12859, "ext": "png", "type": 0, "creator_id": "575", "remark": null, "using": 1, "modified": { "sec": 1471465053, "usec": 966000 }, "created": { "sec": 1471465053, "usec": 967000 } } ], "id": "57b4c678-de20-4c1a-a52b-43e9ac1f0144" } }

 

Walkin Visits

POST /visits/add_walkin V3

Create a walk-in visit

Parameters

Parameter

Type

Description

Parameter

Type

Description

provider_id

String

(optional) The ID of the provider who is being visited if patient is starting an appointment. Shouldn’t pass this for walkins.

intake_id

String

The ID of the intake.

visit_data_id

String

The ID of a scheduled appointment. This one is used in the case when the patient visits a scheduled appointment.

visit_id

String

(optional) The ID of a scheduled appointment. This one is used in the case when the patient visits a scheduled appointment.

user_code

String

(optional) Patient’s code ID on behalf of whom the intake will be created

room_code

String

Current room’s code in which the visit will be created

Response

curl -k -X POST \ -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" \ -H "X-AccountCode: vclinic" \ -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" \ -F "provider_id=826" \ -F "intake_id=57a0705e-1c4c-4f24-b51d-3c71ac1f0144" \ -F "room_code=ceproom1" \ "https://api.vseepreview.com/vc/next/api_v3/visits/add_walkin" { "data": { "id": "1525", "member_id": "508", "provider_id": "509", "account_code": null, "code": "56e8c580f55c44a2868b66f0ac1f0144", "start": "1458095488", "end": "1458096388", "actual_start": null, "actual_end": null, "specialty_id": null, "state": null, "type": "1", "status": "10", "completed_by": null, "created": 1458095488, "modified": 1458095488, "room_id": null, "_id": "1525", "payment": { "duration": 15, "amount": "00.00", "description": "FruitStreet Config Level One-time charge" }, "intake": { "provider": "509", "reason_for_visit": "Test intake functionalities 1", "type": "1", "modified": 1458095488, "created": 1458095414, "visit_id": "1525", "id": "56e8c536-566c-44b6-bbca-66f0ac1f0144" }, "provider": { "id": "509", "first_name": "Ligeng", "last_name": "Doctor", "vseeid": "wellikodev+user509", "title": "" }, "member": { "id": "508", "first_name": "Ligeng", "last_name": "01", "vseeid": "wellikodev+user508", "dob": "2014-09-10", "gender": 1, "phone": "6506506500" }, } }

Asynchronous Visits

POST /visits/add_econsult V3

Create an asynchronous e-consult visit. The econsult will be created without scheduling, the providers will see it on their dashboards and will need to accept it.

Parameters

Parameter

Type

Description

Parameter

Type

Description

intake_id

String

The ID of the intake

room_code

String

Room code (required)

Response

curl --location --request POST 'https://api.vseepreview.com/vc/next/api_v3/visits/add_econsult' \ --header 'X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb' \ --header 'X-AccountCode: vclinic' \ --header 'X-ApiKey: 44c4d9bec884a8ca356177bebd59551d' \ --header 'Content-Type: application/json' \ --data-raw '{ "intake_id": "6050d1a8-b120-45b4-a568-61a664457b11", "room_code": "vclinic_room_code" }' { "data": { "incharge": false, "isEditExpired": false, "id": "14814100", "member_id": 14396847, "provider_id": 0, "account_code": "vclinic", "code": "6050d2e590d847429d312c8664457b11", "start": 1615909605, "end": 1615910505, "actual_start": null, "actual_end": null, "specialty_id": null, "state": "--", "type": 3, "status": 20, "completed_by": null, "room_id": 10019500, "room_code": "vclinic_room_code", "member": { "id": "14396847", "code": "member_01", "type": "200", "subtype": "", "first_name": "Ligeng", "last_name": "Member 01", "full_name": "Ligeng Member 01", "active": true, "vseeid": "cmo+604ef759ccd04d859847431864457b13" }, "pending_actions": [], "invoice": { "user_id": 14396847, "status": 10, "currency": "USD", "livemode": false, "amount_due": 0, "visit_id": "14814100", "modified": 1615909605, "created": 1615909605, "id": "6050d2e5-f680-4695-b284-2c8664457b11" }, "creator": { "id": "14396847", "code": "member_01", "vseeid": "cmo+604ef759ccd04d859847431864457b13", "type": 200, "subtype": "", "first_name": "Ligeng", "last_name": "Member 01", "account_code": "vclinic" }, "invoice_id": "6050d2e5-f680-4695-b284-2c8664457b11", "intake_id": "6050d1a8-b120-45b4-a568-61a664457b11", "postvisit": { "member_id": "14396847", "class_id": null, "visit_id": "14814100", "modified": 1615909605, "created": 1615909605 }, "account": { "domain": null, "code": "vclinic", "name": "VClinic" }, "room": { "id": "10019500", "code": "vclinic_room_code", "name": "VClinic UAT Room" }, "intake": { "reason_for_visit": "This is to test the API", "question_1": "Answer 1", "question_2": "Answer 2", "location": "--", "modified": 1615909288, "created": 1615909288, "visit_id": "14814100", "invoice_id": "6050d2e5-f680-4695-b284-2c8664457b11", "id": "6050d1a8-b120-45b4-a568-61a664457b11" }, "subtype": 4, "expiry": 1615924905 } }

Appointment API

GET /availability V3

Get provider's available slots

Parameters

Parameter

Type

Location

Description

Parameter

Type

Location

Description

room_code

String

Query string

(optional) Room code. If not given, will try to fall back to Intake.room

start

Integer

Query string

Search for available slots from this start time

end

Integer

Query string

Search for available slots up to this end time

duration

Integer

Query string

Search for available slots during certain seconds

provider_id

String

Query string

(optional) Pick only this provider’s slots

intake_id

String

Query string

Intake ID. Should be passed when patient is choosing a slot for an appointment. It will use intake’s location, specialty, etc.

consultation_id

String

Query string

Consultation ID. This will help to determine slot duration

X-ApiKey

String

Header

(beta) Header value is required if the application want to retrieve availablity without user token

X-ApiSecret

String

Header

(beta) Header value is required if the application want to retrieve availablity without user token

Notes: If application want to retrieve providers availability slots for a room without user token, the following are required X-ApiKeyX-ApiSecretroom_codestartendconsultation_idlocation will be required if you want to filter by state as well.

Notes: The time range parameters 'start', 'end' and 'duration' obey the following rules:

 

input

 

 

actual

 

 

 

input

 

 

actual

 

 

 

start

end

duration

start

end

duration

1

not set

not set

not set

available

available+4d

4d

2

set

not set

not set

  1. start

  2. If 'nearest' is set, then we search for the nearest slots since the start time

  1. start+4d

  2. nearest+4d

4d

3

set

set

not set

start

end

(ignored)

4

set

not set

set

  1. start

  2. If 'nearest' is set, then we search for the nearest slots since the start time

  1. start+duration

  2. nearest+duration

duration

5

not set

set

not set

end-4d

end

4d

6

not set

set

set

end-duration

end

duration

7

not set

not set

set

available

available+duration

duration

8

set

set

set

start

end

(ignored)

(available: The start time of the 1st available slot)

Sample minimal request

curl --location --request GET 'https://api-vclinic.vsee.me/api_v3/availability?room_code=xxxx&start=1668129300&end=1670000000' \ --header 'X-ApiToken: vclinic_admin_token' \ --header 'X-AccountCode: vclinic' \ --header 'X-ApiKey: vclinic_api_key' \ --header 'X-ApiSecret: vclinic_api_secret' { "data": { "slots": [ { "slot_id": "10996909", "slot_start": 1669239900, "slot_end": 1669240800, "slot_booked": 0, "slot_available": 1, "group_id": "637e920e-bd34-4d3f-82c0-804b0adc0a9f" }, { "slot_id": "10996909", "slot_start": 1669240800, "slot_end": 1669241700, "slot_booked": 0, "slot_available": 1, "group_id": "637e920e-bd34-4d3f-82c0-804b0adc0a9f" }, ], "slot_data": { "10996909": { "id": "10996909", "provider_id": "12456470", "account_code": "carebyte", "start": "1669239900", "end": "1669243500", "group_id": "637e920e-bd34-4d3f-82c0-804b0adc0a9f", "status": "10", "created": "1669239310", "modified": "1669239310", "consultation": { "duration": 15, "slots": 1 } } } } }

Other sample requests

curl -k -X GET -H "X-ApiToken: 6366a7018a39536a1ef4b63626f8e734" https://api.vseepreview.com/vc/next/api_v3/availability { "data": { "slots": [ { "slot_id": "5277", "slot_start": 1470186000, "slot_end": 1470186900, "slot_booked": 0, "slot_available": 1, "group_id": "57106583f46874e70afc93b4" }, ] } ] } curl -X GET \ 'https://api.vseepreview.com/vc/next/api_v3/availability?consultation_id=593999b2-08e4-404c-82f8-772dc0a8016f&start=1497063600&end=1497065400&location=AL&room_code=234yn' \ -H 'x-accountcode: vclinic' \ -H 'x-apikey: vclinic_api_key' \ -H 'x-apisecret: vclinic_api_secret' \ { "data": { "slots": [ { "slot_id": "4", "slot_start": 1497063600, "slot_end": 1497065400, "slot_booked": 0, "slot_available": "1", "group_id": "59399694-9ec0-4108-927d-7776c0a8016f" } ] } }

The above data response format will change soon to

{ "data": [ { "start": 1470186000, "end": 1470186900, "providers": ["123", "345"] }, { "start": 1470186000, "end": 1470186900, "providers": ["123", "345"] } ] ] }

 

POST /visits V3

Create an appointment

Parameters

Parameter

Type

Description

Parameter

Type

Description

member_id

String

The ID of the visiting patient (optional - only use in paramedic workflow)

slot_start

Integer

The timestamp of the beginning of the appointment (in UNIX timestamp format)

slot_end

Integer

The timestamp of the ending of the appointment (in UNIX timestamp format)

room_code

String

Room code (required)

type

Integer

2 - scheduling

intake_id

String

The ID of the intake

provider_id

String

(optional) The ID of the provider who is being visited

Response

curl -X POST \ -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" \ -H "X-AccountCode: vclinic" \ -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" \ -F "member_id=575" \ -F "slot_start=1470669300" \ -F "slot_end=1470670200" \ -F "type=2" \ -F "intakeId=57a0705e-1c4c-4f24-b51d-3c71ac1f0144" \ "https://api.vseepreview.com/vc/next/api_v3/appointments" { "data": { "member_id": 17778181, "provider_id": 12456470, "account_code": "vclinic", "code": "615f2e2eabc46ad94e9b6457b11", "start": 1631628616, "end": 1631628916, "actual_start": 1631628211, "actual_end": null, "specialty_id": null, "state": null, "type": 2, "status": 30, "completed_by": null, "room_id": 1002387, "room_code": "vclinicroom", "modified": 1633630312, "created": 1633627694, "provider": { "id": "12456470", "email": "anton+providersa@vseelab.com", "subtype": "482", "vseeid": "anton+providersa@vseelab.com", "photo": null, "full_name": "Anton Provider", "title": "", "suffix": "" }, "member": { "id": "17778181", "code": "anton+vclinic2@vseelab.com", "email": "anton+vclinic2@vseelab.com", "vseeid": "cmo+615f28cd70804d8994d62bd564457b11", "photo": null, "full_name": "Anton Test", "phone": "5551231122" }, "subType": 3, "more_provider_ids": null, "guest_emails": null, "guest_mobiles": null, "reminder_type": null, "reminder_time": null, "host_ids": [ "12456470" ], "hosts": [ { "username": "anton+providersa@vseelab.com", "email": "anton+providersa@vseelab.com", "phone": "", "timezone": "America/Los_Angeles", "vseeid": "anton+providersa@vseelab.com", "full_name": "Anton Provider", "title": "", "suffix": "", "id": "12456470", "photo_attachment_id": "", "role": "owner" } ], "creator": { "id": "15729940", "code": "60aed4242c90409099385cef64457b11", "vseeid": "d55d2f77ff3653891a587fdfa83207b4@vsee.com", "type": 160, "subtype": "", "first_name": null, "last_name": null, "account_code": "vclinic" }, "pending_actions": [], "is_test": false, "meeting": { "recording_auto_start": false, "phone_numbers": { "US": [ "+1.650.758.0255" ] }, "hosts": [ "anton+providersa@vseelab.com", "chau+provider@vseelab.com" ], "expiry": 1633643316, "conference_pin": 838759, "meeting_id": "1633627695040_2cc263f4-3d07-49fa-97b1-b2955ff40dfa__jitsi" }, "one_time_link_token": "l0vht6wkxj", "notify_list": [], "payment": { "duration": null, "amount": "25.00", "description": "Cloud Clinic Default One-time Charge Message", "id": "615cec5b-14c8-4493-b9ce-365764457b11" }, "intake_id": "615f2de7-8ab8-48d3-80d8-53f564457b11", "related_walkin_id": "18407370", "call_logs": { "total_start": 1633628208, "total_end": 1633628268, "total_duration": 60, "waiting_time": 0, "provider_id_1": "anton+providersa@vseelab.com", "call_start_1": 1633628208, "call_duration_1": 60, "wait_time_1": 0, "patients": [ "cmo+615f28cd70804d8994d62bd564457b11" ], "source": "v2", "source_ids": [ "1633628104000_1633627695040_2cc263f4-3d07-49fa-97b1-b2955ff40dfa__jitsi", "1633628745000_1633627695040_2cc263f4-3d07-49fa-97b1-b2955ff40dfa__jitsi" ] }, "incharge": false, "intake": { "provider_id": "12456470", "member_id": "17778181", "room_code": "vclinicroom", "location": "MI", "phone": "5551234415", "type": "2", "room": "vclinicroom", "modified": 1633627623, "created": 1633627623, "visit_id": "18407167", "attachments": "", "reason_for_visit": "", "consent": "true", "consultation": { "description": "test", "duration": 60, "charge": false, "group": false, "slots": 1, "amount": 0, "visible_to_patient": true, "id": "615cec5b-14c8-4493-b9ce-365764457b11", "currency": "USD" }, "id": "615f2de7-8ab8-48d3-80d8-53f564457b11" }, "related_walkin": { "start": 1633628101, "end": 1633631701, "status": 30, "id": "18407370" }, "postvisit": { "member_id": "17778181", "class_id": null, "visit_id": "18407167", "modified": 1633627695, "created": 1633627695, "id": "615f2e2f-c240-4088-a28b-594b64457b11" }, "isEditExpired": false, "room": { "id": "10023087", "code": "vclinicroom", "name": "VClinic UAT", "domain": "vclinic.vseepreview.com", "account_code": "vclinic", "slug": "UAT" }, "account": { "code": "vclinic", "name": "VClinic", "domain": "vclinic.vseepreview.com", "vsee_api": { "meeting": { "enabled": true, "guest_invite_enabled": true, "adhoc_group_call": { "disabled": true } } } }, "root_visit": { "id": "18407167", "group_chat_id": null, "participants": null }, "id": "18407167", "subtype": 3 }, "s": "ms" }

POST /visits/close V3

Close/Cancel a visit or an appointment

Parameters

Parameter

Type

Description

Parameter

Type

Description

id

String

The ID of the visit/appointment

reason

String

 

  • "patient_end_call" - Patient click End Call button on VSee

  • "patient_exit_room" - Patient click Exit Waiting Room

  • "call_ended" - When call ended not by patient, could be due to network problem or provider ended the call

  • "patient_cancel_appointment" - Patient click cancel appointment button

  • "max_waiting_time_reached" - Patient side max waiting time reached

Response

curl -k -X POST -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" -H "X-AccountCode: vclinic" -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" -F "id=14" "https://api.vseepreview.com/vc/next/api_v3/visits/close" { "data": { "id": "1525" } }

POST /visits/delete V3

Force cancel a visit. You can use admin token to cancel any existing visits.

Parameters

Parameter

Type

Description

Parameter

Type

Description

id

String

The ID of the visit/appointment

Response

curl --location 'https://api.vseepreview.com/vc/stable/api_v3/visits/delete' \ --header 'X-ApiToken: 614c588d4b03c60d9c6e480d14978164' \ --header 'X-AccountCode: vclinic' \ --form 'id="5010007042332"'

GET /visits V3

Get the visits list of the patient. The frontend can check the data["start"] field. If the start field is greater than the current timestamp then the visit is a upcoming appointment, otherwise it’s a past session. Group appointments and one-to-one appointments are now differentiated by the field visit_group_id which only exists in group appointments data.

For one-to-one appointments, consultation information can be retrieved from intake.consultation; for group appointments, consultation information has to be got from visit_group.consultation.

The following sample response offers 2 example for one-to-one appointment and one for group appointment.

Fields that can be returned for fields with format: "html"<u>, <b>, <i>, <strong>, <ul>, <ol>, <li>, <p>, <br>

Parameters

Response

curl -k -X GET \ -H "X-ApiToken: 5a2eb231d652b49f4d7fc0fbb78328fb" \ -H "X-AccountCode: vclinic" \ "https://api.vseepreview.com/vc/next/api_v3/visits.json" { "data": [ { "id": "7727", "member_id": "575", "provider_id": "1096", "account_code": "vclinic", "code": "57a07c26947c4544aeef4e5cac1f0144", "start": "1470669300", "end": "1470670200", "actual_start": null, "actual_end": null, "specialty_id": null, "state": null, "type": "2", "subtype": "3", "status": "20", "completed_by": null, "created": 1470135334, "modified": 1470135334, "room_id": null, "_id": "7727", "payment": { "duration": null, "amount": "0.00", "description": "CMO Config Level One-time charge" }, "invoice_id": "57a071d0-c0dc-45a6-9bc3-40fdac1f0144", "provider": { "id": "1096", "code": "563b40f082584368bee10335ac1f0144", "first_name": "Anton", "last_name": "Provider III", "username": "anton+provider3@vsee.com", "vseeid": "conciergedev+user1096", "email": "anton+provider3@vsee.com", "photo": "https://api.vseepreview.com/vc/next/api_v3/files/index/app_user/photo/1096/?auth_code=8350f279578774a6e31787fc5a5a05d2948770e0", "active": true, "title": "", "suffix": "", "tos": true, "phone": "(334) 229-4100", "subtype": "482" }, "member": { "id": "575", "code": "553ea41edfd041bd94475276ac1f0144", "first_name": "Keven2", "last_name": "Teodoro2", "username": "anton+1@vsee.com", "vseeid": "conciergedev+user575", "dob": "1983-02-02", "email": "anton+1@vsee.com", "gender": 2, "active": true, "tos": true, "phone": "7123456111", "subtype": "" } }, "postvisit": { "visit_id": "9709", "modified": 1473370072, "created": 1473368099, "member_id": "1290", "modifiedBy": "Alexey Provider 2", "draft": false, "attachments": [], "physical_exam": "<p>dfvevofivuoiwue<\/p><p>iou<\/p><p>oi<\/p>", "assessment_plan": "<p>oiuoiwfuweoifu<\/p><p>efweiofweiofuweoif<\/p><p><br><\/p>", "reason_for_visit": "Allergic reaction", "reason_for_visit_other": "", "schema": "", "diagnosis": "Allergic reaction,initial encounter (T78.40XA),Asthma (J45.909)", "patient_instructions": "<p>Plan \/ Discharge...<br><\/p>", "disposition": "Referred to ED", "dea": "", "npi": "" } }

GET /visits with Extended Parameters

The GET /visits endpoint also accepts a number of optional query string parameters that let you filter, narrow the returned fields, and paginate the result. This is useful for reporting and bulk export workflows.