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://api.ezyvet.comezyVet Production Environment
https://api.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​


Authentication​


Fetch a JWT bearer token​

POST
/v1/oauth/access_token

Generates a valid access token, given client credentials. Access tokens have an 12-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​


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://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-separation"Read separation resources

Parameters​

Query Parameters

id

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

Type
number
uid

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

Type
string
active

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

Type
boolean
created_at

The epoch time when the Separation was created.

Type
number
modified_at

The epoch time when the Separation was last modified.

Type
number

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​


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​


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​


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",
  
  
  
"Weight": "1.0000",
  
  
  
"WeightUnit": "kg",
  
  
  
"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​


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

Type
string
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

Type
integer
Example"partner-clinic"

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


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

Type
string
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​


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://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-diagnosticresult"Read diagnostic result resources
  • "write-diagnosticresult"Create and update diagnostic result resources

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​


Powered by VitePress OpenAPI