Specify a file name and type for a given file to be uploaded and get a fileId and uploadUrl for it.
Use HTTP POST to upload the file content to the uploadUrl. The uploadUrl has a 15-minute expiration time so use it before then.
Pass the fileId as a parameter to other mutations, but only after posting the file content to the uploadUrl.
Arguments
Return type
Filemutation uploadFile($fileUpload: FileUploadInput) {
uploadFile(fileUpload: $fileUpload) {
id
name
type
uploadUrl
}
}
{ "fileUpload": { "name": "Example String", "type": "BMP", "category": "ORDERS" } }
{ "data": { "id": "Example String", "name": "Example String", "type": "BMP", "uploadUrl": "Example String" } }
Suggest products based on those in the contacts prescription
Arguments
Contacts details
Contacts job options
List of tags
Return type
ContactsUnique ID for this job
Current job status
Current job reason, if applicable
Notes entered by Doctor and/or Visibly
Contacts details
List of tags used to correlate this workflow with other systems
Last date and time this job was updated
mutation suggestContacts(
$contacts: ContactsInput!
$options: ContactsOptionsInput
$tags: [TagInput]
) {
suggestContacts(
contacts: $contacts
options: $options
tags: $tags
) {
jobId
status
reason
notes
contacts {
__typename
# ...ContactsFragment
}
tags {
__typename
# ...TagFragment
}
updatedAt
}
}
{ "contacts": { "products": { "__typename": "ContactsProductsInput" }, "prescription": { "__typename": "ContactsPrescriptionInput" } }, "options": { "verification": { "__typename": "ContactsVerificationOptionsInput" }, "prescription": { "__typename": "ContactsPrescriptionOptionsInput" }, "fulfillment": { "__typename": "ContactsFulfillmentOptionsInput" } }, "tags": [ { "name": "Example String", "value": "Example String" } ] }
{ "data": { "jobId": "Example String", "status": "Example String", "reason": "Example String", "notes": "Example String", "contacts": { "__typename": "Contacts" }, "tags": [ { "__typename": "Tag" } ], "updatedAt": "Example String" } }
Start a contacts prescription verification job
Arguments
Contacts details
Contacts job options
List of tags
Return type
ContactsUnique ID for this job
Current job status
Current job reason, if applicable
Notes entered by Doctor and/or Visibly
Contacts details
List of tags used to correlate this workflow with other systems
Last date and time this job was updated
mutation verifyContactsPrescription(
$contacts: ContactsInput!
$options: ContactsOptionsInput
$tags: [TagInput]
) {
verifyContactsPrescription(
contacts: $contacts
options: $options
tags: $tags
) {
jobId
status
reason
notes
contacts {
__typename
# ...ContactsFragment
}
tags {
__typename
# ...TagFragment
}
updatedAt
}
}
{ "contacts": { "products": { "__typename": "ContactsProductsInput" }, "prescription": { "__typename": "ContactsPrescriptionInput" } }, "options": { "verification": { "__typename": "ContactsVerificationOptionsInput" }, "prescription": { "__typename": "ContactsPrescriptionOptionsInput" }, "fulfillment": { "__typename": "ContactsFulfillmentOptionsInput" } }, "tags": [ { "name": "Example String", "value": "Example String" } ] }
{ "data": { "jobId": "Example String", "status": "Example String", "reason": "Example String", "notes": "Example String", "contacts": { "__typename": "Contacts" }, "tags": [ { "__typename": "Tag" } ], "updatedAt": "Example String" } }
Start a glasses prescription verification job
Arguments
Glasses details
Job options
List of tags
Return type
GlassesUnique ID for this job
Current job status
Current job reason, if applicable
Notes entered by Doctor and/or Visibly
Prescription issue date, if available
Prescription expiration date, if available
List of tags used to correlate this workflow with other systems
Last date and time this job was updated
mutation verifyGlassesPrescription(
$glasses: GlassesInput!
$options: GlassesOptionsInput
$tags: [TagInput]
) {
verifyGlassesPrescription(
glasses: $glasses
options: $options
tags: $tags
) {
jobId
status
reason
notes
issueDate
expirationDate
tags {
__typename
# ...TagFragment
}
updatedAt
}
}
{ "glasses": { "lenses": { "__typename": "GlassesLensesInput" }, "frame": { "__typename": "GlassesFrameInput" }, "prescription": { "__typename": "GlassesPrescriptionInput" } }, "options": { "verification": { "__typename": "GlassesVerificationOptionsInput" }, "prescription": { "__typename": "GlassesPrescriptionOptionsInput" }, "fulfillment": { "__typename": "GlassesFulfillmentOptionsInput" } }, "tags": [ { "name": "Example String", "value": "Example String" } ] }
{ "data": { "jobId": "Example String", "status": "Example String", "reason": "Example String", "notes": "Example String", "issueDate": "Example String", "expirationDate": "Example String", "tags": [ { "__typename": "Tag" } ], "updatedAt": "Example String" } }
Submit order
Arguments
Order details
Return type
[Boolean]The Boolean
scalar type represents true
or false
.
mutation submitOrder($order: OrderInput) {
submitOrder(order: $order)
}
{ "order": { "orderId": "Example String", "orderedAt": "Example String", "total": 40, "customer": { "__typename": "CustomerInput" }, "shipping": { "__typename": "ShippingInput" }, "items": [ { "__typename": "ItemInput" } ] } }
{ "data": [ true ] }
Save order details
Arguments
Order details
Return type
BooleanThe Boolean
scalar type represents true
or false
.
mutation saveOrder($order: OrderInput) {
saveOrder(order: $order)
}
{ "order": { "orderId": "Example String", "orderedAt": "Example String", "total": 40, "customer": { "__typename": "CustomerInput" }, "shipping": { "__typename": "ShippingInput" }, "items": [ { "__typename": "ItemInput" } ] } }
{ "data": true }
Save patient detailst
Arguments
Patient details
Return type
BooleanThe Boolean
scalar type represents true
or false
.
mutation savePatient($patient: PatientInput!) {
savePatient(patient: $patient)
}
{ "patient": { "patientId": "Example String", "firstName": "Example String", "middleName": "Example String", "lastName": "Example String", "dateOfBirth": "Example String", "phoneNumber": "Example String", "email": "Example String", "address": "Example String", "address2": "Example String", "city": "Example String", "state": "Example String", "zipCode": "Example String" } }
{ "data": true }
Save contacts prescription details
Arguments
Contacts prescription details
Return type
BooleanThe Boolean
scalar type represents true
or false
.
mutation saveContactsPrescription($prescription: ContactsPrescriptionInput!) {
saveContactsPrescription(prescription: $prescription)
}
{ "prescription": { "fileId": "Example String", "prescriptionId": "Example String", "doctor": { "__typename": "DoctorInput" }, "patient": { "__typename": "PatientInput" }, "products": { "__typename": "ContactsProductsInput" } } }
{ "data": true }
Save glasses prescription details
Arguments
Glasses prescription details
Return type
BooleanThe Boolean
scalar type represents true
or false
.
mutation saveGlassesPrescription($prescription: GlassesPrescriptionInput!) {
saveGlassesPrescription(prescription: $prescription)
}
{ "prescription": { "fileId": "Example String", "prescriptionId": "Example String", "doctor": { "__typename": "DoctorInput" }, "patient": { "__typename": "PatientInput" }, "corrections": [ { "__typename": "GlassesLensesInput" } ] } }
{ "data": true }
Use startVisionTest.
Start a workflow utilizing one or more Visibly services
Arguments
The name of the workflow to run
Optional patient information
Optional doctor Id
Optional doctor information
Optional ordered products
Prescriptions pertinent to the ordered products
File IDs from uploadFile for flat files containing prescription information
List of tags used to correlate this workflow with other systems
Return type
WorkflowUnique ID for this workflow
If applicable, the launch URL for the first step in this workflow
Unique ID for a prescription verification request if applicable
Current request status
Unique ID for a prescription verification job (conditionally available)
Current prescription verification job status (conditionally available)
Last date and time this request was updated
mutation startWorkflow(
$name: String!
$patient: PatientInput
$doctorId: String
$doctor: DoctorInput
$products: [ContactProductInput]
$prescriptions: [ContactProductInput]
$fileIds: [String]
$tags: [TagInput]
) {
startWorkflow(
name: $name
patient: $patient
doctorId: $doctorId
doctor: $doctor
products: $products
prescriptions: $prescriptions
fileIds: $fileIds
tags: $tags
) {
workflowId
launchUrl
requestId
requestStatus
jobId
status
updatedAt
}
}
{ "name": "Example String", "patient": { "patientId": "Example String", "firstName": "Example String", "middleName": "Example String", "lastName": "Example String", "dateOfBirth": "Example String", "phoneNumber": "Example String", "email": "Example String", "address": "Example String", "address2": "Example String", "city": "Example String", "state": "Example String", "zipCode": "Example String" }, "doctorId": "Example String", "doctor": { "doctorId": "Example String", "doctorName": "Example String", "practiceName": "Example String", "phoneNumber": "Example String", "faxNumber": "Example String", "email": "Example String", "address": "Example String", "address2": "Example String", "city": "Example String", "state": "Example String", "zipCode": "Example String", "url": "Example String" }, "products": [ { "productId": "Example String", "eye": "RIGHT", "sphere": "Example String", "diameter": "Example String", "baseCurve": "Example String", "axis": "Example String", "cylinder": "Example String", "addition": "Example String", "dominance": "Example String", "color": "Example String", "packageSize": 40, "quantity": 40 } ], "prescriptions": [ { "productId": "Example String", "eye": "RIGHT", "sphere": "Example String", "diameter": "Example String", "baseCurve": "Example String", "axis": "Example String", "cylinder": "Example String", "addition": "Example String", "dominance": "Example String", "color": "Example String", "packageSize": 40, "quantity": 40 } ], "fileIds": [ "Example String" ], "tags": [ { "name": "Example String", "value": "Example String" } ] }
{ "data": { "workflowId": "Example String", "launchUrl": "Example String", "requestId": "Example String", "requestStatus": "NEW", "jobId": "Example String", "status": "Example String", "updatedAt": "Example String" } }
Use submitOrder
Fulfill order
Arguments
Date and time when the order was placed in ISO 8601 format
Customer information
Shipping details
Items in the order
List of tags
Return type
Ordermutation fulfillOrder(
$orderedAt: String!
$customer: CustomerInput!
$shipping: ShippingInput!
$items: [ItemInput]
$tags: [TagInput]
) {
fulfillOrder(
orderedAt: $orderedAt
customer: $customer
shipping: $shipping
items: $items
tags: $tags
) {
orderId
status
}
}
{ "orderedAt": "Example String", "customer": { "firstName": "Example String", "middleName": "Example String", "lastName": "Example String", "dateOfBirth": "Example String", "phoneNumber": "Example String", "email": "Example String", "address": "Example String", "address2": "Example String", "city": "Example String", "state": "Example String", "zipCode": "Example String" }, "shipping": { "method": "Example String", "address": { "__typename": "ShippingAddressInput" } }, "items": [ { "type": "GLASSES", "itemId": "Example String", "description": "Example String", "comment": "Example String", "glasses": { "__typename": "GlassesItemInput" }, "lensReplacement": { "__typename": "LensReplacementItemInput" }, "contacts": { "__typename": "ContactsItemInput" } } ], "tags": [ { "name": "Example String", "value": "Example String" } ] }
{ "data": { "orderId": "Example String", "status": "Example String" } }