Skip to content
v1.0.0

Standard Diagnostic Interface (SDI)

The SDI is a combination of a subset of ezyVet's API and the diagnostic provider's API that provides customers a consistent workflow experience.

Contact

Servers

https://apiv2.ezyvet.comezyVet Production Environment
https://apiv2.trial.ezyvet.comezyVet Trial Environment

Partner Authentication


Get an access token from the partner

POST
/accesstoken

This endpoint must be implemented by the Partner.

This endpoint will allow ezyVet to authenticate and use the Partner's web services

Request Body

application/json
JSON
{
"client_id": "partner-clinic",
"client_secret": "partner-secret",
"grant_type": "client_credentials"
}

Responses

Returns an access token.

application/json
JSON
{
"access_token": "CnKAVqSqp6UBq3Ei17e1UIj2U39UuOQI1i9Db3QT",
"token_type": "Bearer"
}

Samples

cURL
JavaScript
PHP
Python

Authentication


Fetch a JWT bearer token

POST
/oauth/token

Generates a valid access token, given client credentials. Access tokens have an 8-hour TTL.

Request Body

application/json
JSON
{
"partner_id": "string",
"client_id": "string",
"client_secret": "string",
"grant_type": "client_credentials",
"scope": "string",
"site_uid": "string"
}

Responses

A JSON object containing the access token details.

application/json
JSON
{
"access_token": "string",
"token_type": "string",
"expires_in": 0
}

Samples

cURL
JavaScript
PHP
Python

Separations


Fetch a Separation list

GET
/v2/separation

Fetches a list containing Separations.
Separations are a complex part of the ezyVet API and is important to understand.
Please read this document to ensure you have an adequate understanding.

Authorizations

bearerAuth
clientCredentials Flow
Token URL"https://apiv2.ezyvet.com/oauth/token"
Scopes:

Parameters

Query Parameters

id

The ID number used by the system to uniquely identify a Separation.

Typenumber
uid

The ID number used by the system to uniquely identify a Separation across all ezyVet sites.

Typestring
active

If true, the Separation is active and usable in ezyVet.

Typeboolean
created_at

The epoch time when the Separation was created.

Typenumber
modified_at

The epoch time when the Separation was last modified.

Typenumber

Responses

A list of separations

application/json
JSON
{
"meta": {
"timestamp": "string",
"items_page": "string",
"items_page_total": "string",
"items_page_size": "string",
"items_total": "string"
},
"items": [
{
"separation": {
"id": 0,
"uid": "string",
"created_at": 0,
"modified_at": 0,
"active": true,
"name": "string",
"type": "string",
"parent": 0,
"child": 0,
"separation_type": "string",
"contact_id": 0,
"contact_uid": "string"
}
}
],
"messages": [
{
}
]
}

Samples

cURL
JavaScript
PHP
Python

Breeds & Species


Get species and breeds

GET
/breedsandspecies

This endpoint must be implemented by the Partner.

This endpoint will allow ezyVet to get a list of animal species and breeds.

Responses

Returns a list of species & breeds

application/json
JSON
{
"species": [
{
"code": "CANINE",
"name": "Canine",
"breeds": [
{
"code": "LABRADOR_RETRIEVER",
"name": "Labrador Retriever"
}
]
}
]
}

Samples

cURL
JavaScript
PHP
Python

Directory of Service


Get diagnostic codes

GET
/diagnosticcodes

This endpoint must be implemented by the partner.

This endpoint will allow ezyVet to get a list of diagnostic codes.

Responses

Returns a list of diagnostic codes

application/json
JSON
{
"directoryofservice": {
"Test": [
{
"Name": "Complete Blood Count",
"Code": "CBC",
"Replicate": "0",
"validFrom": "2012-12-13",
"ExcVAT": "50",
"Currency": "USD",
"NonDiscountable": "true"
}
]
}
}

Samples

cURL
JavaScript
PHP
Python

Diagnostic Request


Send a diagnostic request

POST
/diagnosticrequest

This endpoint must be implemented by the partner.

ezyVet will push diagnostic requests as they are made/updated/disabled to the partner's diagnostic request endpoint.
The partner must acknowledge the POST request with a HTTP 200 OK once they have received the diagnostic request successfully AND have been able to parse the information correctly.

Request Body

application/json
JSON
{
"labreport": {
"Identification": {
"ReportType": "request",
"PracticeRef": "NZ0-DR158",
"PIMSName": "ezyVet",
"PIMSVersion": "21.80",
"OwnerName": "Sales, Cash",
"OwnerId": 2,
"VetName": "Team Star",
"VetID": 10
},
"AnimalDetails": {
"AnimalID": 1,
"AnimalName": "Mini",
"Breed": "Border Collie",
"Gender": "MN",
"Species": "Canine",
"Age": "6Y 5M 15D",
"DateOfBirth": "2011-03-07T00:00:00.000Z",
"AbbreviatedHistory": "Some History",
"AdditionalFields": {
"AnimalCode": "100001",
"BreedCode": "BORDCOL",
"SpeciesCode": "C",
"ConsultCode": "300003"
}
},
"LabRequests": {
"LabRequest": [
{
"TestCode": "AR1PE",
"RequestStatus": "request"
}
]
}
}
}

Responses

OK

application/json
JSON
{
"external_link": "https://www.clickdimensions.com/links/TestPDFfile.pdf",
"status": "OK"
}

Samples

cURL
JavaScript
PHP
Python

External Link


Get a partner portal link for a diagnostic result

GET
/externalhotlink

This endpoint must be implemented by the partner.

This endpoint will allow ezyVet to open the partner's portal in a new browser tab. The page should relate to the diagnostic result.

Query Parameters

practice_ref

The diagnostic request ID

Typestring
Example"US1324-DR158"
client_id

The client_id that is set up in the SDI record and used for authentication. Represents the location's connection to the Partner

Typeinteger
Example"partner-clinic"

Returns a link to a web page to the partner's portal that is related to the queried diagnostic result

cURL
JavaScript
PHP
Python

Requisition Form


Get a diagnostics requisition form as PDF

GET
/requisitionform

This endpoint must be implemented by the partner.

This endpoint will allow ezyVet to open and print a diagnostics requisition form as PDF that is then sent to the lab along with a specimen relating to the diagnostic request.

Parameters

Query Parameters

practice_ref

The diagnostic request ID

Typestring
Example"US1324-DR158"

Responses

Returns a link to a printable diagnostics requisition form as PDF that is sent to the lab with a specimen.

Samples

cURL
JavaScript
PHP
Python

Make a diagnostic result

POST
/standarddiagnostic/labReport

Creates a single diagnostic result that links to a diagnostic request.

You can also upload attachments together with the creation of a diagnostic result. This can be done by encoding the file using base64 and including it in the request.

The file types supported are JPG, PNG and PDF. The maximum file size is 5MB (before encoding).

Authorizations

bearerAuth
clientCredentials Flow
Token URL"https://apiv2.ezyvet.com/oauth/token"
Scopes:

Request Body

application/json
JSON
{
"labreport": {
"LabReport": {
"Identification": {
"ReportType": "request",
"PracticeID": "0",
"PracticeRef": "NZ0-DR158",
"LaboratoryID": "200314",
"LaboratoryRef": "Panny Farm",
"PIMSName": "ezyVet",
"PIMSVersion": "21.80",
"OwnerName": "Sales, Cash",
"OwnerId": 2,
"VetName": "Team Star",
"VetID": 10,
"BillingType": "Practice"
},
"AnimalDetails": {
"AnimalID": 1,
"AnimalName": "Mini",
"Breed": "Border Collie",
"Gender": "MN",
"Species": "Canine",
"DateOfBirth": "2011-03-07T00:00:00.000Z"
},
"LabResults": [
{
"LabResult": {
"LabResultHeader": {
"TestCode": "CBC",
"TestName": "New SDI Result",
"TestType": "Bloodtest",
"ResultDate": "2012-12-15T12:12:12.000Z",
"ResultNotes": ""
},
"LabResultItems": [
{
"LabResultItem": {
"AnalyteName": "Blood Level",
"Result": "50",
"Units": "p",
"LowRange": 1,
"HighRange": 100,
"PathologistName": "Sally",
"PathologistTitle": "Ms",
"Qualifier": "qualifier",
"Notes": "notes"
}
}
],
"attachment_list": [
{
"content_upload_method": "base64",
"content_type": "jpg",
"content_name": "four_pixels.jpg",
"content_binary": "/9j/4AAQSkZJRgABAQEAYABgAAD/4QBmRXhpZgAATU0AKgAAAAgABgESAAMAAAABAAEAAAMBAAUAAAABAAAAVgMDAAEAAAABAA AAEQAAEAAAABAQAAAFERAAQAAAABAAAOw1ESAAQAAAABAAAOwwAAAAAAAYagAACxj//bAEMAAgEBAgEBAgICAgICAgIDBQMDA wMgQEAwUHBgcHBwYHBwgJCwkICAoIBwcKDQoKCwwMDAwHCQ4PDQwOCwwMDP/bAEMBAgICAwMDBgMDBgwIBwgMDAwMDA wMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAAIAAgMBIgACEQEDEQH/ xAAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMo GRgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpO UlXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBA AAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SX xFZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4 ubw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AOT8XfBPwZJ4r1Rm8I+GGZruUknS4Mk7z/s0UUV+NR2P 0/96qf4n+bP//Z"
}
]
}
}
]
}
}
}

Responses

OK

application/json
JSON
{
"message": [
{
"level": "info",
"text": "Inserted AU0-DR5. Specifics: ..."
}
]
}

Samples

cURL
JavaScript
PHP
Python

Powered by VitePress OpenAPI