Resources

Models

This page provides a comprehensive overview of all the models utilized within our APIs, accompanied by example JSON bodies for each. Here, you’ll find detailed descriptions and structures to help you understand how to effectively interact with our APIs, ensuring smooth integration and effective communication between your systems and ours.

Address

Represents a physical address, including information such as street lines, city, state, zip code, country, and an optional note for additional details.

Properties

NameTypeRequiredDescription
lineOnestringfalseAddress line one.
lineTwostringfalseAddress line two.
lineThreestringfalseAddress line three.
citystringfalseAddress city.
statestringfalseAddress state.
zipCodestringfalseAddress zip code.
countrystringfalseAddress country.
notestringfalseAddress note.
Address Model Sample
1{
2 "lineOne": "string",
3 "lineTwo": "string",
4 "lineThree": "string",
5 "city": "string",
6 "state": "string",
7 "zipCode": "string",
8 "country": "string",
9 "note": "string"
10}

AssociateDeviceRequest

Properties

NameTypeRequiredDescription
deviceIdinteger(int64)falseThe ID of the device to be associated. Either this value or a Device Identifier are required to identify the Device to be (dis)associated.
patientIdinteger(int64)falseThe ID of the patient to have the Device associated to. Either this value or a Patient External Identifier are required to identify who should be (dis)associated with the device.
deviceIdentifierstringfalseThe Identifier, such as a Serial Number, of the device to be (dis)associated. Either this value or a Device Id are required to identify the Device to be (dis)associated.
patientExternalIdentifierstringfalseThe External Identifier of the patient to have the Device (dis)associated to. Either this value or a Patient Id are required to identify who should be (dis)associated with the device.
AssociateDeviceRequest Model Sample
1{
2 "deviceId": 0,
3 "patientId": 0,
4 "deviceIdentifier": "string",
5 "patientExternalIdentifier": "string"
6}

BloodGlucoseReading

This page describes Impilo’s blood glucose reading model.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the reading.
patientPatientfalseThe patient who took the reading.
itemItemfalseThe item used to take the reading.
deviceDevicefalseThe device used to take the reading.
readingTimestampstringfalseThe timestamp at which the reading was taken.
glucoseinteger(int32)falseThe blood glucose measurement value.
manualbooleanfalseTrue if the reading value was entered manually, false otherwise.
beforeMealbooleanfalseTrue if the reading was taken before a meal, false otherwise.
afterMealbooleanfalseTrue if the reading was taken after a meal, false otherwise.
BloodGlucoseReading Model Sample
1{
2 "id": 0,
3 "patient": {
4 "id": 1,
5 "externalIdentifier": "1234abcd",
6 "firstName": "John",
7 "lastName": "Doe",
8 "dateOfBirth": "1980-01-01T00:00:00Z",
9 "email": "john.doe@example.com",
10 "phoneNumber": "+1234567890",
11 "archived": true,
12 "address": {
13 "lineOne": "string",
14 "lineTwo": "string",
15 "lineThree": "string",
16 "city": "string",
17 "state": "string",
18 "zipCode": "string",
19 "country": "string",
20 "note": "string"
21 },
22 "site": {
23 "id": 1,
24 "name": "string",
25 "active": true,
26 "address": {
27 "lineOne": "string",
28 "lineTwo": "string",
29 "lineThree": "string",
30 "city": "string",
31 "state": "string",
32 "zipCode": "string",
33 "country": "string",
34 "note": "string"
35 }
36 },
37 "enrolled": true,
38 "sex": "female"
39 },
40 "item": {
41 "id": 1,
42 "manufacturer": {
43 "id": 1,
44 "name": "string"
45 },
46 "name": "string",
47 "model": "string",
48 "sku": "string"
49 },
50 "device": {
51 "id": 1,
52 "item": {
53 "id": 1,
54 "manufacturer": {
55 "id": 1,
56 "name": "string"
57 },
58 "name": "string",
59 "model": "string",
60 "sku": "string"
61 },
62 "currentStatus": "string",
63 "used": true,
64 "currentPatient": {
65 "id": 1,
66 "externalIdentifier": "1234abcd",
67 "firstName": "John",
68 "lastName": "Doe",
69 "dateOfBirth": "1980-01-01T00:00:00Z",
70 "email": "john.doe@example.com",
71 "phoneNumber": "+1234567890",
72 "archived": true,
73 "address": {
74 "lineOne": "string",
75 "lineTwo": "string",
76 "lineThree": "string",
77 "city": "string",
78 "state": "string",
79 "zipCode": "string",
80 "country": "string",
81 "note": "string"
82 },
83 "site": {
84 "id": 1,
85 "name": "string",
86 "active": true,
87 "address": {
88 "lineOne": "string",
89 "lineTwo": "string",
90 "lineThree": "string",
91 "city": "string",
92 "state": "string",
93 "zipCode": "string",
94 "country": "string",
95 "note": "string"
96 }
97 },
98 "enrolled": true,
99 "sex": "female"
100 },
101 "site": {
102 "id": 1,
103 "name": "string",
104 "active": true,
105 "address": {
106 "lineOne": "string",
107 "lineTwo": "string",
108 "lineThree": "string",
109 "city": "string",
110 "state": "string",
111 "zipCode": "string",
112 "country": "string",
113 "note": "string"
114 }
115 },
116 "lastHealthCheck": "string",
117 "deviceIdentifiers": [
118 {
119 "type": "string",
120 "value": "string"
121 }
122 ],
123 "deviceEvents": [
124 {
125 "type": "string",
126 "eventTimestamp": "string"
127 }
128 ],
129 "externalIdentifier": "string"
130 },
131 "readingTimestamp": "string",
132 "glucose": 0,
133 "manual": true,
134 "beforeMeal": true,
135 "afterMeal": true
136}

BloodOxygenReading

This page describes Impilo’s blood oxygen reading model.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the reading.
patientPatientfalseThe patient who took the reading.
itemItemfalseThe item used to take the reading.
deviceDevicefalseThe device used to take the reading.
readingTimestampstringfalseThe timestamp at which the reading was taken.
bloodOxygeninteger(int32)falseThe blood oxygen (spo2) measurement value.
heartRateinteger(int32)falseThe heart rate measurement value.
manualbooleanfalseTrue if the reading value was entered manually, false otherwise.
BloodOxygenReading Model Sample
1{
2 "id": 0,
3 "patient": {
4 "id": 1,
5 "externalIdentifier": "1234abcd",
6 "firstName": "John",
7 "lastName": "Doe",
8 "dateOfBirth": "1980-01-01T00:00:00Z",
9 "email": "john.doe@example.com",
10 "phoneNumber": "+1234567890",
11 "archived": true,
12 "address": {
13 "lineOne": "string",
14 "lineTwo": "string",
15 "lineThree": "string",
16 "city": "string",
17 "state": "string",
18 "zipCode": "string",
19 "country": "string",
20 "note": "string"
21 },
22 "site": {
23 "id": 1,
24 "name": "string",
25 "active": true,
26 "address": {
27 "lineOne": "string",
28 "lineTwo": "string",
29 "lineThree": "string",
30 "city": "string",
31 "state": "string",
32 "zipCode": "string",
33 "country": "string",
34 "note": "string"
35 }
36 },
37 "enrolled": true,
38 "sex": "female"
39 },
40 "item": {
41 "id": 1,
42 "manufacturer": {
43 "id": 1,
44 "name": "string"
45 },
46 "name": "string",
47 "model": "string",
48 "sku": "string"
49 },
50 "device": {
51 "id": 1,
52 "item": {
53 "id": 1,
54 "manufacturer": {
55 "id": 1,
56 "name": "string"
57 },
58 "name": "string",
59 "model": "string",
60 "sku": "string"
61 },
62 "currentStatus": "string",
63 "used": true,
64 "currentPatient": {
65 "id": 1,
66 "externalIdentifier": "1234abcd",
67 "firstName": "John",
68 "lastName": "Doe",
69 "dateOfBirth": "1980-01-01T00:00:00Z",
70 "email": "john.doe@example.com",
71 "phoneNumber": "+1234567890",
72 "archived": true,
73 "address": {
74 "lineOne": "string",
75 "lineTwo": "string",
76 "lineThree": "string",
77 "city": "string",
78 "state": "string",
79 "zipCode": "string",
80 "country": "string",
81 "note": "string"
82 },
83 "site": {
84 "id": 1,
85 "name": "string",
86 "active": true,
87 "address": {
88 "lineOne": "string",
89 "lineTwo": "string",
90 "lineThree": "string",
91 "city": "string",
92 "state": "string",
93 "zipCode": "string",
94 "country": "string",
95 "note": "string"
96 }
97 },
98 "enrolled": true,
99 "sex": "female"
100 },
101 "site": {
102 "id": 1,
103 "name": "string",
104 "active": true,
105 "address": {
106 "lineOne": "string",
107 "lineTwo": "string",
108 "lineThree": "string",
109 "city": "string",
110 "state": "string",
111 "zipCode": "string",
112 "country": "string",
113 "note": "string"
114 }
115 },
116 "lastHealthCheck": "string",
117 "deviceIdentifiers": [
118 {
119 "type": "string",
120 "value": "string"
121 }
122 ],
123 "deviceEvents": [
124 {
125 "type": "string",
126 "eventTimestamp": "string"
127 }
128 ],
129 "externalIdentifier": "string"
130 },
131 "readingTimestamp": "string",
132 "bloodOxygen": 0,
133 "heartRate": 0,
134 "manual": true
135}

BloodPressureReading

This page describes Impilo’s blood pressure reading model.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the reading.
patientPatientfalseThe patient who took the reading.
itemItemfalseThe item used to take the reading.
deviceDevicefalseThe device used to take the reading.
readingTimestampstringfalseThe timestamp at which the reading was taken.
systolicinteger(int32)falseThe systolic measurement value.
diastolicinteger(int32)falseThe diastolic measurement value.
heartRateinteger(int32)falseThe heart rate measurement value.
manualbooleanfalseTrue if the reading value was entered manually, false otherwise.
BloodPressureReading Model Sample
1{
2 "id": 0,
3 "patient": {
4 "id": 1,
5 "externalIdentifier": "1234abcd",
6 "firstName": "John",
7 "lastName": "Doe",
8 "dateOfBirth": "1980-01-01T00:00:00Z",
9 "email": "john.doe@example.com",
10 "phoneNumber": "+1234567890",
11 "archived": true,
12 "address": {
13 "lineOne": "string",
14 "lineTwo": "string",
15 "lineThree": "string",
16 "city": "string",
17 "state": "string",
18 "zipCode": "string",
19 "country": "string",
20 "note": "string"
21 },
22 "site": {
23 "id": 1,
24 "name": "string",
25 "active": true,
26 "address": {
27 "lineOne": "string",
28 "lineTwo": "string",
29 "lineThree": "string",
30 "city": "string",
31 "state": "string",
32 "zipCode": "string",
33 "country": "string",
34 "note": "string"
35 }
36 },
37 "enrolled": true,
38 "sex": "female"
39 },
40 "item": {
41 "id": 1,
42 "manufacturer": {
43 "id": 1,
44 "name": "string"
45 },
46 "name": "string",
47 "model": "string",
48 "sku": "string"
49 },
50 "device": {
51 "id": 1,
52 "item": {
53 "id": 1,
54 "manufacturer": {
55 "id": 1,
56 "name": "string"
57 },
58 "name": "string",
59 "model": "string",
60 "sku": "string"
61 },
62 "currentStatus": "string",
63 "used": true,
64 "currentPatient": {
65 "id": 1,
66 "externalIdentifier": "1234abcd",
67 "firstName": "John",
68 "lastName": "Doe",
69 "dateOfBirth": "1980-01-01T00:00:00Z",
70 "email": "john.doe@example.com",
71 "phoneNumber": "+1234567890",
72 "archived": true,
73 "address": {
74 "lineOne": "string",
75 "lineTwo": "string",
76 "lineThree": "string",
77 "city": "string",
78 "state": "string",
79 "zipCode": "string",
80 "country": "string",
81 "note": "string"
82 },
83 "site": {
84 "id": 1,
85 "name": "string",
86 "active": true,
87 "address": {
88 "lineOne": "string",
89 "lineTwo": "string",
90 "lineThree": "string",
91 "city": "string",
92 "state": "string",
93 "zipCode": "string",
94 "country": "string",
95 "note": "string"
96 }
97 },
98 "enrolled": true,
99 "sex": "female"
100 },
101 "site": {
102 "id": 1,
103 "name": "string",
104 "active": true,
105 "address": {
106 "lineOne": "string",
107 "lineTwo": "string",
108 "lineThree": "string",
109 "city": "string",
110 "state": "string",
111 "zipCode": "string",
112 "country": "string",
113 "note": "string"
114 }
115 },
116 "lastHealthCheck": "string",
117 "deviceIdentifiers": [
118 {
119 "type": "string",
120 "value": "string"
121 }
122 ],
123 "deviceEvents": [
124 {
125 "type": "string",
126 "eventTimestamp": "string"
127 }
128 ],
129 "externalIdentifier": "string"
130 },
131 "readingTimestamp": "string",
132 "systolic": 0,
133 "diastolic": 0,
134 "heartRate": 0,
135 "manual": true
136}

Device

A device is an instance of an item. Impilo creates device records for items that are serialized, i.e., items where each individual unit is identified by a serial number, IMEI, or other identifier.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the device, managed by Impilo.
itemItemfalseThe manufacturer for this item.
currentStatusstringfalseThe current status of this device.
usedbooleanfalseTrue if this device is used, false otherwise.
currentPatientPatientfalseThe patient currently in possession of this device. Null if this device is not currently with a patient.
siteSitefalseThe site to which this device is assigned.
lastHealthCheckstringfalseTimestamp for the last time Impilo received a signal from this device.
deviceIdentifiers[DeviceIdentifier]falseAn array of the device identifiers for this device.
deviceEvents[DeviceEvent]falseAn array of the device events for this device.
externalIdentifierstringfalsenone
Device Model Sample
1{
2 "id": 1,
3 "item": {
4 "id": 1,
5 "manufacturer": {
6 "id": 1,
7 "name": "string"
8 },
9 "name": "string",
10 "model": "string",
11 "sku": "string"
12 },
13 "currentStatus": "string",
14 "used": true,
15 "currentPatient": {
16 "id": 1,
17 "externalIdentifier": "1234abcd",
18 "firstName": "John",
19 "lastName": "Doe",
20 "dateOfBirth": "1980-01-01T00:00:00Z",
21 "email": "john.doe@example.com",
22 "phoneNumber": "+1234567890",
23 "archived": true,
24 "address": {
25 "lineOne": "string",
26 "lineTwo": "string",
27 "lineThree": "string",
28 "city": "string",
29 "state": "string",
30 "zipCode": "string",
31 "country": "string",
32 "note": "string"
33 },
34 "site": {
35 "id": 1,
36 "name": "string",
37 "active": true,
38 "address": {
39 "lineOne": "string",
40 "lineTwo": "string",
41 "lineThree": "string",
42 "city": "string",
43 "state": "string",
44 "zipCode": "string",
45 "country": "string",
46 "note": "string"
47 }
48 },
49 "enrolled": true,
50 "sex": "female"
51 },
52 "site": {
53 "id": 1,
54 "name": "string",
55 "active": true,
56 "address": {
57 "lineOne": "string",
58 "lineTwo": "string",
59 "lineThree": "string",
60 "city": "string",
61 "state": "string",
62 "zipCode": "string",
63 "country": "string",
64 "note": "string"
65 }
66 },
67 "lastHealthCheck": "string",
68 "deviceIdentifiers": [
69 {
70 "type": "string",
71 "value": "string"
72 }
73 ],
74 "deviceEvents": [
75 {
76 "type": "string",
77 "eventTimestamp": "string"
78 }
79 ],
80 "externalIdentifier": "string"
81}

DeviceAssociationWebhookPayload

The webhook payload sent when a Device is either Associated or Disassociated with a patient.

Properties

NameTypeRequiredDescription
patientPatientfalseThe Patient that the device was either associated with or disassociated from.
deviceDevicefalseThe Device that was associated to or disassociated from the provided Patient.
actionstringfalseThe type of association that was performed — either ‘associate’ or ‘disassociate’.
eventTimestampstringfalseThe timestamp of the association event.
DeviceAssociationWebhookPayload Model Sample
1{
2 "patient": {
3 "id": 1,
4 "externalIdentifier": "1234abcd",
5 "firstName": "John",
6 "lastName": "Doe",
7 "dateOfBirth": "1980-01-01T00:00:00Z",
8 "email": "john.doe@example.com",
9 "phoneNumber": "+1234567890",
10 "archived": true,
11 "address": {
12 "lineOne": "string",
13 "lineTwo": "string",
14 "lineThree": "string",
15 "city": "string",
16 "state": "string",
17 "zipCode": "string",
18 "country": "string",
19 "note": "string"
20 },
21 "site": {
22 "id": 1,
23 "name": "string",
24 "active": true,
25 "address": {
26 "lineOne": "string",
27 "lineTwo": "string",
28 "lineThree": "string",
29 "city": "string",
30 "state": "string",
31 "zipCode": "string",
32 "country": "string",
33 "note": "string"
34 }
35 },
36 "enrolled": true,
37 "sex": "female"
38 },
39 "device": {
40 "id": 1,
41 "item": {
42 "id": 1,
43 "manufacturer": {
44 "id": 1,
45 "name": "string"
46 },
47 "name": "string",
48 "model": "string",
49 "sku": "string"
50 },
51 "currentStatus": "string",
52 "used": true,
53 "currentPatient": {
54 "id": 1,
55 "externalIdentifier": "1234abcd",
56 "firstName": "John",
57 "lastName": "Doe",
58 "dateOfBirth": "1980-01-01T00:00:00Z",
59 "email": "john.doe@example.com",
60 "phoneNumber": "+1234567890",
61 "archived": true,
62 "address": {
63 "lineOne": "string",
64 "lineTwo": "string",
65 "lineThree": "string",
66 "city": "string",
67 "state": "string",
68 "zipCode": "string",
69 "country": "string",
70 "note": "string"
71 },
72 "site": {
73 "id": 1,
74 "name": "string",
75 "active": true,
76 "address": {
77 "lineOne": "string",
78 "lineTwo": "string",
79 "lineThree": "string",
80 "city": "string",
81 "state": "string",
82 "zipCode": "string",
83 "country": "string",
84 "note": "string"
85 }
86 },
87 "enrolled": true,
88 "sex": "female"
89 },
90 "site": {
91 "id": 1,
92 "name": "string",
93 "active": true,
94 "address": {
95 "lineOne": "string",
96 "lineTwo": "string",
97 "lineThree": "string",
98 "city": "string",
99 "state": "string",
100 "zipCode": "string",
101 "country": "string",
102 "note": "string"
103 }
104 },
105 "lastHealthCheck": "string",
106 "deviceIdentifiers": [
107 {
108 "type": "string",
109 "value": "string"
110 }
111 ],
112 "deviceEvents": [
113 {
114 "type": "string",
115 "eventTimestamp": "string"
116 }
117 ],
118 "externalIdentifier": "string"
119 },
120 "action": "string",
121 "eventTimestamp": "string"
122}

DeviceEvent

A device event represents a significant activity or occurrence detected by the device. Impilo tracks these events to provide insights into device usage and operational status.

Properties

NameTypeRequiredDescription
typestringfalseThe event type for the Device Event.
eventTimestampstringfalseThe timestamp when the Device Event was created.
DeviceEvent Model Sample
1{
2 "type": "string",
3 "eventTimestamp": "string"
4}

DeviceIdentifier

A device is an instance of an item. Impilo creates device records for items that are serialized, i.e., items where each individual unit is identified by a serial number, IMEI, or other identifier.

Properties

NameTypeRequiredDescription
typestringfalseThe type of the Device Identifier.
valuestringfalseThe value of the Device Identifier, based on it’s type.
DeviceIdentifier Model Sample
1{
2 "type": "string",
3 "value": "string"
4}

DeviceUpdate

Update request for modifying a device.

Properties

NameTypeRequiredDescription
deviceStatusstringfalseOverride a device status
notestringfalseNote explaining the update

deviceStatus Enumerated Values

Override a device status

NameDesciption
usedDevice is currently in use.
refurbishingDevice is being refurbished.
decommissionedDevice has been decommissioned.
shippedDevice has been shipped.
availableRepackedDevice is available and repacked.
returnedManufacturerDevice has been returned to the manufacturer.
awaitingShipmentDevice is awaiting shipment.
deliveredDevice has been delivered.
availableDevice is available for use.
initiatedDevice initialization has been initiated.
withPatientDevice is currently with a patient.
availableAtSiteDevice is available at a site.
packedDevice is packed and ready for shipment or use.
DeviceUpdate Model Sample
1{
2 "deviceStatus": "used",
3 "note": "Device decommissioned due to patient relocation."
4}

Instant

Instant Model Sample
1"2022-03-10T16:15:50Z"

Item

An item is any of the supplies handled by Impilo. Examples include medical devices like a blood pressure monitor or weight scale, but the term ‘item’ also refers to non-medical supplies like AAA batteries and package inserts. A customer catalog is a subset of all items supported by Impilo. This is set during onboarding and may be modified by your account manager at any time. A customer may view the items in their catalog.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the item, managed by Impilo.
manufacturerManufacturerfalseThe manufacturer for this item.
namestringfalseThe name for this item.
modelstringfalseThe manufacturer-assigned model for this item.
skustringfalseThe Impilo-assigned SKU for this item.
Item Model Sample
1{
2 "id": 1,
3 "manufacturer": {
4 "id": 1,
5 "name": "string"
6 },
7 "name": "string",
8 "model": "string",
9 "sku": "string"
10}

Kit

A kit is a named collection of items that can be ordered as one unit.

Properties

NameTypeRequiredDescription
idinteger(int64)falsenone
namestringfalseThe name of the kit.
archivedbooleanfalseTrue if the kit is archived, false otherwise.
kitItems[KitItem]falseAn array of kit items.
Kit Model Sample
1{
2 "id": 0,
3 "name": "string",
4 "archived": true,
5 "kitItems": [
6 {
7 "item": {
8 "id": 1,
9 "manufacturer": {
10 "id": 1,
11 "name": "string"
12 },
13 "name": "string",
14 "model": "string",
15 "sku": "string"
16 },
17 "count": 0
18 }
19 ]
20}

KitItem

Properties

NameTypeRequiredDescription
itemItemfalseAn item is any of the supplies handled by Impilo. Examples include medical devices like a blood pressure monitor or weight scale, but the term ‘item’ also refers to non-medical supplies like AAA batteries and package inserts. A customer catalog is a subset of all items supported by Impilo. This is set during onboarding and may be modified by your account manager at any time. A customer may view the items in their catalog.
countinteger(int32)falsenone
KitItem Model Sample
1{
2 "item": {
3 "id": 1,
4 "manufacturer": {
5 "id": 1,
6 "name": "string"
7 },
8 "name": "string",
9 "model": "string",
10 "sku": "string"
11 },
12 "count": 0
13}

Manufacturer

A manufacturer is a supplier of an item. Every item has exactly one manufacturer.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the manufacturer, managed by Impilo.
namestringfalseThe name of the manufacturer.
Manufacturer Model Sample
1{
2 "id": 1,
3 "name": "string"
4}

Order

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the order
externalOrderIds[string]falseAn array of order ids specified by the client
patientPatientfalseThe patient receiving the order. Exactly one of patient or site must be not null.
siteSitefalseThe site receiving the order. Exactly one of patient or site must be not null.
currentStatusstringfalseThe current status of the order
orderItems[OrderItem]falseArray of items on the order. At least one of orderItems or orderKits must be not null.
orderKits[OrderKit]falseArray of order kits on the order. At least one of orderItems or orderKits must be not null.
orderEvents[OrderEvent]falseArray of order events. These are the status updates for the order.
trackingNumbers[TrackingNumber]falseArray of tracking numbers for the order.
devices[Device]falseThe order item devices
packedKits[PackedKit]falseThe kits packed in the order

currentStatus Enumerated Values

The current status of the order

NameDesciption
reconfirmAddressCustomer needs to reconfirm their address.
shippedOrder has been shipped to the recipient.
voidedOrder has been canceled and is no longer valid.
returnIssuedA return process has been initiated for the order.
deliveredOrder has been successfully delivered to the recipient.
orderPlacedOrder has been successfully placed and is in the system.
awaitingShipmentOrder is ready to be shipped but is waiting for the next shipment cycle.
pendingAdditionalInformationOrder is pending as additional information is required from the recipient.
unableToFulfillOrder cannot be fulfilled due to current limitations or issues.
onHoldOrder is on hold, possibly due to inventory or internal reviews.
pendingInventoryOrder is waiting for inventory to become available before it can be fulfilled.
unsuccessfulDeliveryDelivery of the order was attempted but unsuccessful.
Order Model Sample
1{
2 "id": 0,
3 "externalOrderIds": [
4 "string"
5 ],
6 "patient": {
7 "id": 1,
8 "externalIdentifier": "1234abcd",
9 "firstName": "John",
10 "lastName": "Doe",
11 "dateOfBirth": "1980-01-01T00:00:00Z",
12 "email": "john.doe@example.com",
13 "phoneNumber": "+1234567890",
14 "archived": true,
15 "address": {
16 "lineOne": "string",
17 "lineTwo": "string",
18 "lineThree": "string",
19 "city": "string",
20 "state": "string",
21 "zipCode": "string",
22 "country": "string",
23 "note": "string"
24 },
25 "site": {
26 "id": 1,
27 "name": "string",
28 "active": true,
29 "address": {
30 "lineOne": "string",
31 "lineTwo": "string",
32 "lineThree": "string",
33 "city": "string",
34 "state": "string",
35 "zipCode": "string",
36 "country": "string",
37 "note": "string"
38 }
39 },
40 "enrolled": true,
41 "sex": "female"
42 },
43 "site": {
44 "id": 1,
45 "name": "string",
46 "active": true,
47 "address": {
48 "lineOne": "string",
49 "lineTwo": "string",
50 "lineThree": "string",
51 "city": "string",
52 "state": "string",
53 "zipCode": "string",
54 "country": "string",
55 "note": "string"
56 }
57 },
58 "currentStatus": "reconfirmAddress",
59 "orderItems": [
60 {
61 "item": {
62 "id": 1,
63 "manufacturer": {
64 "id": 1,
65 "name": "string"
66 },
67 "name": "string",
68 "model": "string",
69 "sku": "string"
70 },
71 "count": 0
72 }
73 ],
74 "orderKits": [
75 {
76 "kit": {
77 "id": 0,
78 "name": "string",
79 "archived": true,
80 "kitItems": [
81 {
82 "item": {
83 "id": 1,
84 "manufacturer": {
85 "id": 1,
86 "name": "string"
87 },
88 "name": "string",
89 "model": "string",
90 "sku": "string"
91 },
92 "count": 0
93 }
94 ]
95 },
96 "count": 0
97 }
98 ],
99 "orderEvents": [
100 {
101 "name": "string",
102 "eventTimestamp": "string"
103 }
104 ],
105 "trackingNumbers": [
106 {
107 "carrier": "string",
108 "value": "string"
109 }
110 ],
111 "devices": [
112 {
113 "id": 1,
114 "item": {
115 "id": 1,
116 "manufacturer": {
117 "id": 1,
118 "name": "string"
119 },
120 "name": "string",
121 "model": "string",
122 "sku": "string"
123 },
124 "currentStatus": "string",
125 "used": true,
126 "currentPatient": {
127 "id": 1,
128 "externalIdentifier": "1234abcd",
129 "firstName": "John",
130 "lastName": "Doe",
131 "dateOfBirth": "1980-01-01T00:00:00Z",
132 "email": "john.doe@example.com",
133 "phoneNumber": "+1234567890",
134 "archived": true,
135 "address": {
136 "lineOne": "string",
137 "lineTwo": "string",
138 "lineThree": "string",
139 "city": "string",
140 "state": "string",
141 "zipCode": "string",
142 "country": "string",
143 "note": "string"
144 },
145 "site": {
146 "id": 1,
147 "name": "string",
148 "active": true,
149 "address": {
150 "lineOne": "string",
151 "lineTwo": "string",
152 "lineThree": "string",
153 "city": "string",
154 "state": "string",
155 "zipCode": "string",
156 "country": "string",
157 "note": "string"
158 }
159 },
160 "enrolled": true,
161 "sex": "female"
162 },
163 "site": {
164 "id": 1,
165 "name": "string",
166 "active": true,
167 "address": {
168 "lineOne": "string",
169 "lineTwo": "string",
170 "lineThree": "string",
171 "city": "string",
172 "state": "string",
173 "zipCode": "string",
174 "country": "string",
175 "note": "string"
176 }
177 },
178 "lastHealthCheck": "string",
179 "deviceIdentifiers": [
180 {
181 "type": "string",
182 "value": "string"
183 }
184 ],
185 "deviceEvents": [
186 {
187 "type": "string",
188 "eventTimestamp": "string"
189 }
190 ],
191 "externalIdentifier": "string"
192 }
193 ],
194 "packedKits": [
195 {
196 "kit": {
197 "id": 0,
198 "name": "string",
199 "archived": true,
200 "kitItems": [
201 {
202 "item": {
203 "id": 1,
204 "manufacturer": {
205 "id": 1,
206 "name": "string"
207 },
208 "name": "string",
209 "model": "string",
210 "sku": "string"
211 },
212 "count": 0
213 }
214 ]
215 },
216 "devices": [
217 {
218 "id": 1,
219 "item": {
220 "id": 1,
221 "manufacturer": {
222 "id": 1,
223 "name": "string"
224 },
225 "name": "string",
226 "model": "string",
227 "sku": "string"
228 },
229 "currentStatus": "string",
230 "used": true,
231 "currentPatient": {
232 "id": 1,
233 "externalIdentifier": "1234abcd",
234 "firstName": "John",
235 "lastName": "Doe",
236 "dateOfBirth": "1980-01-01T00:00:00Z",
237 "email": "john.doe@example.com",
238 "phoneNumber": "+1234567890",
239 "archived": true,
240 "address": {
241 "lineOne": "string",
242 "lineTwo": "string",
243 "lineThree": "string",
244 "city": "string",
245 "state": "string",
246 "zipCode": "string",
247 "country": "string",
248 "note": "string"
249 },
250 "site": {
251 "id": 1,
252 "name": "string",
253 "active": true,
254 "address": {
255 "lineOne": "string",
256 "lineTwo": "string",
257 "lineThree": "string",
258 "city": "string",
259 "state": "string",
260 "zipCode": "string",
261 "country": "string",
262 "note": "string"
263 }
264 },
265 "enrolled": true,
266 "sex": "female"
267 },
268 "site": {
269 "id": 1,
270 "name": "string",
271 "active": true,
272 "address": {
273 "lineOne": "string",
274 "lineTwo": "string",
275 "lineThree": "string",
276 "city": "string",
277 "state": "string",
278 "zipCode": "string",
279 "country": "string",
280 "note": "string"
281 }
282 },
283 "lastHealthCheck": "string",
284 "deviceIdentifiers": [
285 {
286 "type": "string",
287 "value": "string"
288 }
289 ],
290 "deviceEvents": [
291 {
292 "type": "string",
293 "eventTimestamp": "string"
294 }
295 ],
296 "externalIdentifier": "string"
297 }
298 ]
299 }
300 ]
301}

OrderEvent

Properties

NameTypeRequiredDescription
namestringfalsenone
eventTimestampstringfalsenone
OrderEvent Model Sample
1{
2 "name": "string",
3 "eventTimestamp": "string"
4}

OrderItem

Properties

NameTypeRequiredDescription
itemItemfalseAn item is any of the supplies handled by Impilo. Examples include medical devices like a blood pressure monitor or weight scale, but the term ‘item’ also refers to non-medical supplies like AAA batteries and package inserts. A customer catalog is a subset of all items supported by Impilo. This is set during onboarding and may be modified by your account manager at any time. A customer may view the items in their catalog.
countinteger(int32)falsenone
OrderItem Model Sample
1{
2 "item": {
3 "id": 1,
4 "manufacturer": {
5 "id": 1,
6 "name": "string"
7 },
8 "name": "string",
9 "model": "string",
10 "sku": "string"
11 },
12 "count": 0
13}

OrderKit

Properties

NameTypeRequiredDescription
kitKitfalseA kit is a named collection of items that can be ordered as one unit.
countinteger(int32)falsenone
OrderKit Model Sample
1{
2 "kit": {
3 "id": 0,
4 "name": "string",
5 "archived": true,
6 "kitItems": [
7 {
8 "item": {
9 "id": 1,
10 "manufacturer": {
11 "id": 1,
12 "name": "string"
13 },
14 "name": "string",
15 "model": "string",
16 "sku": "string"
17 },
18 "count": 0
19 }
20 ]
21 },
22 "count": 0
23}

PackedKit

Properties

NameTypeRequiredDescription
kitKitfalseA kit is a named collection of items that can be ordered as one unit.
devices[Device]false[A device is an instance of an item. Impilo creates device records for items that are serialized, i.e., items where each individual unit is identified by a serial number, IMEI, or other identifier.]
PackedKit Model Sample
1{
2 "kit": {
3 "id": 0,
4 "name": "string",
5 "archived": true,
6 "kitItems": [
7 {
8 "item": {
9 "id": 1,
10 "manufacturer": {
11 "id": 1,
12 "name": "string"
13 },
14 "name": "string",
15 "model": "string",
16 "sku": "string"
17 },
18 "count": 0
19 }
20 ]
21 },
22 "devices": [
23 {
24 "id": 1,
25 "item": {
26 "id": 1,
27 "manufacturer": {
28 "id": 1,
29 "name": "string"
30 },
31 "name": "string",
32 "model": "string",
33 "sku": "string"
34 },
35 "currentStatus": "string",
36 "used": true,
37 "currentPatient": {
38 "id": 1,
39 "externalIdentifier": "1234abcd",
40 "firstName": "John",
41 "lastName": "Doe",
42 "dateOfBirth": "1980-01-01T00:00:00Z",
43 "email": "john.doe@example.com",
44 "phoneNumber": "+1234567890",
45 "archived": true,
46 "address": {
47 "lineOne": "string",
48 "lineTwo": "string",
49 "lineThree": "string",
50 "city": "string",
51 "state": "string",
52 "zipCode": "string",
53 "country": "string",
54 "note": "string"
55 },
56 "site": {
57 "id": 1,
58 "name": "string",
59 "active": true,
60 "address": {
61 "lineOne": "string",
62 "lineTwo": "string",
63 "lineThree": "string",
64 "city": "string",
65 "state": "string",
66 "zipCode": "string",
67 "country": "string",
68 "note": "string"
69 }
70 },
71 "enrolled": true,
72 "sex": "female"
73 },
74 "site": {
75 "id": 1,
76 "name": "string",
77 "active": true,
78 "address": {
79 "lineOne": "string",
80 "lineTwo": "string",
81 "lineThree": "string",
82 "city": "string",
83 "state": "string",
84 "zipCode": "string",
85 "country": "string",
86 "note": "string"
87 }
88 },
89 "lastHealthCheck": "string",
90 "deviceIdentifiers": [
91 {
92 "type": "string",
93 "value": "string"
94 }
95 ],
96 "deviceEvents": [
97 {
98 "type": "string",
99 "eventTimestamp": "string"
100 }
101 ],
102 "externalIdentifier": "string"
103 }
104 ]
105}

Page

Pagination is supported whenever an API response returns a list of objects. In paginated responses, objects are nested in a content attribute and have first and last attributes indicating whether you are on the first or last page, respectively. Additionally, the pagination response includes a page attribute indicating the current page number, a size attribute indicating the current page size, and a total attribute indicating the number of objects matching the request.

Properties

NameTypeRequiredDescription
content[any]falseThe content of the page, consisting of a list of objects.
pageinteger(int32)falseThe current page number. The first page has value 1.
sizeinteger(int32)falseThe current page size. Default 15, maximum 250.
totalinteger(int32)falseThe number of objects matching the request.
firstbooleanfalseTrue if this is the first page, false otherwise.
lastbooleanfalseTrue if this is the last page, false otherwise.
Page Model Sample
1{
2 "content": [
3 null
4 ],
5 "page": 0,
6 "size": 0,
7 "total": 0,
8 "first": true,
9 "last": true
10}

Patient

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the patient, managed by Impilo.
externalIdentifierstringfalseUnique external identifier for the patient, managed by the customer.
firstNamestringfalseThe patient’s first name.
lastNamestringfalseThe patient’s last name.
dateOfBirthstring(date)falseThe patient’s date of birth in the format YYYY-MM-DD.
emailstring(email)falseThe patient’s email.
phoneNumberstringfalseThe patient’s phone number.
archivedbooleanfalseTrue if the patient is archived, false otherwise.
addressAddressfalseThe patient’s shipping address.
siteSitefalseThe site responsible for this patient.
enrolledbooleanfalseThe enrollment status. False if disenrolled.
sexSexfalseSex
Patient Model Sample
1{
2 "id": 1,
3 "externalIdentifier": "1234abcd",
4 "firstName": "John",
5 "lastName": "Doe",
6 "dateOfBirth": "1980-01-01T00:00:00Z",
7 "email": "john.doe@example.com",
8 "phoneNumber": "+1234567890",
9 "archived": true,
10 "address": {
11 "lineOne": "string",
12 "lineTwo": "string",
13 "lineThree": "string",
14 "city": "string",
15 "state": "string",
16 "zipCode": "string",
17 "country": "string",
18 "note": "string"
19 },
20 "site": {
21 "id": 1,
22 "name": "string",
23 "active": true,
24 "address": {
25 "lineOne": "string",
26 "lineTwo": "string",
27 "lineThree": "string",
28 "city": "string",
29 "state": "string",
30 "zipCode": "string",
31 "country": "string",
32 "note": "string"
33 }
34 },
35 "enrolled": true,
36 "sex": "female"
37}

Record

Record implementation of DeviceUpdate

Properties

NameTypeRequiredDescription
deviceStatusstringfalseOverride a device status
notestringfalseNote explaining the update

deviceStatus Enumerated Values

Override a device status

NameDesciption
usedDevice is currently in use.
refurbishingDevice is being refurbished.
decommissionedDevice has been decommissioned.
shippedDevice has been shipped.
availableRepackedDevice is available and repacked.
returnedManufacturerDevice has been returned to the manufacturer.
awaitingShipmentDevice is awaiting shipment.
deliveredDevice has been delivered.
availableDevice is available for use.
initiatedDevice initialization has been initiated.
withPatientDevice is currently with a patient.
availableAtSiteDevice is available at a site.
packedDevice is packed and ready for shipment or use.
Record Model Sample
1{
2 "deviceStatus": "used",
3 "note": "Device decommissioned due to patient relocation."
4}

Return

A return is an occurrence of a device(s) or non-tracked item(s) being returned by a Patient.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the return, managed by Impilo.
patientPatientfalseThe patient that is making the return.
currentStatusstringfalseThe current status of this return.
returnItems[ReturnItem]falseAn array of non-tracked items expected on this return.
returnEvents[ReturnEvent]falseAn array of the return events for this return.
trackingNumbers[TrackingNumber]falseAn array of tracking numbers associated with this return.
returnDevices[Device]falseAn array of devices expected on this return.
relatedOrderIdinteger(int64)falseThe identifier of a related order, if exists.
Return Model Sample
1{
2 "id": 1,
3 "patient": {
4 "id": 1,
5 "externalIdentifier": "1234abcd",
6 "firstName": "John",
7 "lastName": "Doe",
8 "dateOfBirth": "1980-01-01T00:00:00Z",
9 "email": "john.doe@example.com",
10 "phoneNumber": "+1234567890",
11 "archived": true,
12 "address": {
13 "lineOne": "string",
14 "lineTwo": "string",
15 "lineThree": "string",
16 "city": "string",
17 "state": "string",
18 "zipCode": "string",
19 "country": "string",
20 "note": "string"
21 },
22 "site": {
23 "id": 1,
24 "name": "string",
25 "active": true,
26 "address": {
27 "lineOne": "string",
28 "lineTwo": "string",
29 "lineThree": "string",
30 "city": "string",
31 "state": "string",
32 "zipCode": "string",
33 "country": "string",
34 "note": "string"
35 }
36 },
37 "enrolled": true,
38 "sex": "female"
39 },
40 "currentStatus": "string",
41 "returnItems": [
42 {
43 "item": {
44 "id": 1,
45 "manufacturer": {
46 "id": 1,
47 "name": "string"
48 },
49 "name": "string",
50 "model": "string",
51 "sku": "string"
52 },
53 "count": 0
54 }
55 ],
56 "returnEvents": [
57 {
58 "type": "string",
59 "eventTimestamp": "string"
60 }
61 ],
62 "trackingNumbers": [
63 {
64 "carrier": "string",
65 "value": "string"
66 }
67 ],
68 "returnDevices": [
69 {
70 "id": 1,
71 "item": {
72 "id": 1,
73 "manufacturer": {
74 "id": 1,
75 "name": "string"
76 },
77 "name": "string",
78 "model": "string",
79 "sku": "string"
80 },
81 "currentStatus": "string",
82 "used": true,
83 "currentPatient": {
84 "id": 1,
85 "externalIdentifier": "1234abcd",
86 "firstName": "John",
87 "lastName": "Doe",
88 "dateOfBirth": "1980-01-01T00:00:00Z",
89 "email": "john.doe@example.com",
90 "phoneNumber": "+1234567890",
91 "archived": true,
92 "address": {
93 "lineOne": "string",
94 "lineTwo": "string",
95 "lineThree": "string",
96 "city": "string",
97 "state": "string",
98 "zipCode": "string",
99 "country": "string",
100 "note": "string"
101 },
102 "site": {
103 "id": 1,
104 "name": "string",
105 "active": true,
106 "address": {
107 "lineOne": "string",
108 "lineTwo": "string",
109 "lineThree": "string",
110 "city": "string",
111 "state": "string",
112 "zipCode": "string",
113 "country": "string",
114 "note": "string"
115 }
116 },
117 "enrolled": true,
118 "sex": "female"
119 },
120 "site": {
121 "id": 1,
122 "name": "string",
123 "active": true,
124 "address": {
125 "lineOne": "string",
126 "lineTwo": "string",
127 "lineThree": "string",
128 "city": "string",
129 "state": "string",
130 "zipCode": "string",
131 "country": "string",
132 "note": "string"
133 }
134 },
135 "lastHealthCheck": "string",
136 "deviceIdentifiers": [
137 {
138 "type": "string",
139 "value": "string"
140 }
141 ],
142 "deviceEvents": [
143 {
144 "type": "string",
145 "eventTimestamp": "string"
146 }
147 ],
148 "externalIdentifier": "string"
149 }
150 ],
151 "relatedOrderId": 0
152}

ReturnEvent

Properties

NameTypeRequiredDescription
typestringfalseThe event type for the Return Event.
eventTimestampstringfalseThe timestamp when the Return Event was created.
ReturnEvent Model Sample
1{
2 "type": "string",
3 "eventTimestamp": "string"
4}

ReturnItem

Properties

NameTypeRequiredDescription
itemItemfalseThe item type extected on this return.
countinteger(int32)falseThe quantity of this item type expected on this return.
ReturnItem Model Sample
1{
2 "item": {
3 "id": 1,
4 "manufacturer": {
5 "id": 1,
6 "name": "string"
7 },
8 "name": "string",
9 "model": "string",
10 "sku": "string"
11 },
12 "count": 0
13}

Sex

Enumerated Values

NameDesciption
unknownUndefined
femaleUndefined
maleUndefined
otherUndefined
Sex Model Sample
1"unknown"

Site

A site is a customer-managed location that interacts with Impilo’s services. Patient may be associated with a site, and a customer may order items and hold inventory at a site.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the site, managed by Impilo.
namestringfalseThe name of the site.
activebooleanfalseTrue if the site is active, false otherwise.
addressAddressfalseThe shipping address for the site.
Site Model Sample
1{
2 "id": 1,
3 "name": "string",
4 "active": true,
5 "address": {
6 "lineOne": "string",
7 "lineTwo": "string",
8 "lineThree": "string",
9 "city": "string",
10 "state": "string",
11 "zipCode": "string",
12 "country": "string",
13 "note": "string"
14 }
15}

TemperatureReading

This page describes Impilo’s temperature reading model.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the reading.
patientPatientfalseThe patient who took the reading.
itemItemfalseThe item used to take the reading.
deviceDevicefalseThe device used to take the reading.
temperatureUnitstringfalseThe unit in which the temperature was measured.
temperaturenumber(double)falseThe temperature measurement value.
readingTimestampstringfalseThe timestamp at which the reading was taken.
TemperatureReading Model Sample
1{
2 "id": 0,
3 "patient": {
4 "id": 1,
5 "externalIdentifier": "1234abcd",
6 "firstName": "John",
7 "lastName": "Doe",
8 "dateOfBirth": "1980-01-01T00:00:00Z",
9 "email": "john.doe@example.com",
10 "phoneNumber": "+1234567890",
11 "archived": true,
12 "address": {
13 "lineOne": "string",
14 "lineTwo": "string",
15 "lineThree": "string",
16 "city": "string",
17 "state": "string",
18 "zipCode": "string",
19 "country": "string",
20 "note": "string"
21 },
22 "site": {
23 "id": 1,
24 "name": "string",
25 "active": true,
26 "address": {
27 "lineOne": "string",
28 "lineTwo": "string",
29 "lineThree": "string",
30 "city": "string",
31 "state": "string",
32 "zipCode": "string",
33 "country": "string",
34 "note": "string"
35 }
36 },
37 "enrolled": true,
38 "sex": "female"
39 },
40 "item": {
41 "id": 1,
42 "manufacturer": {
43 "id": 1,
44 "name": "string"
45 },
46 "name": "string",
47 "model": "string",
48 "sku": "string"
49 },
50 "device": {
51 "id": 1,
52 "item": {
53 "id": 1,
54 "manufacturer": {
55 "id": 1,
56 "name": "string"
57 },
58 "name": "string",
59 "model": "string",
60 "sku": "string"
61 },
62 "currentStatus": "string",
63 "used": true,
64 "currentPatient": {
65 "id": 1,
66 "externalIdentifier": "1234abcd",
67 "firstName": "John",
68 "lastName": "Doe",
69 "dateOfBirth": "1980-01-01T00:00:00Z",
70 "email": "john.doe@example.com",
71 "phoneNumber": "+1234567890",
72 "archived": true,
73 "address": {
74 "lineOne": "string",
75 "lineTwo": "string",
76 "lineThree": "string",
77 "city": "string",
78 "state": "string",
79 "zipCode": "string",
80 "country": "string",
81 "note": "string"
82 },
83 "site": {
84 "id": 1,
85 "name": "string",
86 "active": true,
87 "address": {
88 "lineOne": "string",
89 "lineTwo": "string",
90 "lineThree": "string",
91 "city": "string",
92 "state": "string",
93 "zipCode": "string",
94 "country": "string",
95 "note": "string"
96 }
97 },
98 "enrolled": true,
99 "sex": "female"
100 },
101 "site": {
102 "id": 1,
103 "name": "string",
104 "active": true,
105 "address": {
106 "lineOne": "string",
107 "lineTwo": "string",
108 "lineThree": "string",
109 "city": "string",
110 "state": "string",
111 "zipCode": "string",
112 "country": "string",
113 "note": "string"
114 }
115 },
116 "lastHealthCheck": "string",
117 "deviceIdentifiers": [
118 {
119 "type": "string",
120 "value": "string"
121 }
122 ],
123 "deviceEvents": [
124 {
125 "type": "string",
126 "eventTimestamp": "string"
127 }
128 ],
129 "externalIdentifier": "string"
130 },
131 "temperatureUnit": "string",
132 "temperature": 0.1,
133 "readingTimestamp": "string"
134}

TestOrderStatusWebhookRequest

Properties

NameTypeRequiredDescription
orderIdinteger(int64)falseUnique identifier for the order, managed by Impilo. Randomly generated for test webhooks.
externalOrderIds[string]falseList of order ids
orderStatusNamestringtrueOrder status name
TestOrderStatusWebhookRequest Model Sample
1{
2 "orderId": 1,
3 "externalOrderIds": [
4 1,
5 2
6 ],
7 "orderStatusName": "ORDER_PLACED"
8}

TrackingNumber

The tracking number model includes details about the shipping carrier and the tracking number value.

Properties

NameTypeRequiredDescription
carrierstringfalseThe shipping carrier for this tracking number.
valuestringfalseThe tracking number value.
TrackingNumber Model Sample
1{
2 "carrier": "string",
3 "value": "string"
4}

ValidateDeviceResponse

Properties

NameTypeRequiredDescription
validbooleanfalseA Boolean value of whether this device identifier is validated or not.
deviceDevicefalseThe Device associated with the provided Device Identifier, if exists.
ValidateDeviceResponse Model Sample
1{
2 "valid": true,
3 "device": {
4 "id": 1,
5 "item": {
6 "id": 1,
7 "manufacturer": {
8 "id": 1,
9 "name": "string"
10 },
11 "name": "string",
12 "model": "string",
13 "sku": "string"
14 },
15 "currentStatus": "string",
16 "used": true,
17 "currentPatient": {
18 "id": 1,
19 "externalIdentifier": "1234abcd",
20 "firstName": "John",
21 "lastName": "Doe",
22 "dateOfBirth": "1980-01-01T00:00:00Z",
23 "email": "john.doe@example.com",
24 "phoneNumber": "+1234567890",
25 "archived": true,
26 "address": {
27 "lineOne": "string",
28 "lineTwo": "string",
29 "lineThree": "string",
30 "city": "string",
31 "state": "string",
32 "zipCode": "string",
33 "country": "string",
34 "note": "string"
35 },
36 "site": {
37 "id": 1,
38 "name": "string",
39 "active": true,
40 "address": {
41 "lineOne": "string",
42 "lineTwo": "string",
43 "lineThree": "string",
44 "city": "string",
45 "state": "string",
46 "zipCode": "string",
47 "country": "string",
48 "note": "string"
49 }
50 },
51 "enrolled": true,
52 "sex": "female"
53 },
54 "site": {
55 "id": 1,
56 "name": "string",
57 "active": true,
58 "address": {
59 "lineOne": "string",
60 "lineTwo": "string",
61 "lineThree": "string",
62 "city": "string",
63 "state": "string",
64 "zipCode": "string",
65 "country": "string",
66 "note": "string"
67 }
68 },
69 "lastHealthCheck": "string",
70 "deviceIdentifiers": [
71 {
72 "type": "string",
73 "value": "string"
74 }
75 ],
76 "deviceEvents": [
77 {
78 "type": "string",
79 "eventTimestamp": "string"
80 }
81 ],
82 "externalIdentifier": "string"
83 }
84}

Webhook

Impilo supports various types of webhooks. This page describes the endpoints available for managing your webhooks.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the webhook managed by Impilo.
typestringtrueThe event type for the webhook.
urlstringtrueThe URL where events for this webhook will be sent.
Webhook Model Sample
1{
2 "id": 1,
3 "type": "eventType",
4 "url": "http://example.com"
5}

WebhookLog

Represents a log for a webhook.

Properties

NameTypeRequiredDescription
webhookIdinteger(int64)falseID of the webhook
webhookTypeWebhookTypefalseType of the webhook
webhookUrlstringfalseURL of the webhook
payloadstringfalsePayload sent with the webhook
createTimestampstring(date-time)falseTimestamp when the webhook was sent
lastResponseStatusinteger(int32)falseLast response status for the webhook
retryAttemptsinteger(int32)falseNumber of retry attempts for the webhook
lastRetryTimestampstring(date-time)falseTimestamp of the last retry attempt for the webhook
WebhookLog Model Sample
1{
2 "webhookId": 1,
3 "webhookType": "order.status",
4 "webhookUrl": "http://webhookserver.com",
5 "payload": "{'id':1234}",
6 "createTimestamp": "2023-08-22T14:15:30.345Z",
7 "lastResponseStatus": 200,
8 "retryAttempts": 3,
9 "lastRetryTimestamp": "2023-08-22T14:15:30.345Z"
10}

WebhookPayload

Impilo supports various types of webhooks. This page describes the endpoints available for managing your webhooks.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the webhook payload, managed by Impilo.
typestringfalseThe event type for the webhook.
payloadanyfalseThe payload of the webhook.
WebhookPayload Model Sample
1{
2 "id": 1,
3 "type": "string",
4 "payload": null
5}

WebhookSecret

Properties

NameTypeRequiredDescription
secretstringfalseSecret we will pass along with any Webhooks we send to your subscribed endpoints.
WebhookSecret Model Sample
1{
2 "secret": "string"
3}

WebhookType

Enumerated Values

NameDesciption
device.associationCreatedA patient-device association was created.
device.associationRemovedA patient-device association was removed.
device.lowBatteryA device sent a low battery signal.
device.weakSignalA device sent a weak signal.
order.statusAn order status event occurred. The payload only includes order id and order event type.
order.statusFullAn order status event occurred. The payload includes the full order model.
patient.createdA new patient was created.
patient.updatedA patient’s details were updated.
reading.bloodGlucoseA reading of blood glucose was taken.
reading.bloodOxygenA reading of blood oxygen was taken.
reading.bloodPressureA reading of blood pressure was taken.
reading.temperatureA body temperature reading was taken.
reading.weightA body weight reading was taken.
return.statusA return status event was triggered.
return.statusFullA return status event was triggered.
supportTicket.eventA support ticket event took place.
WebhookType Model Sample
1"device.associationCreated"

WeightReading

This page describes Impilo’s weight reading model.

Properties

NameTypeRequiredDescription
idinteger(int64)falseUnique identifier for the reading.
patientPatientfalseThe patient who took the reading.
itemItemfalseThe item used to take the reading.
deviceDevicefalseThe device used to take the reading.
readingTimestampstringfalseThe timestamp at which the reading was taken.
weightnumber(double)trueThe weight reading in lbs.
manualbooleanfalseTrue if the reading value was entered manually, false otherwise.
WeightReading Model Sample
1{
2 "id": 0,
3 "patient": {
4 "id": 1,
5 "externalIdentifier": "1234abcd",
6 "firstName": "John",
7 "lastName": "Doe",
8 "dateOfBirth": "1980-01-01T00:00:00Z",
9 "email": "john.doe@example.com",
10 "phoneNumber": "+1234567890",
11 "archived": true,
12 "address": {
13 "lineOne": "string",
14 "lineTwo": "string",
15 "lineThree": "string",
16 "city": "string",
17 "state": "string",
18 "zipCode": "string",
19 "country": "string",
20 "note": "string"
21 },
22 "site": {
23 "id": 1,
24 "name": "string",
25 "active": true,
26 "address": {
27 "lineOne": "string",
28 "lineTwo": "string",
29 "lineThree": "string",
30 "city": "string",
31 "state": "string",
32 "zipCode": "string",
33 "country": "string",
34 "note": "string"
35 }
36 },
37 "enrolled": true,
38 "sex": "female"
39 },
40 "item": {
41 "id": 1,
42 "manufacturer": {
43 "id": 1,
44 "name": "string"
45 },
46 "name": "string",
47 "model": "string",
48 "sku": "string"
49 },
50 "device": {
51 "id": 1,
52 "item": {
53 "id": 1,
54 "manufacturer": {
55 "id": 1,
56 "name": "string"
57 },
58 "name": "string",
59 "model": "string",
60 "sku": "string"
61 },
62 "currentStatus": "string",
63 "used": true,
64 "currentPatient": {
65 "id": 1,
66 "externalIdentifier": "1234abcd",
67 "firstName": "John",
68 "lastName": "Doe",
69 "dateOfBirth": "1980-01-01T00:00:00Z",
70 "email": "john.doe@example.com",
71 "phoneNumber": "+1234567890",
72 "archived": true,
73 "address": {
74 "lineOne": "string",
75 "lineTwo": "string",
76 "lineThree": "string",
77 "city": "string",
78 "state": "string",
79 "zipCode": "string",
80 "country": "string",
81 "note": "string"
82 },
83 "site": {
84 "id": 1,
85 "name": "string",
86 "active": true,
87 "address": {
88 "lineOne": "string",
89 "lineTwo": "string",
90 "lineThree": "string",
91 "city": "string",
92 "state": "string",
93 "zipCode": "string",
94 "country": "string",
95 "note": "string"
96 }
97 },
98 "enrolled": true,
99 "sex": "female"
100 },
101 "site": {
102 "id": 1,
103 "name": "string",
104 "active": true,
105 "address": {
106 "lineOne": "string",
107 "lineTwo": "string",
108 "lineThree": "string",
109 "city": "string",
110 "state": "string",
111 "zipCode": "string",
112 "country": "string",
113 "note": "string"
114 }
115 },
116 "lastHealthCheck": "string",
117 "deviceIdentifiers": [
118 {
119 "type": "string",
120 "value": "string"
121 }
122 ],
123 "deviceEvents": [
124 {
125 "type": "string",
126 "eventTimestamp": "string"
127 }
128 ],
129 "externalIdentifier": "string"
130 },
131 "readingTimestamp": "string",
132 "weight": 0.1,
133 "manual": true
134}