Data models
Kligo's API uses as a standard data format. In this page you can find examples of data points returned from every devices compatible with Kligo.
Kligo adds some properties to OpenMHealth standard such as archived
and consultationId
consultationId
: This parameter is defined by Kligo. It is used to identify the consultation. When the user starts an encounter then a consultationId is generated. Each data point will inherit the same consultationId until the user starts a new consultation.
archived
: This boolean is set to true once the consultation is over. Therefore the user has started a new consultation.
Data point examples
Kligo's datapoints override default measurement.
Blood pressure monitor
Here is a sample heart rate data point in JSON delivered by Kligo:
Copy {
"deviceId":"5bcde9cc1b23d30019e47f7f",
"deviceType":"blood_pressure_monitor",
"consultationId":"0fecc0fc-9c07-4576-8917-549c5aec3e9b",
"id":"c79d09fa-2cd4-4139-8f3b-aa947fb66fee",
"value":66,
"unit":"mmHg",
"type":"diastolic_blood_pressure",
"archived":false,
"timestamp":1544799982719
},
{
"deviceId":"5bcde9cc1b23d30019e47f7f",
"deviceType":"blood_pressure_monitor",
"consultationId":"0fecc0fc-9c07-4576-8917-549c5aec3e9b",
"id":"36943935-38a6-47cc-b5e4-d8245eba141d",
"value":122,
"unit":"mmHg",
"type":"systolic_blood_pressure",
"archived":false,
"timestamp":1544800685145
},
{
"deviceId":"5bcde9cc1b23d30019e47f7f",
"deviceType":"blood_pressure_monitor",
"consultationId":"0fecc0fc-9c07-4576-8917-549c5aec3e9b",
"id":"868b215d-4597-40bb-9109-de3d07b1c74f","value":70,
"unit":"bpm",
"type":"heart_rate",
"archived":false,
"timestamp":1544800685168
},
For instance, heart rate measurements can either be made by blood pressure monitors or oxymeters. If the user wants to favor one device over another one, delivering device types allows your software to filter out data points.
Weight scale
Copy {
"deviceId":"59fc6fcc0639bb000fe98d23",
"deviceType":"body_scale",
"consultationId":"224e2420-55b3-4676-bff8-58f20e5d7f3f",
"id":"1b749937-689e-4bd2-a1d4-fc561baa22a7",
"value":78.2,
"unit":"kg",
"type":"body_weight",
"archived":false,
"timestamp":1537286406129
}
Copy {
"deviceId":"59fc6fcc0639bb000fe98d23",
"deviceType":"body_scale",
"consultationId":"224e2420-55b3-4676-bff8-58f20e5d7f3f",
"id":"1b749937-689e-4bd2-a1d4-fc561baa22a7",
"value":78.2,
"unit":"kg",
"type":"body_weight",
"archived":false,
"timestamp":1537286406129
},
{
"deviceId":"59fc6fcc0639bb000fe98d23",
"deviceType":"body_scale",
"consultationId":"224e2420-55b3-4676-bff8-58f20e5d7f3f",
"id":"96a2b1b2-4f08-43e6-bd3f-e2ea51175503",
"value":4481,
"unit":"ohm",
"type":"body_impedance",
"archived":false,
"timestamp":1537288188891
}
Copy {
"deviceId":"59fc6fcc0639bb000fe98d23",
"deviceType":"body_scale",
"consultationId":"eabdc349-2053-470b-8f0b-28bf837b7866",
"id":"36915685-dad7-427a-8fbf-1a6116be94b5",
"components":{
"body_weight":{
"value":78,
"unit":"kg"
},
"body_impedance":{
"value":4481,
"unit":"ohm"
},
"body_fat_%":{
"value":23,
"unit":"%"
},
"total_body_water_percentage":{
"value":["data"],
"unit":"%"
},
"body_muscle_percentage":{
"value":["data"],
"unit":"%"
},
"bone_weight":{
"value":["data"],
"unit":"kg"
},
"body_mass_index":{
"value":["data"],
"unit":"kg/m^2"
},
"calorie":{
"value":["data"],
"unit":"cal"
}
},
"type":"partial_body_composition",
"archived":false,
"timestamp":1546864517568
}
Thermometer
Copy {
"deviceId":"5a9ed48fe61a9b001914b27c",
"deviceType":"thermometer",
"consultationId":"0ead9198-5fcf-45b8-b5f8-9978334a7179",
"id":"05704627-65fa-4e0c-933c-2a70d077b2ca",
"value":36.7,
"unit":"C",
"type":"body_temperature",
"archived":false,
"timestamp":1539878211041
}
Glucometer
Copy {
"deviceId":"58e74a1a880c8b0024d51955",
"deviceType":"blood_glucose_monitor",
"consultationId":"8e2887f3-3bd7-4bfc-800d-aae6e301f45d",
"id":"dd920ef6-53ef-45b7-8fe3-d81ba91f7bee",
"value":180,
"unit":"mg/dL",
"type":"blood_glucose",
"archived":false,
"timestamp":1546873605412
}
Oxymeter
Copy {
"deviceId":"5c336cfc155a9f0017714ab2",
"deviceType":"pulse_oximeter",
"consultationId":"f80546a9-1198-4b0a-a005-e6de07d94893",
"id":"f3142649-37e0-4dac-8d3d-02c01fbe7304",
"value":81,
"unit":"bpm",
"type":"heart_rate",
"archived":false,
"timestamp":1546874219777
},
{
"deviceId":"5c336cfc155a9f0017714ab2",
"deviceType":"pulse_oximeter",
"consultationId":"f80546a9-1198-4b0a-a005-e6de07d94893",
"id":"77c6c043-a1ee-43d8-8771-2bcd176bbc5c",
"value":98,
"unit":"%",
"type":"oxygen_saturation",
"archived":false,
"timestamp":1546874220777
}
Height gauge
Copy {
"deviceId":"5c336cfc155a9f0017714ab2",
"deviceType":"weight_scale",
"consultationId":"f80546a9-1198-4b0a-a005-e6de07d94893",
"id":"1b749937-689e-4bd2-a1d4-fc561baa22a7",
"value":78.2,
"unit":"kg",
"type":"body_weight",
"archived":false,
"timestamp":1537286406129
},
{
"deviceId":"5c336cfc155a9f0017714ab2",
"deviceType":"weight_scale",
"consultationId":"f80546a9-1198-4b0a-a005-e6de07d94893",
"id":"1b749937-689e-4bd2-a1d4-fc561baa22a7",
"value":24,
"unit":"kg/m^2",
"type":"body_mass_index",
"archived":false,
"timestamp":1537286406129
},{
"deviceId":"5c336cfc155a9f0017714ab2",
"deviceType":"weight_scale",
"consultationId":"f80546a9-1198-4b0a-a005-e6de07d94893",
"id":"77c6c043-a1ee-43d8-8771-2bcd176bbc5c",
"value":178,
"unit":"cm",
"type":"body_height",
"archived":false,
"timestamp":1546874220777
}
ECG
There are currently two ways of getting data from the ECG:
ECG report: this is a pdf file that Kligo will save on the user's computer. The REST server shows the pointer the ECG on the corresponding record.
ECG data: this is basically raw data coming from the ECG that Kligo will serve from the REST server.
Result after using the EDAN - SE-301
Copy {
"deviceId":"59c4df93435de3002411c59d",
"deviceType":"ecg",
"consultationId":"c06e3e80-b28f-4890-bc26-956a3a5b8fc6",
"id":"00ffa56c-6a06-45c6-9383-d182fd211080",
"value":"/Users/docteur/Downloads/14-20171117-184952.pdf",
"type":"ecg_report",
"archived":false,
"timestamp":1507626814399
}
ECG Data using the Diagnosis - Istel HR-2000
Copy {
"deviceId":"59c4df93435de3002411c59d",
"deviceType":"ecg",
"consultationId":"eabdc349-2053-470b-8f0b-28bf837b7866",
"id":"36915685-dad7-427a-8fbf-1a6116be94b5",
"components":{
"L1":{
"value":[0.00032,-0.00477,/* ... */],
"unit":"mV"
},
"L2":{
"value":[0.00032,-0.00477,/* ... */],
"unit":"mV"
},
"L3":{
"value":[0.00032,-0.00477,/* ... */],
"unit":"mV"
},
"aVF":{
"value":[0.00032,-0.00477,/* ... */],
"unit":"mV"
},
"aVR":{
"value":[0.00032,-0.00477,/* ... */],
"unit":"mV"
},
"aVL":{
"value":[0.00032,-0.00477,/* ... */],
"unit":"mV"
}
},
"type":"ecg_data",
"archived":false,
"timestamp":1546864517568
}
Result after using the CheckMe Pro
Copy {
"deviceId": "98c4df93435de3002411t43e",
"deviceType": "ecg",
"consultationId": "3632b347-5fc5-4a4d-880d-b12245621b48",
"id": "3b6aa6b9-96df-4151-be99-9be90b08f65c",
"components": {
"L1": {
"value": [0.00032,-0.00477,/* ... */],
"unit": "uV",
"interpretation": "N"
},
"ST_amplitude": {
"value": 0,
"unit": "mV"
},
"QT_interval": {
"value": 404,
"unit": "ms"
},
"QRS_duration": {
"value": 68,
"unit": "ms"
},
"QTc": {
"value": 400,
"unit": "ms"
},
"PVC": {
"value": 0,
"unit": ""
},
"heart_rate": {
"value": 59,
"unit": "/min"
}
},
"type": "ecg_data",
"archived": false,
"timestamp": 1547197077666
}
Spirometer
Copy {
"deviceId":"59c4df93435de30024751c5a",
"deviceType":"spirometer",
"consultationId":"afd2c1a5-0112-4ee5-8e56-43addd80d7fa",
"id":"1496fb4a-128e-4636-90bf-6dcfbcc7fa25",
"components":{
"FVC":{
"value":2.3399999141693115,
"unit":"L"
},
"FEV1":{
"value":2.3399999141693115,
"unit":"L"
},
"PEF":{
"value":3.180000066757202,
"unit":"L/s"
},
"Flow":{
"value":["data"],
"unit":"L/s"
}
},
"type":"Spirometry panel",
"archived":false,
"timestamp":1544628006343
}
Stethoscope
Audio streams are encoded in PCM 16 bits (little endian) and can be easily buffered into an audio input.
Here are 10 secs of audio recording sampled from the ekuorePro. This recording can be played using ffplay
:
Copy ffplay -f s16le -ar 44100 -ac 2 samples_pcm16le
Summary Table
This table holds every type of data points available through Kligo's API.
blood pressure monitor, pulse_oxymeter, ecg
total_body_water_percentage